6 releases
0.2.5 | Aug 14, 2021 |
---|---|
0.2.4 | Aug 13, 2021 |
0.2.0 | Jul 25, 2021 |
0.1.3 |
|
0.1.2-alpha.1 |
|
#2237 in Rust patterns
59 downloads per month
21KB
475 lines
This is a simple project to help create on the fly value objects aka constrained types.
It provides some helper functions to construct these from Rust primitives and turn them into domain primitives, new types, value objects, you name it.
Motivation
Constrained types guarantee valid state and behaviour from dynamic runtime inputs after construction.
This can be useful when creating simple wrapper types, so called newtypes, value objects or domain primitives.
If an input does not meet the validation criteria, it returns an error result instead.
The goal is to remove defensive code statements, ease implementing business invariants and guarantee correct state at runtime.
Heavily inspired by "Domain Modelling Made Functional".
For more complex types, please take a look at the various builder crates.
Dependencies
~2.9–4.5MB
~80K SLoC