Struct icu::datetime::FormattedTimeZone
source · [−]pub struct FormattedTimeZone<'l, T> where
T: TimeZoneInput, { /* private fields */ }
Expand description
FormattedTimeZone
is a intermediate structure which can be retrieved as an output from TimeZoneFormatter
.
Implementations
sourceimpl<'l, T> FormattedTimeZone<'l, T> where
T: TimeZoneInput,
impl<'l, T> FormattedTimeZone<'l, T> where
T: TimeZoneInput,
sourcepub fn write_no_fallback<W>(
&self,
w: &mut W
) -> Result<Result<(), Error>, DateTimeError> where
W: Write + ?Sized,
pub fn write_no_fallback<W>(
&self,
w: &mut W
) -> Result<Result<(), Error>, DateTimeError> where
W: Write + ?Sized,
Write time zone with no fallback.
Examples
use icu::datetime::time_zone::TimeZoneFormatter;
use icu::datetime::DateTimeError;
use icu::locid::locale;
use icu::timezone::CustomTimeZone;
use tinystr::tinystr;
let mut tzf = TimeZoneFormatter::try_new_unstable(
&icu_testdata::unstable(),
&locale!("en").into(),
Default::default(),
)
.unwrap();
let mut buf = String::new();
let mut time_zone = "Z".parse::<CustomTimeZone>().unwrap();
time_zone.time_zone_id = Some(tinystr!(8, "gblon").into());
// There are no non-fallback formats enabled:
assert!(matches!(
tzf.format(&time_zone).write_no_fallback(&mut buf),
Err(DateTimeError::UnsupportedOptions)
));
assert!(buf.is_empty());
// Enable a non-fallback format:
tzf.load_generic_location_format(&icu_testdata::unstable())
.unwrap();
assert!(matches!(
tzf.format(&time_zone).write_no_fallback(&mut buf),
Ok(Ok(_))
));
assert_eq!("London Time", buf);
// Errors still occur if the time zone is not supported:
buf.clear();
time_zone.time_zone_id = Some(tinystr!(8, "zzzzz").into());
assert!(matches!(
tzf.format(&time_zone).write_no_fallback(&mut buf),
Err(DateTimeError::UnsupportedOptions)
));
// Use the `Writable` trait instead to enable infallible formatting:
writeable::assert_writeable_eq!(tzf.format(&time_zone), "GMT");
Trait Implementations
sourceimpl<'l, T> Display for FormattedTimeZone<'l, T> where
T: TimeZoneInput,
impl<'l, T> Display for FormattedTimeZone<'l, T> where
T: TimeZoneInput,
sourceimpl<'l, T> Writeable for FormattedTimeZone<'l, T> where
T: TimeZoneInput,
impl<'l, T> Writeable for FormattedTimeZone<'l, T> where
T: TimeZoneInput,
sourcefn write_to<W>(&self, sink: &mut W) -> Result<(), Error> where
W: Write + ?Sized,
fn write_to<W>(&self, sink: &mut W) -> Result<(), Error> where
W: Write + ?Sized,
Format time zone with fallbacks.
sourcefn write_to_parts<S>(&self, sink: &mut S) -> Result<(), Error> where
S: PartsWrite + ?Sized,
fn write_to_parts<S>(&self, sink: &mut S) -> Result<(), Error> where
S: PartsWrite + ?Sized,
Write bytes and Part
annotations to the given sink. Errors from the
sink are bubbled up. The default implementation delegates to write_to
,
and doesn’t produce any Part
annotations. Read more
sourcefn writeable_length_hint(&self) -> LengthHint
fn writeable_length_hint(&self) -> LengthHint
Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
sourcefn write_to_string(&self) -> Cow<'_, str>
fn write_to_string(&self) -> Cow<'_, str>
Creates a new String
with the data from this Writeable
. Like ToString
,
but smaller and faster. Read more
Auto Trait Implementations
impl<'l, T> RefUnwindSafe for FormattedTimeZone<'l, T> where
T: RefUnwindSafe,
impl<'l, T> Send for FormattedTimeZone<'l, T> where
T: Sync,
impl<'l, T> Sync for FormattedTimeZone<'l, T> where
T: Sync,
impl<'l, T> Unpin for FormattedTimeZone<'l, T>
impl<'l, T> UnwindSafe for FormattedTimeZone<'l, T> where
T: RefUnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Separable for T where
T: Display,
impl<T> Separable for T where
T: Display,
sourcefn separate_by_policy(&self, policy: SeparatorPolicy<'_>) -> String
fn separate_by_policy(&self, policy: SeparatorPolicy<'_>) -> String
Adds separators according to the given SeparatorPolicy
. Read more
sourcefn separate_with_commas(&self) -> String
fn separate_with_commas(&self) -> String
Inserts a comma every three digits from the right. Read more
sourcefn separate_with_spaces(&self) -> String
fn separate_with_spaces(&self) -> String
Inserts a space every three digits from the right. Read more
sourcefn separate_with_dots(&self) -> String
fn separate_with_dots(&self) -> String
Inserts a period every three digits from the right. Read more
sourcefn separate_with_underscores(&self) -> String
fn separate_with_underscores(&self) -> String
Inserts an underscore every three digits from the right. Read more