Struct IntervalSeq

Source
pub struct IntervalSeq<T: Debug + Display + Clone + Hash + Eq + Ord + PartialEq + PartialOrd> { /* private fields */ }
Expand description

A structure that represents an interval sequence (a sequence of multiple Intervals).

Implementations§

Source§

impl<T: Debug + Display + Clone + Hash + Eq + Ord + PartialEq + PartialOrd> IntervalSeq<T>

Source

pub fn append(&mut self, value: &Interval<T>)

Add an interval element to this interval sequence.

  • value: an interval
Source

pub fn is_empty(&self) -> bool

Return whether the interval sequence are empty.

return: true if the interval sequence are empty

Source

pub fn empty() -> Self

Generate empty interval sequence.

  • return: IntervalSeq
Source

pub fn new(values: impl IntoIterator<Item = Interval<T>>) -> Self

Source

pub fn extent(&self) -> Interval<T>

Return the smallest interval that encompasses all the element intervals.

  • return: the smallest interval that encompasses all the elemental intervals.
  • panic: if none of the elements are present
Source

pub fn gap(&self) -> Self

In the sorted intervals, return the intervals that are between adjacent intervals as the interval sequence.

If the number of intervals is less than two, an empty sequence of intervals is returned. If the intervals overlap or touch each other, the intervals are not included in the result element. If all the intervals overlap, an empty interval sequence is returned.

  • return: gap interval sequence
Source

pub fn intersections(&self) -> Self

Return the sorted intervals where adjacent intervals overlap each other as an interval sequence.

If the number of intervals is less than two, an empty sequence of intervals is returned. If the intervals do not overlap or are tangent to each other, the intervals are not included in the result element. If all the intervals do not overlap, an empty interval sequence is returned.

  • return: common interval sequence
Source

pub fn iter(&mut self) -> impl Iterator<Item = &Interval<T>>

Gets an iterator of this interval sequence.

Source

pub fn into_iter(self) -> impl IntoIterator<Item = Interval<T>>

Gets an into iterator of this interval sequence.

Source

pub fn len(&self) -> usize

Gets the len of this interval sequence.

Source

pub fn get(&self, idx: usize) -> Option<&Interval<T>>

Gets the interval in this interval sequence by index

Auto Trait Implementations§

§

impl<T> Freeze for IntervalSeq<T>

§

impl<T> RefUnwindSafe for IntervalSeq<T>
where T: RefUnwindSafe,

§

impl<T> Send for IntervalSeq<T>
where T: Send,

§

impl<T> Sync for IntervalSeq<T>
where T: Sync,

§

impl<T> Unpin for IntervalSeq<T>
where T: Unpin,

§

impl<T> UnwindSafe for IntervalSeq<T>
where T: UnwindSafe,

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.