Attribute Macro ruva_macro::aggregate

source ·
#[aggregate]
Expand description

Define TAggregate root

§Example

#[aggregate]
#[derive(Debug, Default, Serialize, Deserialize)]
pub struct TestAggregate {
    pub(crate) age: i64,
}

fn test_aggregate() {
let aggregate = TestAggregate::default().set_age(1);
assert_eq!(aggregate.version, 0);
assert!(!aggregate.is_existing);
assert_eq!(aggregate.events.len(), 0);
assert_eq!(aggregate.age, 1)
}
#[aggregate]
#[derive(Debug, Default, Serialize, Deserialize)]
pub struct TestAggregate {
    pub(crate) age: i64,
    pub(crate) name: String,
}

Likewise, not specifying identifier will also error out

#[aggregate]
#[derive(Debug, Default, Serialize, Deserialize)]
pub struct TestAggregate {
    pub(crate) age: i64,
    pub(crate) name: String,
}