File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -50,10 +50,8 @@ pub fn generate_from_wasm(wasm: &[u8]) -> Result<String, FromWasmError> {
5050}
5151
5252pub fn generate ( spec : & [ ScSpecEntry ] ) -> String {
53- spec. iter ( )
54- . map ( Entry :: from)
55- . map ( |e| serde_json:: to_string_pretty ( & e) . expect ( "serialization of the spec entries should not have any failure cases as all keys are strings and the serialize implementations are derived" ) )
56- . collect ( )
53+ let collected: Vec < _ > = spec. iter ( ) . map ( Entry :: from) . collect ( ) ;
54+ serde_json:: to_string_pretty ( & collected) . expect ( "serialization of the spec entries should not have any failure cases as all keys are strings and the serialize implementations are derived" )
5755}
5856
5957#[ cfg( test) ]
@@ -71,126 +69,132 @@ mod test {
7169 let json = generate ( & entries) ;
7270 assert_eq ! (
7371 json,
74- r#"{
75- "type": "enum",
76- "name": "UdtEnum2",
77- "cases": [
78- {
79- "name": "A",
80- "value": 10
81- },
82- {
83- "name": "B",
84- "value": 15
85- }
86- ]
87- }{
88- "type": "union",
89- "name": "UdtEnum",
90- "cases": [
91- {
92- "name": "UdtA",
93- "values": []
94- },
95- {
96- "name": "UdtB",
97- "values": [
98- {
99- "type": "custom",
100- "name": "UdtStruct"
72+ r#"[
73+ {
74+ "type": "enum",
75+ "name": "UdtEnum2",
76+ "cases": [
77+ {
78+ "name": "A",
79+ "value": 10
80+ },
81+ {
82+ "name": "B",
83+ "value": 15
84+ }
85+ ]
86+ },
87+ {
88+ "type": "union",
89+ "name": "UdtEnum",
90+ "cases": [
91+ {
92+ "name": "UdtA",
93+ "values": []
94+ },
95+ {
96+ "name": "UdtB",
97+ "values": [
98+ {
99+ "type": "custom",
100+ "name": "UdtStruct"
101+ }
102+ ]
103+ },
104+ {
105+ "name": "UdtC",
106+ "values": [
107+ {
108+ "type": "custom",
109+ "name": "UdtEnum2"
110+ }
111+ ]
112+ },
113+ {
114+ "name": "UdtD",
115+ "values": [
116+ {
117+ "type": "custom",
118+ "name": "UdtTuple"
119+ }
120+ ]
121+ }
122+ ]
123+ },
124+ {
125+ "type": "struct",
126+ "name": "UdtTuple",
127+ "fields": [
128+ {
129+ "name": "0",
130+ "value": {
131+ "type": "i64"
101132 }
102- ]
103- },
104- {
105- "name ": "UdtC",
106- "values ": [
107- {
108- "type": "custom",
109- "name": "UdtEnum2"
133+ },
134+ {
135+ "name": "1",
136+ "value ": {
137+ "type ": "vec",
138+ "element": {
139+ "type": "i64"
140+ }
110141 }
111- ]
112- },
113- {
114- "name": "UdtD",
115- "values": [
116- {
117- "type": "custom",
118- "name": "UdtTuple"
119- }
120- ]
121- }
122- ]
123- }{
124- "type": "struct",
125- "name": "UdtTuple",
126- "fields": [
127- {
128- "name": "0",
129- "value": {
130- "type": "i64"
131142 }
132- },
133- {
134- "name": "1",
135- "value": {
136- "type": "vec",
137- "element": {
143+ ]
144+ },
145+ {
146+ "type": "struct",
147+ "name": "UdtStruct",
148+ "fields": [
149+ {
150+ "name": "a",
151+ "value": {
138152 "type": "i64"
139153 }
140- }
141- }
142- ]
143- }{
144- "type": "struct",
145- "name": "UdtStruct",
146- "fields": [
147- {
148- "name": "a",
149- "value": {
150- "type": "i64"
151- }
152- },
153- {
154- "name": "b",
155- "value": {
156- "type": "i64"
157- }
158- },
159- {
160- "name": "c",
161- "value": {
162- "type": "vec",
163- "element": {
154+ },
155+ {
156+ "name": "b",
157+ "value": {
164158 "type": "i64"
165159 }
160+ },
161+ {
162+ "name": "c",
163+ "value": {
164+ "type": "vec",
165+ "element": {
166+ "type": "i64"
167+ }
168+ }
166169 }
167- }
168- ]
169- }{
170- "type": "function",
171- "name": "add",
172- "inputs": [
173- {
174- "name": "a",
175- "value": {
176- "type": "custom",
177- "name": "UdtEnum"
170+ ]
171+ },
172+ {
173+ "type": "function",
174+ "name": "add",
175+ "inputs": [
176+ {
177+ "name": "a",
178+ "value": {
179+ "type": "custom",
180+ "name": "UdtEnum"
181+ }
182+ },
183+ {
184+ "name": "b",
185+ "value": {
186+ "type": "custom",
187+ "name": "UdtEnum"
188+ }
178189 }
179- },
180- {
181- "name": "b",
182- "value": {
183- "type": "custom",
184- "name": "UdtEnum"
190+ ],
191+ "outputs": [
192+ {
193+ "type": "i64"
185194 }
186- }
187- ],
188- "outputs": [
189- {
190- "type": "i64"
191- }
192- ]
193- }"# ,
195+ ]
196+ }
197+ ]"# ,
194198 ) ;
195199 }
196200}
You can’t perform that action at this time.
0 commit comments