From f8cbdc16c4bdb4ee82a34cba92e1168700d3e005 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 14 Jul 2026 19:07:06 +0100 Subject: Add stubbed rust-transient-0 generator --- .../hobgoblin/compiler/config/ProjectConfig.java | 4 ++ .../rusttransient0/RustTransient0Generator.java | 45 ++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/main/java/org/zwobble/hobgoblin/compiler/output/generators/rusttransient0/RustTransient0Generator.java (limited to 'src/main/java') 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 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 namespaces, TypesInfo typesInfo) throws IOException { + + } +} -- cgit v1.2.3