Skip to content

Commit 5a1df1f

Browse files
Fix conversion of hashmap values
1 parent 38d8918 commit 5a1df1f

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/getRenderMapVisitor.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,19 @@ function getOptionTypeTransform(
229229
return returnTransform;
230230
}
231231

232+
function getMapValueTransform(valueType: TypeNode): string {
233+
switch (valueType.kind) {
234+
case 'definedTypeLinkNode':
235+
return '.into_proto()';
236+
case 'publicKeyTypeNode':
237+
return '.to_string()';
238+
case 'numberTypeNode':
239+
return getNumberTypeTransform(valueType);
240+
default:
241+
return '';
242+
}
243+
}
244+
232245
function getTransform(
233246
type: TypeNode,
234247
name: string,
@@ -259,6 +272,11 @@ function getTransform(
259272
case 'numberTypeNode':
260273
return `self.${typeName}${getNumberTypeTransform(type)}`;
261274

275+
case 'mapTypeNode': {
276+
const valueTransform = getMapValueTransform(type.value);
277+
return `self.${typeName}.into_iter().map(|(k, v)| (k, v${valueTransform})).collect()`;
278+
}
279+
262280
default:
263281
return `self.${typeName}`;
264282
}

0 commit comments

Comments
 (0)