macro_rules! select {
($($module:ident)::+ : + $field:ident $($rest:tt)*) => { ... };
($($module:ident)::+ : - $field:ident $($rest:tt)*) => { ... };
($($module:ident)::+ :) => { ... };
($($module:ident)::+ : $field:ident) => { ... };
($($module:ident)::+ : $field:ident,) => { ... };
($($module:ident)::+ : ? $field:ident) => { ... };
($($module:ident)::+ : ? $field:ident,) => { ... };
($($module:ident)::+ : $field:ident, $($rest:tt)+) => { ... };
($($module:ident)::+ : ? $field:ident, $($rest:tt)+) => { ... };
}Expand description
Construct a FieldSet by selecting fields from a module.
§Syntax
select!(module: field)- field is Presentselect!(module: ?field)- field is Optionalselect!(module: ?all)- all fields Optional- Multiple fields compose:
select!(module: field1, ?field2)expands tomodule::with::field1::Present<module::with::field2::Optional>
§Examples
ⓘ
type Create = select!(user: name, email);
type Update = select!(user: ?name, ?email);
fn create_user(user: User<Create>) {...}