Description
Implement TimeZone as a ValueObject in the geo module.
Spec: IANA timezone name (e.g. Europe/Prague)
Implementation checklist
Implementation detail
Input / Output
|
Type |
Alias |
| Input |
String |
TimeZoneInput |
| Output |
String |
TimeZoneOutput |
Normalization
Trim.
Validation
Must be a known IANA timezone name (e.g. "Europe/Prague", "America/New_York", "UTC"). Validate against a static list of accepted names embedded at compile time. Do not use an external runtime lookup — embed the list of ~600 canonical IANA names as a phf set or a sorted &[&str] with binary search.
Extra methods
None beyond the trait.
References
Description
Implement
TimeZoneas aValueObjectin thegeomodule.Spec: IANA timezone name (e.g.
Europe/Prague)Implementation checklist
src/geo/timezone.rsValueObjecttrait#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]src/geo/mod.rsandprelude# ExampleblockROADMAP.mdfrom ⬜ to ✅Implementation detail
Input / Output
StringTimeZoneInputStringTimeZoneOutputNormalization
Trim.
Validation
Must be a known IANA timezone name (e.g.
"Europe/Prague","America/New_York","UTC"). Validate against a static list of accepted names embedded at compile time. Do not use an external runtime lookup — embed the list of ~600 canonical IANA names as aphfset or a sorted&[&str]with binary search.Extra methods
None beyond the trait.
References