Struct icu_timezone::MetazoneCalculator
source · pub struct MetazoneCalculator { /* private fields */ }
Expand description
MetazoneCalculator
uses data from the data provider to calculate metazone id.
Implementations§
source§impl MetazoneCalculator
impl MetazoneCalculator
sourcepub const fn new() -> Self
pub const fn new() -> Self
Constructs a MetazoneCalculator
using compiled data.
✨ Enabled with the compiled_data
Cargo feature.
sourcepub fn try_new_with_any_provider(
provider: &(impl AnyProvider + ?Sized),
) -> Result<Self, DataError>
pub fn try_new_with_any_provider( provider: &(impl AnyProvider + ?Sized), ) -> Result<Self, DataError>
A version of Self::new
that uses custom data provided by an AnyProvider
.
sourcepub fn try_new_with_buffer_provider(
provider: &(impl BufferProvider + ?Sized),
) -> Result<Self, DataError>
pub fn try_new_with_buffer_provider( provider: &(impl BufferProvider + ?Sized), ) -> Result<Self, DataError>
A version of Self::new
that uses custom data provided by a BufferProvider
.
✨ Enabled with the serde
feature.
sourcepub fn try_new_unstable(
provider: &(impl DataProvider<MetazonePeriodV1Marker> + ?Sized),
) -> Result<Self, DataError>
pub fn try_new_unstable( provider: &(impl DataProvider<MetazonePeriodV1Marker> + ?Sized), ) -> Result<Self, DataError>
A version of Self::new
that uses custom data provided by a DataProvider
.
⚠️ The bounds on provider may change over time, including in SemVer minor releases.
sourcepub fn compute_metazone_from_time_zone(
&self,
time_zone_id: TimeZoneBcp47Id,
local_datetime: &DateTime<Iso>,
) -> Option<MetazoneId>
pub fn compute_metazone_from_time_zone( &self, time_zone_id: TimeZoneBcp47Id, local_datetime: &DateTime<Iso>, ) -> Option<MetazoneId>
Calculate metazone id from timezone id and local datetime.
§Examples
use icu::calendar::DateTime;
use icu::timezone::provider::{MetazoneId, TimeZoneBcp47Id};
use icu::timezone::MetazoneCalculator;
use tinystr::tinystr;
let mzc = MetazoneCalculator::new();
assert_eq!(
mzc.compute_metazone_from_time_zone(
TimeZoneBcp47Id(tinystr!(8, "gugum")),
&DateTime::try_new_iso_datetime(1969, 1, 1, 0, 0, 0).unwrap()
),
None
);
assert_eq!(
mzc.compute_metazone_from_time_zone(
TimeZoneBcp47Id(tinystr!(8, "gugum")),
&DateTime::try_new_iso_datetime(1970, 1, 1, 0, 0, 0).unwrap()
),
Some(MetazoneId(tinystr!(4, "guam")))
);
assert_eq!(
mzc.compute_metazone_from_time_zone(
TimeZoneBcp47Id(tinystr!(8, "gugum")),
&DateTime::try_new_iso_datetime(1975, 1, 1, 0, 0, 0).unwrap()
),
Some(MetazoneId(tinystr!(4, "guam")))
);
assert_eq!(
mzc.compute_metazone_from_time_zone(
TimeZoneBcp47Id(tinystr!(8, "gugum")),
&DateTime::try_new_iso_datetime(2000, 12, 22, 15, 0, 0).unwrap()
),
Some(MetazoneId(tinystr!(4, "cham")))
);
Trait Implementations§
source§impl Debug for MetazoneCalculator
impl Debug for MetazoneCalculator
Auto Trait Implementations§
impl Freeze for MetazoneCalculator
impl RefUnwindSafe for MetazoneCalculator
impl Send for MetazoneCalculator
impl Sync for MetazoneCalculator
impl Unpin for MetazoneCalculator
impl UnwindSafe for MetazoneCalculator
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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