esrs 0.18.0

A Prima.it-opinionated library to achieve cqrs/es
Documentation
use std::sync::{Arc, Mutex};

use esrs::handler::EventHandler;
use esrs::store::StoreEvent;

use crate::aggregate::{TestAggregate, TestEvent};

#[derive(Clone)]
pub struct TestEventHandler {
    pub total: Arc<Mutex<i32>>,
}

#[async_trait::async_trait]
impl EventHandler<TestAggregate> for TestEventHandler {
    async fn handle(&self, event: &StoreEvent<TestEvent>) {
        let mut guard = self.total.lock().unwrap();
        *guard += event.payload.add;
    }
}