macro_rules! components {
{
$(#[$attr:meta])*
struct $Name:ident;
} => { ... };
{
#[builder($Builder:ident)]
$(#[$attr:meta])*
struct $Name:ident {
$(#[$kind:ident] $field_name:ident : $field_ty:ty),+
}
} => { ... };
{
$(#[$attr:meta])*
struct $Name:ident {
$(#[$kind:ident] $field_name:ident : $field_ty:ty),+
}
} => { ... };
{
#[builder($Builder:ident)]
$(#[$attr:meta])*
struct $Name:ident {
$(#[$kind:ident] $field_name:ident : $field_ty:ty),+,
}
} => { ... };
{
$(#[$attr:meta])*
struct $Name:ident {
$(#[$kind:ident] $field_name:ident : $field_ty:ty),+,
}
} => { ... };
}