[−][src]Struct math::set::contiguous_integer_set::ContiguousIntegerSet
Represents the set of integers in [start, end]
.
Ord
is automatically derived so that comparison is done lexicographically
with start
first and end
second.
Implementations
impl<E: Integer + Copy> ContiguousIntegerSet<E>
[src]
pub fn new(start: E, end: E) -> Self
[src]
Creates an integer set [start, end]
, where the end
is inclusive.
pub fn get_start_and_end(&self) -> (E, E)
[src]
pub fn is_subset_of(&self, other: &ContiguousIntegerSet<E>) -> bool
[src]
pub fn slice<'a, I: Slicing<&'a ContiguousIntegerSet<E>, Option<ContiguousIntegerSet<E>>>>(
&'a self,
slicer: I
) -> Option<ContiguousIntegerSet<E>>
[src]
&'a self,
slicer: I
) -> Option<ContiguousIntegerSet<E>>
Trait Implementations
impl<E: Clone + Integer + Copy> Clone for ContiguousIntegerSet<E>
[src]
fn clone(&self) -> ContiguousIntegerSet<E>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<E: Integer + Copy> Coalesce<ContiguousIntegerSet<E>> for ContiguousIntegerSet<E>
[src]
returns an interval if only if the two intervals can be merged into a single non-empty interval. An empty interval can be merged with any other non-empty interval
fn coalesce_with(&self, other: &Self) -> Option<Self>
[src]
impl<E: Integer + Copy> Coalesce<E> for ContiguousIntegerSet<E>
[src]
fn coalesce_with(&self, other: &E) -> Option<Self>
[src]
impl<E> CoalesceIntervals<ContiguousIntegerSet<E>, E> for OrderedIntegerSet<E> where
E: Integer + Copy + ToPrimitive,
[src]
E: Integer + Copy + ToPrimitive,
fn to_coalesced_intervals(&self) -> Vec<ContiguousIntegerSet<E>>
[src]
fn coalesce_intervals_inplace(&mut self)
[src]
fn into_coalesced(self) -> Self
[src]
impl<'a, V, B: Integer + Copy + ToPrimitive> CommonRefinementZip<B, (&'a ContiguousIntegerSet<B>, &'a V), ContiguousIntegerSet<B>, V> for Iter<'a, IntInterval<B>, V> where
B: 'a,
V: 'a + Clone,
[src]
B: 'a,
V: 'a + Clone,
Example
use analytic::{ interval::{traits::Interval, IntInterval}, iter::CommonRefinementZip, }; use std::collections::BTreeMap; let m1: BTreeMap<IntInterval<usize>, i32> = vec![(IntInterval::new(0, 5), 5), (IntInterval::new(8, 10), 2)] .into_iter() .collect(); let m2: BTreeMap<IntInterval<usize>, i32> = vec![(IntInterval::new(2, 4), 8), (IntInterval::new(12, 13), 9)] .into_iter() .collect(); let mut iter = m1.iter().common_refinement_zip(m2.iter()); assert_eq!( Some((IntInterval::new(0, 1), vec![Some(5), None])), iter.next() ); assert_eq!( Some((IntInterval::new(2, 4), vec![Some(5), Some(8)])), iter.next() ); assert_eq!( Some((IntInterval::new(5, 5), vec![Some(5), None])), iter.next() ); assert_eq!( Some((IntInterval::new(8, 10), vec![Some(2), None])), iter.next() ); assert_eq!( Some((IntInterval::new(12, 13), vec![None, Some(9)])), iter.next() ); assert_eq!(None, iter.next());
fn get_interval_value_extractor(
&self
) -> Box<dyn Fn(Self::Item) -> (IntInterval<B>, V)>
[src]
&self
) -> Box<dyn Fn(Self::Item) -> (IntInterval<B>, V)>
fn common_refinement_zip(
self,
other: Self
) -> CommonRefinementZipped<B, Self, X, P, V>ⓘ
[src]
self,
other: Self
) -> CommonRefinementZipped<B, Self, X, P, V>ⓘ
impl<'a, V, B: Integer + Copy + ToPrimitive> CommonRefinementZip<B, (ContiguousIntegerSet<B>, V), ContiguousIntegerSet<B>, V> for IntoIter<IntInterval<B>, V> where
B: 'a,
[src]
B: 'a,
fn get_interval_value_extractor(
&self
) -> Box<dyn Fn(Self::Item) -> (IntInterval<B>, V)>
[src]
&self
) -> Box<dyn Fn(Self::Item) -> (IntInterval<B>, V)>
fn common_refinement_zip(
self,
other: Self
) -> CommonRefinementZipped<B, Self, X, P, V>ⓘ
[src]
self,
other: Self
) -> CommonRefinementZipped<B, Self, X, P, V>ⓘ
impl<I, V> CommonRefinementZip<i64, (ContiguousIntegerSet<i64>, V), ContiguousIntegerSet<i64>, V> for BinnedIntervalIter<I, V> where
I: Iterator,
V: Copy + Num + FromPrimitive + PartialOrd,
[src]
I: Iterator,
V: Copy + Num + FromPrimitive + PartialOrd,
fn get_interval_value_extractor(
&self
) -> Box<dyn Fn(Self::Item) -> (I64Interval, V)>
[src]
&self
) -> Box<dyn Fn(Self::Item) -> (I64Interval, V)>
fn common_refinement_zip(
self,
other: Self
) -> CommonRefinementZipped<B, Self, X, P, V>ⓘ
[src]
self,
other: Self
) -> CommonRefinementZipped<B, Self, X, P, V>ⓘ
impl<E: Copy + Integer> Copy for ContiguousIntegerSet<E>
[src]
impl<E: Debug + Integer + Copy> Debug for ContiguousIntegerSet<E>
[src]
impl<E: Eq + Integer + Copy> Eq for ContiguousIntegerSet<E>
[src]
impl<E: Integer + Copy + ToPrimitive> Finite for ContiguousIntegerSet<E>
[src]
impl<E: Integer + Copy> From<ContiguousIntegerSet<E>> for ContiguousIntegerSetIter<E>
[src]
fn from(
contiguous_integer_set: ContiguousIntegerSet<E>
) -> ContiguousIntegerSetIter<E>ⓘImportant traits for ContiguousIntegerSetIter<E>
impl<E: Integer + Copy> Iterator for ContiguousIntegerSetIter<E> type Item = E;
[src]
contiguous_integer_set: ContiguousIntegerSet<E>
) -> ContiguousIntegerSetIter<E>ⓘ
Important traits for ContiguousIntegerSetIter<E>
impl<E: Integer + Copy> Iterator for ContiguousIntegerSetIter<E> type Item = E;
impl<E: Hash + Integer + Copy> Hash for ContiguousIntegerSet<E>
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<E: Integer + Copy, '_> Intersect<&'_ ContiguousIntegerSet<E>, Option<ContiguousIntegerSet<E>>> for ContiguousIntegerSet<E>
[src]
fn intersect(
&self,
other: &ContiguousIntegerSet<E>
) -> Option<ContiguousIntegerSet<E>>
[src]
&self,
other: &ContiguousIntegerSet<E>
) -> Option<ContiguousIntegerSet<E>>
fn has_non_empty_intersection_with(
&self,
other: &ContiguousIntegerSet<E>
) -> bool
[src]
&self,
other: &ContiguousIntegerSet<E>
) -> bool
impl<E, '_> Intersect<&'_ ContiguousIntegerSet<E>, OrderedIntegerSet<E>> for OrderedIntegerSet<E> where
E: Integer + Copy + ToPrimitive,
[src]
E: Integer + Copy + ToPrimitive,
fn intersect(&self, other: &ContiguousIntegerSet<E>) -> OrderedIntegerSet<E>
[src]
fn has_non_empty_intersection_with(
&self,
other: &ContiguousIntegerSet<E>
) -> bool
[src]
&self,
other: &ContiguousIntegerSet<E>
) -> bool
impl<E: Integer + Copy + ToPrimitive, '_> Intersect<&'_ OrderedIntegerSet<E>, OrderedIntegerSet<E>> for ContiguousIntegerSet<E>
[src]
fn intersect(&self, other: &OrderedIntegerSet<E>) -> OrderedIntegerSet<E>
[src]
fn has_non_empty_intersection_with(&self, other: &OrderedIntegerSet<E>) -> bool
[src]
impl<E: Integer + Copy> Interval<E> for ContiguousIntegerSet<E>
[src]
fn from_boundaries(start: E, end_inclusive: E) -> Self
[src]
fn get_start(&self) -> E
[src]
fn get_end(&self) -> E
[src]
fn length(&self) -> E
[src]
impl<E: Ord + Integer + Copy> Ord for ContiguousIntegerSet<E>
[src]
fn cmp(&self, other: &ContiguousIntegerSet<E>) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[src]
impl<E: PartialEq + Integer + Copy> PartialEq<ContiguousIntegerSet<E>> for ContiguousIntegerSet<E>
[src]
fn eq(&self, other: &ContiguousIntegerSet<E>) -> bool
[src]
fn ne(&self, other: &ContiguousIntegerSet<E>) -> bool
[src]
impl<E: PartialOrd + Integer + Copy> PartialOrd<ContiguousIntegerSet<E>> for ContiguousIntegerSet<E>
[src]
fn partial_cmp(&self, other: &ContiguousIntegerSet<E>) -> Option<Ordering>
[src]
fn lt(&self, other: &ContiguousIntegerSet<E>) -> bool
[src]
fn le(&self, other: &ContiguousIntegerSet<E>) -> bool
[src]
fn gt(&self, other: &ContiguousIntegerSet<E>) -> bool
[src]
fn ge(&self, other: &ContiguousIntegerSet<E>) -> bool
[src]
impl<E> Refineable<Vec<ContiguousIntegerSet<E>>> for ContiguousIntegerSet<E> where
E: Integer + Copy + ToPrimitive,
[src]
E: Integer + Copy + ToPrimitive,
fn get_common_refinement(
&self,
other: &ContiguousIntegerSet<E>
) -> IntegerIntervalRefinement<E>
[src]
&self,
other: &ContiguousIntegerSet<E>
) -> IntegerIntervalRefinement<E>
impl<E, '_> Sample<'_, ContiguousIntegerSetIter<E>, E, OrderedIntegerSet<E>> for ContiguousIntegerSet<E> where
E: Integer + Copy + ToPrimitive,
[src]
E: Integer + Copy + ToPrimitive,
fn sample_subset_without_replacement<'s: 'a>(
&'s self,
size: usize
) -> Result<O, String>
[src]
&'s self,
size: usize
) -> Result<O, String>
fn sample_with_replacement<'s: 'a>(&'s self, size: usize) -> Result<O, String>
[src]
impl<E: Integer + Copy> Set<E> for ContiguousIntegerSet<E>
[src]
impl<E, '_> Slicing<&'_ ContiguousIntegerSet<E>, Option<ContiguousIntegerSet<E>>> for Range<usize> where
E: Integer + Copy + FromPrimitive + ToPrimitive,
[src]
E: Integer + Copy + FromPrimitive + ToPrimitive,
fn slice(
self,
input: &ContiguousIntegerSet<E>
) -> Option<ContiguousIntegerSet<E>>
[src]
self,
input: &ContiguousIntegerSet<E>
) -> Option<ContiguousIntegerSet<E>>
impl<E: Integer + Copy> StructuralEq for ContiguousIntegerSet<E>
[src]
impl<E: Integer + Copy> StructuralPartialEq for ContiguousIntegerSet<E>
[src]
impl<E: Integer + Copy + ToPrimitive, '_> Sub<&'_ ContiguousIntegerSet<E>> for ContiguousIntegerSet<E>
[src]
type Output = OrderedIntegerSet<E>
The resulting type after applying the -
operator.
fn sub(self, rhs: &ContiguousIntegerSet<E>) -> Self::Output
[src]
impl<E: Integer + Copy + ToPrimitive, '_> Sub<&'_ ContiguousIntegerSet<E>> for OrderedIntegerSet<E>
[src]
type Output = Self
The resulting type after applying the -
operator.
fn sub(self, rhs: &ContiguousIntegerSet<E>) -> Self::Output
[src]
impl<E: Integer + Copy + ToPrimitive, '_> Sub<&'_ OrderedIntegerSet<E>> for ContiguousIntegerSet<E>
[src]
type Output = OrderedIntegerSet<E>
The resulting type after applying the -
operator.
fn sub(self, rhs: &OrderedIntegerSet<E>) -> Self::Output
[src]
impl<E: Integer + Copy + ToPrimitive> Sub<ContiguousIntegerSet<E>> for ContiguousIntegerSet<E>
[src]
type Output = OrderedIntegerSet<E>
The resulting type after applying the -
operator.
fn sub(self, rhs: ContiguousIntegerSet<E>) -> Self::Output
[src]
impl<E: Integer + Copy + ToPrimitive> Sub<ContiguousIntegerSet<E>> for OrderedIntegerSet<E>
[src]
type Output = Self
The resulting type after applying the -
operator.
fn sub(self, rhs: ContiguousIntegerSet<E>) -> Self::Output
[src]
impl<E: Integer + Copy + ToPrimitive> Sub<OrderedIntegerSet<E>> for ContiguousIntegerSet<E>
[src]
type Output = OrderedIntegerSet<E>
The resulting type after applying the -
operator.
fn sub(self, rhs: OrderedIntegerSet<E>) -> Self::Output
[src]
impl<E: Integer + Copy + ToPrimitive, '_> SubAssign<&'_ ContiguousIntegerSet<E>> for OrderedIntegerSet<E>
[src]
fn sub_assign(&mut self, rhs: &ContiguousIntegerSet<E>)
[src]
impl<E: Integer + Copy + ToPrimitive> SubAssign<ContiguousIntegerSet<E>> for OrderedIntegerSet<E>
[src]
fn sub_assign(&mut self, rhs: ContiguousIntegerSet<E>)
[src]
impl<E: Integer + Copy + Hash> SubsetIndexable<ContiguousIntegerSet<E>, ContiguousIntegerSet<E>> for OrderedIntervalPartitions<E>
[src]
fn get_set_containing(
&self,
subset: &ContiguousIntegerSet<E>
) -> Option<ContiguousIntegerSet<E>>
[src]
&self,
subset: &ContiguousIntegerSet<E>
) -> Option<ContiguousIntegerSet<E>>
impl<T> SubsetIndexable<ContiguousIntegerSet<i64>, ContiguousIntegerSet<i64>> for IntegerIntervalMap<T>
[src]
fn get_set_containing(&self, subset: &I64Interval) -> Option<I64Interval>
[src]
impl<E: Integer + Copy, '_> ToIterator<'_, ContiguousIntegerSetIter<E>, E> for ContiguousIntegerSet<E>
[src]
fn to_iter(&self) -> ContiguousIntegerSetIter<E>ⓘImportant traits for ContiguousIntegerSetIter<E>
impl<E: Integer + Copy> Iterator for ContiguousIntegerSetIter<E> type Item = E;
[src]
Important traits for ContiguousIntegerSetIter<E>
impl<E: Integer + Copy> Iterator for ContiguousIntegerSetIter<E> type Item = E;
Auto Trait Implementations
impl<E> RefUnwindSafe for ContiguousIntegerSet<E> where
E: RefUnwindSafe,
E: RefUnwindSafe,
impl<E> Send for ContiguousIntegerSet<E> where
E: Send,
E: Send,
impl<E> Sync for ContiguousIntegerSet<E> where
E: Sync,
E: Sync,
impl<E> Unpin for ContiguousIntegerSet<E> where
E: Unpin,
E: Unpin,
impl<E> UnwindSafe for ContiguousIntegerSet<E> where
E: UnwindSafe,
E: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,