summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/01-struct/output/rust/src/point.rs4
-rw-r--r--examples/02-sum/output/rust/src/shapes.rs8
-rw-r--r--examples/03-inductive-data-types/output/rust/src/arithmetic.rs4
-rw-r--r--examples/05-list/output/rust/src/point.rs6
-rw-r--r--examples/08-custom-code/output/rust/src/gen/shapes.rs2
-rw-r--r--examples/09-imports/output/rust/src/point.rs4
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rust/RustGeneratorConfig.java6
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttypes/RustTypesGenerator.java2
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/ast/RustTypePath.java9
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustWriterTests.java4
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();