summaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-07-31 13:57:06 +0100
committerMichael Williamson <mike@zwobble.org>2026-07-31 13:57:06 +0100
commitf8c4b8f33d3da5a943bfa29a14abdb3484122083 (patch)
tree2516e74fe6a3f13199c2d407ce106db41e1ead7a /src/main/java/org/zwobble
parente5c27bcaf0e577f5b94c663f36ddc101ef1432ce (diff)
Add Clone and Copy to generated Rust types
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java15
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>();