summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-07-14 19:07:06 +0100
committerMichael Williamson <mike@zwobble.org>2026-07-14 19:07:06 +0100
commitf8cbdc16c4bdb4ee82a34cba92e1168700d3e005 (patch)
tree486b801e1f0068c71752e57bbfd23cbd9f0a4f1f /src
parent93453d01e6331f86765e6dd0eda487016172f6d5 (diff)
Add stubbed rust-transient-0 generator
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/config/ProjectConfig.java4
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java45
2 files changed, 49 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/config/ProjectConfig.java b/src/main/java/org/zwobble/hobgoblin/compiler/config/ProjectConfig.java
index 8a2ab9e..04d9cdd 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/config/ProjectConfig.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/config/ProjectConfig.java
@@ -5,6 +5,7 @@ import org.zwobble.hobgoblin.compiler.output.generators.errors.UnknownGeneratorE
import org.zwobble.hobgoblin.compiler.output.generators.javapreciselymatchers.JavaPreciselyMatchersGenerator;
import org.zwobble.hobgoblin.compiler.output.generators.javatransient0.JavaTransient0Generator;
import org.zwobble.hobgoblin.compiler.output.generators.javatypes.JavaTypesGenerator;
+import org.zwobble.hobgoblin.compiler.output.generators.rusttransient0.RustTransient0Generator;
import org.zwobble.hobgoblin.compiler.output.generators.rusttypes.RustTypesGenerator;
import org.zwobble.hobgoblin.compiler.sources.FileFragmentSource;
import org.zwobble.json5.reader.Json5ObjectReader;
@@ -52,6 +53,9 @@ public record ProjectConfig(
case RustTypesGenerator.NAME ->
RustTypesGenerator.parseGeneratorConfig(projectRoot, generatorJson, langsJson);
+ case RustTransient0Generator.NAME ->
+ RustTransient0Generator.parseGeneratorConfig(projectRoot, generatorJson, langsJson);
+
default ->
throw new UnknownGeneratorError(
generatorName.value(),
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java
new file mode 100644
index 0000000..822f229
--- /dev/null
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java
@@ -0,0 +1,45 @@
+package org.zwobble.hobgoblin.compiler.output.generators.rusttransient0;
+
+import org.zwobble.hobgoblin.compiler.ast.typed.TypedNamespaceNode;
+import org.zwobble.hobgoblin.compiler.config.OutputConfig;
+import org.zwobble.hobgoblin.compiler.output.generators.Generator;
+import org.zwobble.hobgoblin.compiler.output.generators.rust.RustGeneratorConfig;
+import org.zwobble.hobgoblin.compiler.typechecker.TypesInfo;
+import org.zwobble.json5.reader.Json5ObjectReader;
+
+import java.io.IOException;
+import java.nio.file.Path;
+import java.util.List;
+import java.util.Optional;
+
+public class RustTransient0Generator implements Generator {
+ public static final String NAME = "rust-transient-0";
+
+ public static OutputConfig parseGeneratorConfig(
+ Path projectRoot,
+ Json5ObjectReader output,
+ Optional<Json5ObjectReader> langsJson
+ ) {
+ return () -> {
+ var relativeOutputPath = output.getString("path").value();
+ var outputPath = projectRoot.resolve(relativeOutputPath);
+
+ var rustConfig = RustGeneratorConfig.parseLangsConfig(langsJson);
+
+ return new RustTransient0Generator(outputPath, rustConfig);
+ };
+ }
+
+ private final Path outputPath;
+ private final RustGeneratorConfig config;
+
+ private RustTransient0Generator(Path outputPath, RustGeneratorConfig config) {
+ this.outputPath = outputPath;
+ this.config = config;
+ }
+
+ @Override
+ public void generate(List<TypedNamespaceNode> namespaces, TypesInfo typesInfo) throws IOException {
+
+ }
+}