Skip to main content

Span

Struct Span 

Source
pub struct Span { /* private fields */ }
Expand description

A closed interval of durations: a magnitude that is known only to within a range.

Window is to Instant as Span is to Delta, and the pairing is what lets Rule U’s propagation actually happen. Rule J.2 requires an anchor’s uncertainty to reach every derived field, and an anchor is a window; the elapsed time from an uncertain anchor to an uncertain instant is therefore not a Delta but a Span, and typing it as one keeps the uncertainty from being dropped on the way through.

Implementations§

Source§

impl Span

Source

pub fn new(lo: Delta, hi: Delta) -> Result<Span>

Construct from bounds. UCAL-E0022 if inverted.

Source

pub fn exact(d: Delta) -> Span

A magnitude known exactly.

Source

pub fn zero() -> Span

Zero, exactly.

Source

pub fn lo(&self) -> &Delta

Lower bound.

Source

pub fn hi(&self) -> &Delta

Upper bound.

Source

pub fn uncertainty(&self) -> Delta

How wide the uncertainty is.

Source

pub fn is_exact(&self) -> bool

Whether the magnitude is known exactly.

Source

pub fn checked_add(&self, other: &Span) -> Result<Span>

Interval addition: lo with lo, hi with hi (Rule U).

Source

pub fn checked_sub(&self, other: &Span) -> Result<(Span, bool)>

Interval subtraction, [lo - other.hi, hi - other.lo].

The lower bound clamps at zero rather than failing: a magnitude is non-negative, and two overlapping spans genuinely admit a difference of zero. The clamp is reported so a caller can tell it happened.

Source

pub fn midpoint(&self, mode: Rounding) -> Result<Delta>

Collapse to a single magnitude under an explicit mode (Rule U).

Trait Implementations§

Source§

impl Clone for Span

Source§

fn clone(&self) -> Span

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Span

Source§

impl Debug for Span

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Span

Source§

impl PartialEq for Span

Source§

fn eq(&self, other: &Span) -> 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 Span

Auto Trait Implementations§

§

impl Freeze for Span

§

impl RefUnwindSafe for Span

§

impl Send for Span

§

impl Sync for Span

§

impl Unpin for Span

§

impl UnsafeUnpin for Span

§

impl UnwindSafe for Span

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<U> As for U

Source§

fn as_<T>(self) -> T
where T: CastFrom<U>, U: Sized,

Casts self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.