Generates Rustler decoder code from Kiwi schemas for RustQ manifests.
This is an experimental bridge for optional native backends. It returns
RustQ splice replacements for schema-dependent decoder functions and NIF
entrypoints; rustq.exs owns rendering and writing generated files.
Summary
Functions
Returns RustQ splice replacements for a schema.
Types
Functions
@spec splices( KiwiCodec.Schema.t(), keyword() ) :: [{atom(), [RustQ.Rust.Fragment.t()]}]
Returns RustQ splice replacements for a schema.
Use this from rustq.exs with render/2:
generate :native_decoders, "native/my_nif/src/generated.rs" do
schema = KiwiCodec.parse_schema!(File.read!("priv/schema.kiwi"))
render File.read!("native/my_nif/src/generated.template.rs"),
filename: "native/my_nif/src/generated.template.rs",
splice: KiwiCodec.RustlerGenerator.splices(schema,
definitions: ["Node"],
entrypoints: [decode_node: "Node"],
module_prefix: "Example.Schema"
)
end