pub struct LocalTimeOffsetEntry {
pub country_code: LangCode,
pub country_region_id: u8,
pub local_time_offset_negative: bool,
pub local_time_offset_bcd: u16,
pub time_of_change_raw: [u8; 5],
pub next_time_offset_bcd: u16,
}Expand description
One per-country offset entry.
Fields§
§country_code: LangCodeISO 3166 alpha country code.
country_region_id: u86-bit country_region_id for sub-national regions.
local_time_offset_negative: boolPolarity: false = offset is positive (local = UTC + offset), true = offset is negative (local = UTC − offset).
local_time_offset_bcd: u1616-bit BCD HHMM local time offset.
time_of_change_raw: [u8; 5]40-bit MJD+UTC raw bytes of the DST/offset transition moment.
next_time_offset_bcd: u1616-bit BCD HHMM next offset (applied after time_of_change).
Implementations§
Source§impl LocalTimeOffsetEntry
impl LocalTimeOffsetEntry
Sourcepub fn local_time_offset(&self) -> Option<Duration>
pub fn local_time_offset(&self) -> Option<Duration>
Decode local_time_offset (BCD HHMM, signed by
local_time_offset_negative) to a chrono::Duration. None if the
BCD nibbles are out of range.
Sourcepub fn next_time_offset(&self) -> Option<Duration>
pub fn next_time_offset(&self) -> Option<Duration>
Decode next_time_offset (BCD HHMM) to a chrono::Duration. It
shares the single local_time_offset_negative polarity bit (EN 300 468
§6.2.20). None if the BCD nibbles are out of range.
Sourcepub fn time_of_change(&self) -> Option<DateTime<Utc>>
pub fn time_of_change(&self) -> Option<DateTime<Utc>>
Decode time_of_change_raw (16-bit MJD + 24-bit BCD UTC) to a UTC
datetime. None if the date/time fields are out of range.
Sourcepub fn set_time_of_change(&mut self, dt: DateTime<Utc>) -> Result<()>
pub fn set_time_of_change(&mut self, dt: DateTime<Utc>) -> Result<()>
Set the time_of_change, encoding it into the 40-bit raw field.
§Errors
ValueOutOfRange if the date is
outside the representable 16-bit MJD range.
Sourcepub fn set_offsets(&mut self, local: Duration, next: Duration) -> Result<()>
pub fn set_offsets(&mut self, local: Duration, next: Duration) -> Result<()>
Set both offsets and the shared polarity bit from signed durations.
The wire format carries one polarity bit for both offsets, so local
and next must share a sign (zero matches either).
§Errors
ValueOutOfRange if the two
offsets disagree in sign or a magnitude is 100 hours or longer.
Trait Implementations§
Source§impl Clone for LocalTimeOffsetEntry
impl Clone for LocalTimeOffsetEntry
Source§fn clone(&self) -> LocalTimeOffsetEntry
fn clone(&self) -> LocalTimeOffsetEntry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for LocalTimeOffsetEntry
Source§impl Debug for LocalTimeOffsetEntry
impl Debug for LocalTimeOffsetEntry
impl Eq for LocalTimeOffsetEntry
Source§impl PartialEq for LocalTimeOffsetEntry
impl PartialEq for LocalTimeOffsetEntry
Source§fn eq(&self, other: &LocalTimeOffsetEntry) -> bool
fn eq(&self, other: &LocalTimeOffsetEntry) -> bool
self and other values to be equal, and is used by ==.