Skip to main content

Interval

Struct Interval 

Source
pub struct Interval {
    pub lo: i64,
    pub hi: i64,
}
Expand description

An abstract value in the interval domain [lo, hi].

Fields§

§lo: i64§hi: i64

Implementations§

Source§

impl Interval

Source

pub fn new(lo: i64, hi: i64) -> Self

Create an interval [lo, hi].

Source

pub fn top() -> Self

Return the top interval (-∞, +∞) represented as (i64::MIN, i64::MAX).

Source

pub fn bottom() -> Self

Return the bottom interval (empty).

Source

pub fn is_bottom(&self) -> bool

Return whether this is the bottom (empty) interval.

Source

pub fn is_top(&self) -> bool

Return whether this is the top interval.

Source

pub fn join(&self, other: &Interval) -> Interval

Return the join (widening step) of two intervals.

Source

pub fn meet(&self, other: &Interval) -> Interval

Return the meet (intersection) of two intervals.

Source

pub fn contains(&self, v: i64) -> bool

Return whether this interval contains a given value.

Source

pub fn width(&self) -> u64

Return the width (hi - lo + 1), or 0 if bottom.

Source

pub fn add(&self, other: &Interval) -> Interval

Add two intervals.

Source

pub fn negate(&self) -> Interval

Negate an interval.

Source

pub fn sub(&self, other: &Interval) -> Interval

Subtract two intervals.

Trait Implementations§

Source§

impl Clone for Interval

Source§

fn clone(&self) -> Interval

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Interval

Source§

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

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

impl PartialEq for Interval

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Interval

Source§

impl Eq for Interval

Source§

impl StructuralPartialEq for Interval

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> 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.