Skip to main content

SpecShape

Derive Macro SpecShape 

Source
#[derive(SpecShape)]
{
    // Attributes available to this derive:
    #[spec]
}
Expand description

#[derive(SpecShape)] — auto-implement gen_types::Spec on a struct whose fields follow the conventional gen build-spec shape:

  • version: u32
  • root_crate: String (or root_key: String, opt-in via attr)
  • workspace_members: Vec<String>
  • crates: IndexMap<String, T> where T carries build_rust_crate_args: Args + quirks: Vec<Quirk>

Required attribute: #[spec(args = "<ArgsTypeName>", quirk = "<QuirkTypeName>")]

Optional attributes: #[spec(args_field = "build_args")] (default: build_rust_crate_args) #[spec(root_field = "root_key")] (default: root_crate) #[spec(members_field = "members")] (default: workspace_members) #[spec(crates_field = "packages")] (default: crates)