Struct PiecesNumericOffset
struct PiecesNumericOffset { ... }
A specific numeric offset, including the sign of the offset, for use with
Pieces.
Signedness
The sign attached to this type is usually redundant, since the underlying
Offset is itself signed. But it can be used to distinguish between
+00:00 (+00 is the preferred offset) and -00:00 (+00 is what should
be used, but only because the offset to local time is not known). Generally
speaking, one should regard -00:00 as equivalent to Z, per RFC 9557.
Implementations
impl PiecesNumericOffset
fn offset(self: &Self) -> OffsetReturns the numeric offset.
Example
use ; let pieces = parse?; let off = match pieces.offset.unwrap ; // This is really only useful if you care that an actual // numeric offset was written and not, e.g., `Z`. Otherwise, // you could just use `PiecesOffset::to_numeric_offset`. assert_eq!; # Ok::fn is_negative(self: &Self) -> boolReturns whether the sign of the offset is negative or not.
When formatting a
Piecesto a string, this is only used to determine the rendered sign when theOffsetis itself zero. In all other cases, the sign rendered matches the sign of theOffset.Since
Offsetdoes not keep track of a sign when its value is zero, when using theFrom<Offset>trait implementation for this type,is_negativeis always set tofalsewhen the offset is zero.Example
use ; let pieces = parse?; let off = match pieces.offset.unwrap ; // The numeric offset component in this case is // indistiguisable from `Offset::UTC`. This is // because an `Offset` does not use different // representations for negative and positive zero. assert_eq!; // This is where `is_negative` comes in handy: assert_eq!; # Ok::fn with_negative_zero(self: Self) -> PiecesNumericOffsetSets this numeric offset to use
-00:00if and only if the offset is zero.Example
use ; // If you create a `Pieces` from a `Timestamp` with a UTC offset, // then this is interpreted as "the offset from UTC is known and is // zero." let pieces = from; assert_eq!; // Otherwise, if you create a `Pieces` from just a `Timestamp` with // no offset, then it is interpreted as "the offset from UTC is not // known." Typically, this is rendered with `Z` for "Zulu": let pieces = from; assert_eq!; // But it might be the case that you want to use `-00:00` instead, // perhaps to conform to some existing convention or legacy // applications that require it: let pieces = from .with_offset; assert_eq!;
impl Clone for PiecesNumericOffset
fn clone(self: &Self) -> PiecesNumericOffset
impl Copy for PiecesNumericOffset
impl Debug for PiecesNumericOffset
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl Eq for PiecesNumericOffset
impl Freeze for PiecesNumericOffset
impl From for PiecesNumericOffset
fn from(offset: Offset) -> PiecesNumericOffset
impl Hash for PiecesNumericOffset
fn hash<__H: $crate::hash::Hasher>(self: &Self, state: &mut __H)
impl PartialEq for PiecesNumericOffset
fn eq(self: &Self, other: &PiecesNumericOffset) -> bool
impl RefUnwindSafe for PiecesNumericOffset
impl Send for PiecesNumericOffset
impl StructuralPartialEq for PiecesNumericOffset
impl Sync for PiecesNumericOffset
impl Unpin for PiecesNumericOffset
impl UnsafeUnpin for PiecesNumericOffset
impl UnwindSafe for PiecesNumericOffset
impl<T> Any for PiecesNumericOffset
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for PiecesNumericOffset
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for PiecesNumericOffset
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> CloneToUninit for PiecesNumericOffset
unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)
impl<T> From for PiecesNumericOffset
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for PiecesNumericOffset
fn to_owned(self: &Self) -> Tfn clone_into(self: &Self, target: &mut T)
impl<T, U> Into for PiecesNumericOffset
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for PiecesNumericOffset
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for PiecesNumericOffset
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>