## Description Implement `PhoneNumber` as a `ValueObject` in the `contact` module. **Spec:** E.164, strips spaces/dashes ## Implementation checklist - [ ] Create `src/contact/phonenumber.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
PhoneNumberas aValueObjectin thecontactmodule.Spec: E.164, strips spaces/dashes
Implementation checklist
src/contact/phonenumber.rsValueObjecttrait#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]src/contact/mod.rsandprelude# ExampleblockROADMAP.mdfrom ⬜ to ✅References