pub struct TimeZoneIdMapperWithFastCanonicalizationBorrowed<'a> {
inner: TimeZoneIdMapperBorrowed<'a>,
data: &'a Bcp47ToIanaMapV1<'a>,
}
Expand description
A borrowed wrapper around the time zone ID mapper, returned by
TimeZoneIdMapperWithFastCanonicalization::as_borrowed()
. More efficient to query.
Fields§
§inner: TimeZoneIdMapperBorrowed<'a>
§data: &'a Bcp47ToIanaMapV1<'a>
Implementations§
source§impl<'a> TimeZoneIdMapperWithFastCanonicalizationBorrowed<'a>
impl<'a> TimeZoneIdMapperWithFastCanonicalizationBorrowed<'a>
sourcepub fn inner(&self) -> TimeZoneIdMapperBorrowed<'a>
pub fn inner(&self) -> TimeZoneIdMapperBorrowed<'a>
Gets the inner TimeZoneIdMapperBorrowed
for performing queries.
sourcepub fn canonicalize_iana(
&self,
iana_id: &str,
) -> Option<(&str, TimeZoneBcp47Id)>
pub fn canonicalize_iana( &self, iana_id: &str, ) -> Option<(&str, TimeZoneBcp47Id)>
Returns the canonical, normalized identifier of the given IANA time zone.
Also returns the BCP-47 time zone ID.
This is a faster version of TimeZoneIdMapperBorrowed::canonicalize_iana()
and it always returns borrowed IANA strings, but it requires loading additional data
(see TimeZoneIdMapperWithFastCanonicalization
).
Returns None
if the IANA ID is not found.
§Examples
use icu_timezone::TimeZoneBcp47Id;
use icu_timezone::TimeZoneIdMapperWithFastCanonicalization;
use std::borrow::Cow;
let mapper = TimeZoneIdMapperWithFastCanonicalization::new();
let mapper = mapper.as_borrowed();
let result = mapper.canonicalize_iana("Asia/CALCUTTA").unwrap();
// The Cow is always returned borrowed:
assert_eq!(result.0, "Asia/Kolkata");
assert_eq!(*result.1, "inccu");
// Unknown IANA time zone ID:
assert_eq!(mapper.canonicalize_iana("America/San_Francisco"), None);
sourcepub fn canonical_iana_from_bcp47(
&self,
bcp47_id: TimeZoneBcp47Id,
) -> Option<&str>
pub fn canonical_iana_from_bcp47( &self, bcp47_id: TimeZoneBcp47Id, ) -> Option<&str>
Returns the canonical, normalized IANA ID of the given BCP-47 ID.
This is a faster version of TimeZoneIdMapperBorrowed::find_canonical_iana_from_bcp47()
and it always returns borrowed IANA strings, but it requires loading additional data
(see TimeZoneIdMapperWithFastCanonicalization
).
Returns None
if the BCP-47 ID is not found.
§Examples
use icu_timezone::TimeZoneBcp47Id;
use icu_timezone::TimeZoneIdMapperWithFastCanonicalization;
use std::borrow::Cow;
use tinystr::tinystr;
let mapper = TimeZoneIdMapperWithFastCanonicalization::new();
let mapper = mapper.as_borrowed();
let bcp47_id = TimeZoneBcp47Id(tinystr!(8, "inccu"));
let result = mapper.canonical_iana_from_bcp47(bcp47_id).unwrap();
// The Cow is always returned borrowed:
assert_eq!(result, "Asia/Kolkata");
// Unknown BCP-47 time zone ID:
let bcp47_id = TimeZoneBcp47Id(tinystr!(8, "ussfo"));
assert_eq!(mapper.canonical_iana_from_bcp47(bcp47_id), None);
Trait Implementations§
source§impl<'a> Clone for TimeZoneIdMapperWithFastCanonicalizationBorrowed<'a>
impl<'a> Clone for TimeZoneIdMapperWithFastCanonicalizationBorrowed<'a>
source§fn clone(&self) -> TimeZoneIdMapperWithFastCanonicalizationBorrowed<'a>
fn clone(&self) -> TimeZoneIdMapperWithFastCanonicalizationBorrowed<'a>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more