1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//! # cqrs-es2
//!
//! A Rust library providing lightweight CQRS and event sourcing
//! framework.
//!
//! [](https://github.com/brgirgis/cqrs-es2/actions/workflows/crates-io.yml)
//! [](https://github.com/brgirgis/cqrs-es2/actions/workflows/rust-ci.yml)
//! [](https://crates.io/crates/cqrs-es2)
//! [](https://docs.rs/cqrs-es2)
//! 
//!
//! ---
//!
//! Provides all basic interfaces for the CQRS system.
//!
//! ## Installation
//!
//! ```toml
//! [dependencies]
//! # serialization
//! serde = { version = "^1.0.127", features = ["derive"] }
//! serde_json = "^1.0.66"
//!
//! # CQRS framework
//! cqrs-es2 = { version = "*"}
//! ```
//!
//! ## Usage
//!
//! Full fledged demo applications:
//!
//! - Sync [RESTful](https://github.com/brgirgis/cqrs-es2-store/tree/master/examples/restful)
//! - Async [gRPC](https://github.com/brgirgis/tokio-cqrs-es2-store/tree/master/examples/grpc)
pub use crate::;
/// Errors module holds the library error types.
/// Aggregates module holds the central traits that define the
/// fundamental component of CQRS.
/// Commands module provides the abstract domain commands.
/// Events module provides the abstract domain events and associated
/// wrapper.
/// Queries module provides the basic downstream query objects needed
/// to render queries (or "views") that describe the state of the
/// system.
/// Test provides a test framework for building a resilient test base
/// around aggregates. A `HandlerTester` and a `ConsumerTester` should
/// be used to build a comprehensive set of aggregate and query tests
/// to verify your application logic (aka business rules).