diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java | 22 |
1 files changed, 19 insertions, 3 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 19f3365..7695bf4 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 @@ -92,6 +92,8 @@ public class RustTypesGenerator implements Generator { TypedEnumDefinitionNode enumDefinition, Context context ) { + var rustAttributes = List.of(DERIVE_ATTRIBUTE); + var rustEnumName = this.rustGenerator.generateTypeName(enumDefinition.name()); var rustVariants = enumDefinition.variants().stream() @@ -102,7 +104,7 @@ public class RustTypesGenerator implements Generator { .toList(); var rustEnum = new RustEnum( - List.of(), + rustAttributes, rustEnumName, rustVariants, enumDefinition.docComment() @@ -111,10 +113,17 @@ public class RustTypesGenerator implements Generator { return List.of(rustEnum); } + private static final RustOuterAttribute DERIVE_ATTRIBUTE = new RustOuterAttribute( + RustTypePath.of("derive"), + Optional.of("(Debug, PartialEq)") + ); + private List<RustItem> generateStructDefinition( TypedStructDefinitionNode structDefinition, Context context ) { + var rustAttributes = List.of(DERIVE_ATTRIBUTE); + var rustStructName = this.rustGenerator.generateTypeName(structDefinition.name()); var rustFields = structDefinition.fields().stream() @@ -124,7 +133,12 @@ public class RustTypesGenerator implements Generator { )) .toList(); - var rustStruct = new RustStructStruct(List.of(), rustStructName, rustFields, structDefinition.docComment()); + var rustStruct = new RustStructStruct( + rustAttributes, + rustStructName, + rustFields, + structDefinition.docComment() + ); return List.of(rustStruct); } @@ -133,6 +147,8 @@ public class RustTypesGenerator implements Generator { TypedSumDefinitionNode sumDefinition, Context context ) { + var rustAttributes = List.of(DERIVE_ATTRIBUTE); + var items = new ArrayList<RustItem>(); var rustEnumName = this.rustGenerator.generateTypeName(sumDefinition.name()); @@ -156,7 +172,7 @@ public class RustTypesGenerator implements Generator { .toList(); var rustEnum = new RustEnum( - List.of(), + rustAttributes, rustEnumName, rustVariants, sumDefinition.docComment() |
