Skip to main content

OffsetHours

Struct OffsetHours 

Source
pub struct OffsetHours(/* private fields */);
Expand description

The number of hours allowed in a time zone offset.

This number was somewhat arbitrarily chosen. In part because it’s bigger than any current offset in actual use by a wide margin, and in part because POSIX TZ strings require the ability to store offsets in the range -24:59:59..=25:59:59. Note though that we make the range a little bigger with -25:59:59..=25:59:59 so that negating an offset always produces a valid offset.

Note that RFC 8536 actually allows offsets to be much bigger, namely, in the range (-2^31, 2^31), where both ends are exclusive (-2^31 is explicitly disallowed, and 2^31 overflows a signed 32-bit integer). But RFC 8536 does say that it should be in the range [-89999, 93599], which matches POSIX. In order to keep our offset small, we stick roughly to what POSIX requires.

Note that we support a slightly bigger range of offsets than Temporal. Temporal seems to support only up to 23 hours, but we go up to 25 hours. This is done to support POSIX time zone strings, which also require 25 hours (plus the maximal minute/second components).

Implementations§

Source§

impl OffsetHours

Source

pub const MIN: i8 = <OffsetHours as Bounds>::MIN

Source

pub const MAX: i8 = <OffsetHours as Bounds>::MAX

Source

pub const LEN: i128

Source

pub const fn error() -> BoundsError

Source

pub fn check(n: impl Into<i64>) -> Result<i8, BoundsError>

Source

pub const fn checkc(n: i64) -> Result<i8, BoundsError>

Source

pub const fn checked_add(n1: i8, n2: i8) -> Result<i8, BoundsError>

Source

pub fn checked_mul(n1: i8, n2: i8) -> Result<i8, BoundsError>

Trait Implementations§

Source§

impl Bounds for OffsetHours

Source§

const WHAT: &'static str = "time zone offset hours"

A short human readable description of the values represented by these bounds. This is used in error messages.
Source§

const MIN: Self::Primitive = -25

The minimum boundary value.
Source§

const MAX: Self::Primitive = 25

The maximum boundary value.
Source§

type Primitive = i8

The primitive integer representation for this boundary type. Read more
Source§

type Error = BoundsError

The error type returned when a value is considered out of range for this particular implementation. Read more
Source§

fn error() -> BoundsError

Create an error when a value is outside the bounds for this type.
Source§

fn check(n: impl Into<i64>) -> Result<Self::Primitive, Self::Error>

Converts the 64-bit integer provided into the primitive representation of these bounds. Read more
Source§

fn check_self(n: Self::Primitive) -> Result<Self::Primitive, Self::Error>

Checks whether the given integer, in the same primitive representation as this boundary type, is in bounds. Read more
Source§

fn checked_add( n1: Self::Primitive, n2: Self::Primitive, ) -> Result<Self::Primitive, Self::Error>

Performs checked addition using this boundary type’s primitive representation. Read more
Source§

fn checked_mul( n1: Self::Primitive, n2: Self::Primitive, ) -> Result<Self::Primitive, Self::Error>

Performs checked multiplication using this boundary type’s primitive representation. Read more
Source§

impl Eq for OffsetHours

Source§

impl PartialEq for OffsetHours

Source§

fn eq(&self, other: &OffsetHours) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for OffsetHours

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.