diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-07-02 09:33:11 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-07-02 09:33:44 +0100 |
| commit | 7a68e62df187a56bedd9891881af1d4f70404e3e (patch) | |
| tree | e10e5fc24ec4e76818e021112ca7ce769275083c /src/main/java/org/zwobble | |
| parent | b40afc6390992a6e5263f6539dbca0aacc4c95de (diff) | |
Extract generateStructDefinition()
Diffstat (limited to 'src/main/java/org/zwobble')
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java | 31 |
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 |
