pub struct TimezonePeriods<'a> {
pub index: ZeroTrieSimpleAscii<ZeroVec<'a, u8>>,
pub list: VarZeroVec<'a, VarTupleULE<(u8, NichedOption<NonZero<u8>, 1>), ZeroSlice<(Timestamp24, u8, NichedOption<NonZero<u8>, 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<NonZero<u8>, 1>), ZeroSlice<(Timestamp24, u8, NichedOption<NonZero<u8>, 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.
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 · 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<'de> Deserialize<'de> for TimezonePeriods<'de>
impl<'de> Deserialize<'de> for TimezonePeriods<'de>
Source§fn deserialize<D>(
deserializer: D,
) -> Result<TimezonePeriods<'de>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<TimezonePeriods<'de>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl MaybeAsVarULE for TimezonePeriods<'_>
impl MaybeAsVarULE for TimezonePeriods<'_>
Source§impl<'a> PartialEq for TimezonePeriods<'a>
impl<'a> PartialEq for TimezonePeriods<'a>
Source§impl<'a> Yokeable<'a> for TimezonePeriods<'static>
impl<'a> Yokeable<'a> for TimezonePeriods<'static>
Source§type Output = TimezonePeriods<'a>
type Output = TimezonePeriods<'a>
Self with the 'static replaced with 'a, i.e. Self<'a>Source§fn transform_owned(self) -> <TimezonePeriods<'static> as Yokeable<'a>>::Output
fn transform_owned(self) -> <TimezonePeriods<'static> as Yokeable<'a>>::Output
Source§unsafe fn make(
this: <TimezonePeriods<'static> as Yokeable<'a>>::Output,
) -> TimezonePeriods<'static>
unsafe fn make( this: <TimezonePeriods<'static> as Yokeable<'a>>::Output, ) -> TimezonePeriods<'static>
Self<'a>’s lifetime. Read moreSource§fn transform_mut<F>(&'a mut self, f: F)
fn transform_mut<F>(&'a mut self, f: F)
self between &'a mut Self<'static> and &'a mut Self<'a>,
and pass it to f. Read moreSource§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>) -> TimezonePeriods<'zf>
fn zero_from(this: &'zf TimezonePeriods<'zf_inner>) -> TimezonePeriods<'zf>
C into a struct that may retain references into C.impl<'a> StructuralPartialEq for TimezonePeriods<'a>
Auto Trait Implementations§
impl<'a> Freeze for TimezonePeriods<'a>
impl<'a> RefUnwindSafe for TimezonePeriods<'a>
impl<'a> Send for TimezonePeriods<'a>
impl<'a> Sync for TimezonePeriods<'a>
impl<'a> Unpin for TimezonePeriods<'a>
impl<'a> UnwindSafe for TimezonePeriods<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more