You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`ValueObject` trait split into two traits: `ValueObject` (construction + destructuring) and `PrimitiveValue` (single-primitive accessor via `.value()`). Types backed by a primitive implement both; composite types implement only `ValueObject`.
19
+
- Removed the `sql` feature and all SQLx integration. Database mapping is now the responsibility of the application layer (see the ORM guide in `docs/`).
20
+
21
+
### Added
22
+
23
+
-`PrimitiveValue` trait with a `.value() -> &Primitive` accessor for types whose canonical form is a single primitive.
24
+
-`TryFrom<String>` and `TryFrom<&str>` implemented for all value objects — ergonomic construction without calling `::new()` explicitly.
25
+
- Serde deserialization now runs the full validation pipeline; deserializing an invalid value returns an error instead of producing an invalid object.
26
+
- Minimum `serde` version pinned to `1.0.116` (required for the `try_from` container attribute).
27
+
28
+
### Fixed
29
+
30
+
- Replaced `once_cell::sync::Lazy` with `std::sync::LazyLock` (stable since Rust 1.80); `once_cell` dependency removed.
31
+
- Stale `test-sql` CI job removed; `once_cell` removed from the `contact` feature declaration.
0 commit comments