macro_rules! impl_data_entity_validated {
(
$type:ident,
$type_name:expr,
[ $( $indexed_field:expr ),* $(,)? ],
{
$( $specific_field:ident : $specific_type:ty ),* $(,)?
}
$(,)?
validate: {
$(
$op:ident: {
$(
$val_field:ident: [ $( $validator:tt )* ]
),* $(,)?
}
),* $(,)?
}
$(,)?
filters: {
$(
$fop:ident: {
$(
$fil_field:ident: [ $( $filter:tt )* ]
),* $(,)?
}
),* $(,)?
}
$(,)?
) => { ... };
}Expand description
Extended macro to create a Data entity with validation and filtering
This macro extends impl_data_entity! with declarative validation and filtering support.
§Example
ⓘ
use this::prelude::*;
impl_data_entity_validated!(
Invoice,
"invoice",
["name", "number"],
{
number: String,
amount: f64,
due_date: Option<String>,
},
validate: {
create: {
number: [required, string_length(3, 50)],
amount: [required, positive],
},
update: {
amount: [optional, positive],
},
},
filters: {
create: {
number: [trim, uppercase],
amount: [round_decimals(2)],
},
}
);