From 7a68e62df187a56bedd9891881af1d4f70404e3e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 2 Jul 2026 09:33:11 +0100 Subject: Extract generateStructDefinition() --- .../generators/rusttypes/RustTypesGenerator.java | 31 +++++++++++++--------- 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'src/main/java/org') 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 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, Context context -- cgit v1.2.3