summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java31
1 files changed, 19 insertions, 12 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java
index 7cc17b9..99151c4 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java
@@ -88,18 +88,7 @@ public class RustTypesGenerator implements Generator {
}
case TypedStructDefinitionNode structDefinition -> {
- var rustStructName = generateTypeName(structDefinition.name());
-
- var rustFields = structDefinition.fields().stream()
- .map(field -> new RustStructField(
- generateFieldName(field.name()),
- generateRustTypeExpression(field.type(), context)
- ))
- .toList();
-
- var rustStruct = new RustStructStruct(rustStructName, rustFields, structDefinition.docComment());
-
- yield List.of(rustStruct);
+ yield generateStructDefinition(structDefinition, context);
}
case TypedSumDefinitionNode sumDefinition -> {
@@ -108,6 +97,24 @@ public class RustTypesGenerator implements Generator {
};
}
+ private List<RustItem> generateStructDefinition(
+ TypedStructDefinitionNode structDefinition,
+ Context context
+ ) {
+ var rustStructName = generateTypeName(structDefinition.name());
+
+ var rustFields = structDefinition.fields().stream()
+ .map(field -> new RustStructField(
+ generateFieldName(field.name()),
+ generateRustTypeExpression(field.type(), context)
+ ))
+ .toList();
+
+ var rustStruct = new RustStructStruct(rustStructName, rustFields, structDefinition.docComment());
+
+ return List.of(rustStruct);
+ }
+
private RustType generateRustTypeExpression(
TypedTypeLevelExpressionNode<Type> type,
Context context