summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-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>();