diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-07-31 13:57:06 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-07-31 13:57:06 +0100 |
| commit | f8c4b8f33d3da5a943bfa29a14abdb3484122083 (patch) | |
| tree | 2516e74fe6a3f13199c2d407ce106db41e1ead7a /src/main | |
| parent | e5c27bcaf0e577f5b94c663f36ddc101ef1432ce (diff) | |
Add Clone and Copy to generated Rust types
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java | 15 |
1 files changed, 10 insertions, 5 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 39a0b8b..0aaa723 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 @@ -93,7 +93,7 @@ public class RustTypesGenerator implements Generator { TypedEnumDefinitionNode enumDefinition, Context context ) { - var rustAttributes = List.of(DERIVE_ATTRIBUTE); + var rustAttributes = List.of(ENUM_DERIVE_ATTRIBUTE); var rustEnumName = this.rustGenerator.generateTypeName(enumDefinition.name()); @@ -114,16 +114,21 @@ public class RustTypesGenerator implements Generator { return List.of(rustEnum); } - private static final RustOuterAttribute DERIVE_ATTRIBUTE = new RustOuterAttribute( + private static final RustOuterAttribute ENUM_DERIVE_ATTRIBUTE = new RustOuterAttribute( RustPath.of("derive"), - Optional.of("(Debug, Hash, PartialEq)") + Optional.of("(Clone, Copy, Debug, Hash, PartialEq)") + ); + + private static final RustOuterAttribute STRUCT_DERIVE_ATTRIBUTE = new RustOuterAttribute( + RustPath.of("derive"), + Optional.of("(Clone, Debug, Hash, PartialEq)") ); private List<RustItem> generateStructDefinition( TypedStructDefinitionNode structDefinition, Context context ) { - var rustAttributes = List.of(DERIVE_ATTRIBUTE); + var rustAttributes = List.of(STRUCT_DERIVE_ATTRIBUTE); var rustStructName = this.rustGenerator.generateTypeName(structDefinition.name()); @@ -150,7 +155,7 @@ public class RustTypesGenerator implements Generator { TypedSumDefinitionNode sumDefinition, Context context ) { - var rustAttributes = List.of(DERIVE_ATTRIBUTE); + var rustAttributes = List.of(STRUCT_DERIVE_ATTRIBUTE); var items = new ArrayList<RustItem>(); |
