summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-07-25 23:20:26 +0100
committerMichael Williamson <mike@zwobble.org>2026-07-25 23:20:26 +0100
commit08438b9d69ad3ca6ab44f1577c7e16051d82de06 (patch)
tree3604a1a1edc42b65a1c974b1fc7629524f07ca71 /src/main
parent8e6ed5c893d044dfacf10fd6a7687be52a1c20d3 (diff)
Extract constants for Rust primitive types
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rust/RustGeneratorConfig.java7
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java4
2 files changed, 8 insertions, 3 deletions
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 db5fae0..810e952 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
@@ -1,6 +1,7 @@
package org.zwobble.hobgoblin.compiler.output.generators.rust;
import org.zwobble.hobgoblin.compiler.builtins.NativeTypes;
+import org.zwobble.hobgoblin.compiler.output.lang.rust.RustTypes;
import org.zwobble.hobgoblin.compiler.output.lang.rust.ast.RustPath;
import org.zwobble.hobgoblin.compiler.parser.Parser;
import org.zwobble.hobgoblin.compiler.types.SimpleNativeType;
@@ -51,9 +52,9 @@ public record RustGeneratorConfig(
}
private static final Map<SimpleNativeType, RustNativeTypeConfig> DEFAULT_NATIVE_TYPE_CONFIGS = Map.ofEntries(
- Map.entry(NativeTypes.BOOL, new RustNativeTypeConfig(RustPath.primitive("bool"))),
- Map.entry(NativeTypes.INT_32, new RustNativeTypeConfig(RustPath.primitive("i32"))),
- Map.entry(NativeTypes.INT_64, new RustNativeTypeConfig(RustPath.primitive("i64"))),
+ Map.entry(NativeTypes.BOOL, new RustNativeTypeConfig(RustTypes.BOOL)),
+ Map.entry(NativeTypes.INT_32, new RustNativeTypeConfig(RustTypes.I32)),
+ Map.entry(NativeTypes.INT_64, new RustNativeTypeConfig(RustTypes.I64)),
Map.entry(NativeTypes.STRING, new RustNativeTypeConfig(RustPath.global("std", "string", "String"))),
Map.entry(NativeTypes.LIST_INNER, new RustNativeTypeConfig(RustPath.global("std", "vec", "Vec"))),
Map.entry(NativeTypes.OPTION_INNER, new RustNativeTypeConfig(RustPath.global("std", "option", "Option"))),
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java
index bbc0c67..e0417c1 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/rust/RustTypes.java
@@ -8,6 +8,10 @@ import java.util.List;
public class RustTypes {
private RustTypes() {}
+ public static RustPath BOOL = RustPath.primitive("bool");
+ public static RustPath I32 = RustPath.primitive("i32");
+ public static RustPath I64 = RustPath.primitive("i64");
+
public static RustPath box(RustType elementType) {
return RustPath.global("std", "boxed", "Box")
.withArgs(List.of(elementType));