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() -> MetazoneCalculator
pub const fn new() -> MetazoneCalculator
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<MetazoneCalculator, TimeZoneError>
pub fn try_new_with_any_provider( provider: &(impl AnyProvider + ?Sized) ) -> Result<MetazoneCalculator, TimeZoneError>
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<MetazoneCalculator, TimeZoneError>
pub fn try_new_with_buffer_provider( provider: &(impl BufferProvider + ?Sized) ) -> Result<MetazoneCalculator, TimeZoneError>
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<MetazoneCalculator, TimeZoneError>
pub fn try_new_unstable( provider: &(impl DataProvider<MetazonePeriodV1Marker> + ?Sized) ) -> Result<MetazoneCalculator, TimeZoneError>
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::timezone::provider::{MetazoneId, TimeZoneBcp47Id};
use icu::timezone::MetazoneCalculator;
use icu_calendar::DateTime;
use icu_locid::locale;
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
source§impl Default for MetazoneCalculator
impl Default for MetazoneCalculator
source§fn default() -> MetazoneCalculator
fn default() -> MetazoneCalculator
Returns the “default value” for a type. Read more
Auto Trait Implementations§
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