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
//! # ddd-rs
//!
//! Domain-Driven Design (DDD) building blocks, for Rust applications.
//!
//! > Most of the definitions on these docs are taken from Eric Evan's
//! > [Domain-Driven Design: Tackling Complexity in the Heart of Software](https://www.oreilly.com/library/view/domain-driven-design-tackling/0321125215/).
//!
//! ## Application layer
//!
//! - [Repository](application::Repository)
//! - Service:
//!   - [Command](application::Command) / [Query](application::Query)
//!   - [Request](application::Request)
//!   - [RequestHandler](application::RequestHandler)
//!
//! ## Domain layer
//!
//! - [AggregateRoot](domain::AggregateRoot)
//! - [Entity](domain::Entity)
//! - [ValueObject](domain::ValueObject)
//!
//! ## Infrastructure layer
//!
//! - In-memory:
//!   - [InMemoryRepository](infrastructure::InMemoryRepository)

#![warn(missing_docs)]

/// Application layer
pub mod application;

/// Domain layer
pub mod domain;

/// Infrastructure layer
pub mod infrastructure;

mod error;
pub use error::*;

#[cfg(feature = "derive")]
pub use ddd_rs_derive::*;