Struct icu_datetime::FormattedTimeZone
source · pub struct FormattedTimeZone<'l, T>where
T: TimeZoneInput,{
pub(crate) time_zone_format: &'l TimeZoneFormatter,
pub(crate) time_zone: &'l T,
}
Expand description
FormattedTimeZone
is a intermediate structure which can be retrieved as an output from TimeZoneFormatter
.
Fields§
§time_zone_format: &'l TimeZoneFormatter
§time_zone: &'l T
Implementations§
source§impl<'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, DateTimeError>
pub fn write_no_fallback<W>(&self, w: &mut W) -> Result<Result, DateTimeError>
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(&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.include_generic_location_format().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§
source§impl<'l, T> Clone for FormattedTimeZone<'l, T>where
T: TimeZoneInput + Clone,
impl<'l, T> Clone for FormattedTimeZone<'l, T>where
T: TimeZoneInput + Clone,
source§fn clone(&self) -> FormattedTimeZone<'l, T>
fn clone(&self) -> FormattedTimeZone<'l, T>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<'l, T> Debug for FormattedTimeZone<'l, T>where
T: TimeZoneInput + Debug,
impl<'l, T> Debug for FormattedTimeZone<'l, T>where
T: TimeZoneInput + Debug,
source§impl<'l, T> Display for FormattedTimeZone<'l, T>where
T: TimeZoneInput,
impl<'l, T> Display for FormattedTimeZone<'l, T>where
T: TimeZoneInput,
source§impl<'l, T> Writeable for FormattedTimeZone<'l, T>where
T: TimeZoneInput,
impl<'l, T> Writeable for FormattedTimeZone<'l, T>where
T: TimeZoneInput,
source§fn write_to<W: Write + ?Sized>(&self, sink: &mut W) -> Result
fn write_to<W: Write + ?Sized>(&self, sink: &mut W) -> Result
Format time zone with fallbacks.
source§fn 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.source§fn 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
impl<'l, T> Copy for FormattedTimeZone<'l, T>where
T: TimeZoneInput + Copy,
Auto Trait Implementations§
impl<'l, T> Freeze for FormattedTimeZone<'l, T>
impl<'l, T> RefUnwindSafe for FormattedTimeZone<'l, T>where
T: RefUnwindSafe,
impl<'l, T> !Send for FormattedTimeZone<'l, T>
impl<'l, T> !Sync for FormattedTimeZone<'l, T>
impl<'l, T> Unpin for FormattedTimeZone<'l, T>
impl<'l, T> UnwindSafe for FormattedTimeZone<'l, T>where
T: RefUnwindSafe,
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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