macro_rules! define_props_advanced {
(
$(#[$struct_meta:meta])*
$vis:vis struct $name:ident {
$(
$(#[required])?
$(#[$field_meta:meta])*
$field_vis:vis $field_name:ident: $field_type:ty
$(= $default:expr)?
),*
$(,)?
}
) => { ... };
(@field_init $field_name:ident #[required] = $default:expr) => { ... };
(@field_init $field_name:ident #[required]) => { ... };
(@field_init $field_name:ident = $default:expr) => { ... };
(@field_init $field_name:ident) => { ... };
(@is_required $field_name:ident #[required]) => { ... };
(@is_required $field_name:ident) => { ... };
}
Expand description
Advanced props builder with validation and required field support