verit 0.2.0

Exavian Veritate — zero-copy, self-describing, schema-evolvable binary serialization, safe on untrusted bytes, no unsafe, byte-identical across independent implementations.
Documentation
//! Regenerate the committed codegen output used by the bench example and the
//! codegen tests:
//!
//!   cargo run --example gen
//!
//! Writes examples/bench/verit_gen.rs from the benchmark schema.

use verit::{codegen, Dt, SchemaBuilder};

fn main() {
    let schema = SchemaBuilder::new()
        // Both coordinates are always present: dense saves the presence
        // bitmap and its alignment padding (24 -> 16 bytes per point).
        .add_dense_struct("Point", vec![(1, "x", Dt::F64), (2, "y", Dt::F64)])
        .add_struct(
            "LogEvent",
            vec![
                (1, "service", Dt::Str),
                (2, "level", Dt::U32),
                (3, "message", Dt::Str),
                (4, "latency_us", Dt::U32),
                (5, "points", Dt::list(Dt::named("Point"))),
                (6, "codes", Dt::list(Dt::U32)),
            ],
        )
        .build("LogEvent")
        .unwrap();

    let code = codegen::generate_rust(&schema).unwrap();
    let out = concat!(env!("CARGO_MANIFEST_DIR"), "/examples/bench/verit_gen.rs");
    std::fs::write(out, &code).unwrap();
    println!(
        "wrote {out} ({} lines, schema id {:#034x})",
        code.lines().count(),
        schema.id()
    );
}