pub struct TimezonePeriods<'a> {
pub index: ZeroTrieSimpleAscii<ZeroVec<'a, u8>>,
pub list: VarZeroVec<'a, VarTupleULE<(u8, NichedOption<MetazoneId, 1>), ZeroSlice<(Timestamp24, u8, NichedOption<MetazoneId, 1>)>>>,
pub offsets: ZeroVec<'a, VariantOffsetsWithMetazoneMembershipKind>,
}Expand description
Data struct for the TimezonePeriodsV1 marker.
Fields§
§index: ZeroTrieSimpleAscii<ZeroVec<'a, u8>>Index of TimeZones into list.
list: VarZeroVec<'a, VarTupleULE<(u8, NichedOption<MetazoneId, 1>), ZeroSlice<(Timestamp24, u8, NichedOption<MetazoneId, 1>)>>>Each entry contains at least one period, which implicitly starts at the UNIX epoch. This is stored in the first tuple element.
If more periods are required the second tuple element contains them, along with their starting timestamp. These entries are ordered chronologically.
The values ((u8, Option<MetazoneId>)) are an index into the offsets list for the offset
that the zone observes in that period, and optionally whether it is part of a metazone.
offsets: ZeroVec<'a, VariantOffsetsWithMetazoneMembershipKind>The deduplicated list of offsets.
There are currently 99 unique VariantOffsetsWithMetazoneMembershipKind, so storing the index as a u8 is plenty enough.
Implementations§
Source§impl TimezonePeriods<'_>
impl TimezonePeriods<'_>
Sourcepub fn get(
&self,
time_zone_id: TimeZone,
timestamp: ZoneNameTimestamp,
) -> Option<(VariantOffsets, Option<MetazoneInfo>)>
pub fn get( &self, time_zone_id: TimeZone, timestamp: ZoneNameTimestamp, ) -> Option<(VariantOffsets, Option<MetazoneInfo>)>
Gets the information for a time zone at at timestamp
If the timezone is in a metazone, returns the metazone ID as well as the offsets that the metazone’s golden zone currently uses.
fn find_period( &self, idx: usize, timestamp: ZoneNameTimestamp, ) -> Option<(u8, NichedOption<MetazoneId, 1>)>
Trait Implementations§
Source§impl<'a> Clone for TimezonePeriods<'a>
impl<'a> Clone for TimezonePeriods<'a>
Source§fn clone(&self) -> TimezonePeriods<'a>
fn clone(&self) -> TimezonePeriods<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'a> Debug for TimezonePeriods<'a>
impl<'a> Debug for TimezonePeriods<'a>
Source§impl MaybeAsVarULE for TimezonePeriods<'_>
impl MaybeAsVarULE for TimezonePeriods<'_>
Source§impl<'a> PartialEq for TimezonePeriods<'a>
impl<'a> PartialEq for TimezonePeriods<'a>
Source§fn eq(&self, other: &TimezonePeriods<'a>) -> bool
fn eq(&self, other: &TimezonePeriods<'a>) -> bool
self and other values to be equal, and is used by ==.Source§impl<'yoke> Yokeable<'yoke> for TimezonePeriods<'static>
impl<'yoke> Yokeable<'yoke> for TimezonePeriods<'static>
Source§type Output = TimezonePeriods<'yoke>
type Output = TimezonePeriods<'yoke>
Self with the 'static replaced with 'a, i.e. Self<'a>Source§fn transform_owned(self) -> Self::Output
fn transform_owned(self) -> Self::Output
Source§impl<'zf, 'zf_inner> ZeroFrom<'zf, TimezonePeriods<'zf_inner>> for TimezonePeriods<'zf>
impl<'zf, 'zf_inner> ZeroFrom<'zf, TimezonePeriods<'zf_inner>> for TimezonePeriods<'zf>
Source§fn zero_from(this: &'zf TimezonePeriods<'zf_inner>) -> Self
fn zero_from(this: &'zf TimezonePeriods<'zf_inner>) -> Self
C into a struct that may retain references into C.