macro_rules! __define_derived_property_common {
(
$derived_property:ident,
$value:ty,
$canonical_value:ty,
$compute_canonical_impl:expr,
$compute_uncanonical_impl:expr,
$at_dependency_registration:expr,
[$($dependency:ident),*],
[$($global_dependency:ident),*],
|$($param:ident),+| $derive_fn:expr,
$display_impl:expr,
$hash_fn:expr,
$type_id_impl:expr
) => { ... };
}
Expand description
Defines a derived person property with the following parameters:
$person_property
: A name for the identifier type of the property$value
: The type of the property’s value[$($dependency),+]
: A list of person properties the derived property depends on[$($dependency),*]
: A list of global properties the derived property depends on (optional)$calculate
: A closure that takes the values of each dependency and returns the derived value$display
: A closure that takes the value of the derived property and returns a string representation$hash_fn
: A function that can compute the hash of values of this property