Attribute Macros

  • Implement SpaInterface and Proxied traits.
  • Add an *Info and *Builder structures after the enum definition. For each enum variant will be added optional struct fields with value and flags.
  • Implement Wrapper trait for structure with the ref_: Proxy<'c> field. Macros parameter will be used as target type to cast underlying proxy.
  • Implement SpaInterface

Derive Macros

  • Implement RawWrapper trait. #[raw] attribute must be added before field with wrapped raw value.
  • Implement Wrapper trait. #[raw_wrapper] attribute must be added before field with NonNull<impl RawWrapper> pointer to *Ref struct, that implements RawWrapper