## Description Implement `PostalAddress` as a `ValueObject` in the `contact` module. **Spec:** composite: `StreetAddress` + `City` + `ZipCode` + `CountryCode` ## Implementation checklist - [ ] Create `src/contact/postaladdress.rs` - [ ] Implement `ValueObject` trait - [ ] Add `#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]` - [ ] Export from `src/contact/mod.rs` and `prelude` - [ ] Unit tests: valid input · empty input · invalid format · normalisation - [ ] Doc comment with `# Example` block - [ ] Update status in `ROADMAP.md` from ⬜ to ✅ ## References - [ROADMAP.md](https://github.com/codegress-com/arvo/blob/main/ROADMAP.md) - [CONTRIBUTING.md](https://github.com/codegress-com/arvo/blob/main/CONTRIBUTING.md)
Description
Implement
PostalAddressas aValueObjectin thecontactmodule.Spec: composite:
StreetAddress+City+ZipCode+CountryCodeImplementation checklist
src/contact/postaladdress.rsValueObjecttrait#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]src/contact/mod.rsandprelude# ExampleblockROADMAP.mdfrom ⬜ to ✅References