diff options
10 files changed, 22 insertions, 27 deletions
diff --git a/examples/01-struct/output/rust/src/point.rs b/examples/01-struct/output/rust/src/point.rs index 19ed5c8..f2d7ffc 100644 --- a/examples/01-struct/output/rust/src/point.rs +++ b/examples/01-struct/output/rust/src/point.rs @@ -8,6 +8,6 @@ pub struct Line { /// A 2D point. pub struct Point { - pub x: i32, - pub y: i32, + pub x: ::core::primitive::i32, + pub y: ::core::primitive::i32, } diff --git a/examples/02-sum/output/rust/src/shapes.rs b/examples/02-sum/output/rust/src/shapes.rs index 586c7c0..958db0a 100644 --- a/examples/02-sum/output/rust/src/shapes.rs +++ b/examples/02-sum/output/rust/src/shapes.rs @@ -7,11 +7,11 @@ pub enum Shape { } pub struct Rectangle { - pub width: i32, - pub height: i32, + pub width: ::core::primitive::i32, + pub height: ::core::primitive::i32, } pub struct Triangle { - pub width: i32, - pub height: i32, + pub width: ::core::primitive::i32, + pub height: ::core::primitive::i32, } diff --git a/examples/03-inductive-data-types/output/rust/src/arithmetic.rs b/examples/03-inductive-data-types/output/rust/src/arithmetic.rs index ab4049d..a9679dc 100644 --- a/examples/03-inductive-data-types/output/rust/src/arithmetic.rs +++ b/examples/03-inductive-data-types/output/rust/src/arithmetic.rs @@ -1,7 +1,7 @@ // Generated by hobgoblin. pub enum Expression { - Add(std::boxed::Box<crate::arithmetic::Add>), + Add(::std::boxed::Box<crate::arithmetic::Add>), Const(crate::arithmetic::Const), } @@ -11,5 +11,5 @@ pub struct Add { } pub struct Const { - pub value: i32, + pub value: ::core::primitive::i32, } diff --git a/examples/05-list/output/rust/src/point.rs b/examples/05-list/output/rust/src/point.rs index 6249c0a..5635d38 100644 --- a/examples/05-list/output/rust/src/point.rs +++ b/examples/05-list/output/rust/src/point.rs @@ -1,10 +1,10 @@ // Generated by hobgoblin. pub struct Path { - pub points: std::vec::Vec<crate::point::Point>, + pub points: ::std::vec::Vec<crate::point::Point>, } pub struct Point { - pub x: i32, - pub y: i32, + pub x: ::core::primitive::i32, + pub y: ::core::primitive::i32, } diff --git a/examples/08-custom-code/output/rust/src/gen/shapes.rs b/examples/08-custom-code/output/rust/src/gen/shapes.rs index b85ad8c..d0710bb 100644 --- a/examples/08-custom-code/output/rust/src/gen/shapes.rs +++ b/examples/08-custom-code/output/rust/src/gen/shapes.rs @@ -1,5 +1,5 @@ // Generated by hobgoblin. pub struct Square { - pub width: i32, + pub width: ::core::primitive::i32, } diff --git a/examples/09-imports/output/rust/src/point.rs b/examples/09-imports/output/rust/src/point.rs index 718ecfd..e2c4695 100644 --- a/examples/09-imports/output/rust/src/point.rs +++ b/examples/09-imports/output/rust/src/point.rs @@ -2,6 +2,6 @@ /// A 2D point. pub struct Point { - pub x: i32, - pub y: i32, + pub x: ::core::primitive::i32, + pub y: ::core::primitive::i32, } diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rust/RustGeneratorConfig.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rust/RustGeneratorConfig.java index 5d777ea..b2a5009 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rust/RustGeneratorConfig.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rust/RustGeneratorConfig.java @@ -53,9 +53,9 @@ public record RustGeneratorConfig( private static final Map<SimpleNativeType, RustNativeTypeConfig> DEFAULT_NATIVE_TYPE_CONFIGS = Map.ofEntries( Map.entry(NativeTypes.INT_32, new RustNativeTypeConfig(RustTypePath.primitive("i32"))), Map.entry(NativeTypes.INT_64, new RustNativeTypeConfig(RustTypePath.primitive("i64"))), - Map.entry(NativeTypes.STRING, new RustNativeTypeConfig(RustTypePath.of("std", "string", "String"))), - Map.entry(NativeTypes.LIST_INNER, new RustNativeTypeConfig(RustTypePath.of("std", "vec", "Vec"))), - Map.entry(NativeTypes.OPTION_INNER, new RustNativeTypeConfig(RustTypePath.of("std", "option", "Option"))) + Map.entry(NativeTypes.STRING, new RustNativeTypeConfig(RustTypePath.global("std", "string", "String"))), + Map.entry(NativeTypes.LIST_INNER, new RustNativeTypeConfig(RustTypePath.global("std", "vec", "Vec"))), + Map.entry(NativeTypes.OPTION_INNER, new RustNativeTypeConfig(RustTypePath.global("std", "option", "Option"))) ); public Optional<RustNativeTypeConfig> nativeTypeConfig(SimpleNativeType type) { 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 d4e7fd1..2e8b244 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 @@ -156,7 +156,7 @@ public class RustTypesGenerator implements Generator { var variantType = generateRustTypeExpression(variant.type(), context); if (variant.isBox()) { - variantType = RustTypePath.of("std", "boxed", "Box") + variantType = RustTypePath.global("std", "boxed", "Box") .withArgs(List.of(variantType)); } diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustTypePath.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustTypePath.java index 6b51792..8b0adf0 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustTypePath.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustTypePath.java @@ -42,12 +42,7 @@ public record RustTypePath(java.util.List<org.zwobble.hobgoblin.compiler.output. // Custom area start: org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustTypePath body public static RustTypePath primitive(String name) { - return new RustTypePath(List.of( - new RustTypePathSegment( - new RustPathIdentSegmentIdentifier(new RustIdentifier(name)), - Optional.empty() - ) - )); + return global("core", "primitive", name); } public static RustTypePath of(String... names) { @@ -83,7 +78,7 @@ public record RustTypePath(java.util.List<org.zwobble.hobgoblin.compiler.output. return new RustTypePath(segments); } - public static RustType global(String... names) { + public static RustTypePath global(String... names) { var segments = Stream.concat( Stream.of(RustTypePathSegment.global()), Arrays.stream(names) diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java index a7bf391..476a876 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java @@ -228,8 +228,8 @@ public class RustWriterTests { var rust = RustStructStruct.arbitrary() .withName(new RustIdentifier("Rectangle")) .withFields(List.of( - new RustStructField(new RustIdentifier("width"), RustTypePath.primitive("i32")), - new RustStructField(new RustIdentifier("height"), RustTypePath.primitive("i32")) + new RustStructField(new RustIdentifier("width"), RustTypePath.of("i32")), + new RustStructField(new RustIdentifier("height"), RustTypePath.of("i32")) )) .build(); |
