Struct Transitions

pub struct Transitions { pub timestamps: MaybeStaticSlice<Timestamp>, pub civil_starts: MaybeStaticSlice<DateTime>, pub civil_ends: MaybeStaticSlice<DateTime>, pub infos: MaybeStaticSlice<TransitionInfo> }

The set of transitions in TZif data, laid out in column orientation.

The column orientation is used to make TZ lookups faster. Specifically, for finding an offset for a timestamp, we do a binary search on timestamps. For finding an offset for a local datetime, we do a binary search on civil_starts. By making these two distinct sequences with nothing else in them, we make them as small as possible and thus improve cache locality.

All sequences in this type are in correspondence with one another. They are all guaranteed to have the same length.

Fields

timestamps: MaybeStaticSlice<Timestamp>

The timestamp at which this transition begins.

civil_starts: MaybeStaticSlice<DateTime>

The wall clock time for when a transition begins.

civil_ends: MaybeStaticSlice<DateTime>

The wall clock time for when a transition ends.

This is equivalent to the corresponding entry in civil_starts when the corresponding transition is neither a gap nor a fold. A transition that isn't a gap or a fold keeps the offset the same but may change something else, like the abbreviation or whether it's considered daylight saving time.

infos: MaybeStaticSlice<TransitionInfo>

Any other relevant data about a transition, such as its local type index and the transition kind.

Trait Implementations

impl Clone for Transitions

fn clone(&self) -> Transitions

impl Debug for Transitions

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Auto Trait Implementations

impl Freeze for Transitions

impl RefUnwindSafe for Transitions

impl Send for Transitions

impl Sync for Transitions

impl Unpin for Transitions

impl UnsafeUnpin for Transitions

impl UnwindSafe for Transitions

Blanket Implementations

impl<T> Any for Transitions where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for Transitions where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for Transitions where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

impl<T> CloneToUninit for Transitions where T: Clone,

unsafe fn clone_to_uninit(&self, dest: *mut u8)

impl<T> From<T> for Transitions

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for Transitions where T: Clone,

type Owned = T;
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)

impl<T, U> Into<U> for Transitions where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom<U> for Transitions where U: Into<T>,

type Error = Infallible;
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto<U> for Transitions where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error;
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>