ddd_rs/lib.rs
1//! # ddd-rs
2//!
3//! Domain-Driven Design (DDD) building blocks, for Rust applications.
4//!
5//! > Most of the definitions on these docs are taken from Eric Evan's
6//! > [Domain-Driven Design: Tackling Complexity in the Heart of Software](https://www.oreilly.com/library/view/domain-driven-design-tackling/0321125215/).
7//!
8//! ## Application layer
9//!
10//! - [Repository](application::Repository)
11//! - Service:
12//!   - [Command](application::Command) / [Query](application::Query)
13//!   - [Request](application::Request)
14//!   - [RequestHandler](application::RequestHandler)
15//!
16//! ## Domain layer
17//!
18//! - [AggregateRoot](domain::AggregateRoot)
19//! - [Entity](domain::Entity)
20//! - [ValueObject](domain::ValueObject)
21//!
22//! ## Infrastructure layer
23//!
24//! - In-memory:
25//!   - [InMemoryRepository](infrastructure::InMemoryRepository)
26
27#![warn(missing_docs)]
28
29/// Application layer
30pub mod application;
31
32/// Domain layer
33pub mod domain;
34
35/// Infrastructure layer
36pub mod infrastructure;
37
38mod error;
39pub use error::*;
40
41#[cfg(feature = "derive")]
42pub use ddd_rs_derive::*;