tatara-rust-attr — typed attribute model + PerAttrDeriveSpec.
Two primitives:
- [
AttrKnob] — typed description of a consumer-side#[trait(key = …)]knob the derive understands. Each knob has a name + value-kind + optional default. - [
PerAttrDeriveSpec] — derive shape that reads its knobs from the consumer's#[<trait_name>(…)]attribute(s) and parameterizes its emission on the parsed values.
Today's emit shape is the prefix-template family: a knob named
prefix with a string default. The per-field template re-uses the
prefix via #prefix. Sufficient for serde-style rename / derive-
builder-style setter-prefix patterns.
Authoring shape:
use ;
use ;
let spec = PerAttrDeriveSpec ;
let scaffold = spec.compile_to_crate.unwrap;
assert!;