From f8c4b8f33d3da5a943bfa29a14abdb3484122083 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 31 Jul 2026 13:57:06 +0100 Subject: Add Clone and Copy to generated Rust types --- .../output/generators/rusttypes/RustTypesGenerator.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/main') 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 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(); -- cgit v1.2.3