Skip to main content

Crate valence_codegen

Crate valence_codegen 

Source
Expand description

Build-time code generation for Valence models from valence_schema! and valence_trait_schema! sources.

§Pipeline

  1. Trait pass — Collect *_valence_trait.rs (or your configured suffix), parse trait defs, emit shared trait definitions (see generate_from_trait_file in the internal codegen module).
  2. Schema pass — For each *_valence_schema.rs, merge trait fields/connections, validate, then emit structs, connections, CRUD, query builder, metadata, and trait impls into one generated_models.rs via generate_models.
  • build / build_with — one-liner host build.rs helpers.
  • Internal codegen module — per-schema orchestration and generator dispatch.
  • codegen::parser — shared valence_schema_dsl parse + lower into generator IR.
  • codegen::generatorsproc_macro2::TokenStream builders for each emitted surface area.

Structs§

BuildOptions
Overrides for build_with.
CodegenConfig
Configuration for model code generation from schema files
ParsedTraitDef
Parsed trait definition from a valence_trait_schema! file (generator IR).

Constants§

DEFAULT_SCHEMAS_SUBDIR
Default schemas subdirectory under CARGO_MANIFEST_DIR.
DEFAULT_SCHEMA_SUFFIX
Default schema file suffix scanned by build / generate_models.
DEFAULT_TRAIT_SUFFIX
Default trait file suffix scanned by build / generate_models.

Functions§

build
Scan $CARGO_MANIFEST_DIR/schemas and write $OUT_DIR/generated_models.rs.
build_with
Like build, with path/suffix overrides.
generate_models
Generate model code from schema files in the configured directory