Struct Sorted

Source
pub struct Sorted<C>(/* private fields */);
Expand description

Struct to represent a sorted collection.

Implementations§

Source§

impl<C> Sorted<C>
where C: Chain, C::Output: PartialOrd,

Source

pub fn new(col: C) -> Result<Self, NotSorted>

Returns Some(Sorted) if collection is sorted, otherwise returns NotSorted Error.

Source§

impl<C> Sorted<C>

Source

pub const fn new_unchecked(col: C) -> Self

Creates a sorted collection without checking if it is sorted.

As unsorted collection will not create UB but will probably panic at some point, such this function is still safe, even if an unsorted collection is given.

Trait Implementations§

Source§

impl<C> Chain for Sorted<C>
where C: Chain,

Source§

fn len(&self) -> usize

Returns the minimum amount of elements the signal can create. Read more
Source§

fn first(&self) -> Option<Self::Output>

Returns the first element of the signal, or None if it is empty.
Source§

fn last(&self) -> Option<Self::Output>

Returns the last element of the signal, or None if it is empty.
Source§

fn is_empty(&self) -> bool

Returns true if the signal does not generate any elements.
Source§

fn into_iter(self) -> IntoIter<Self>
where Self: Sized,

Convert signal to an iterator which steps through all generatable values.
Source§

fn iter(&self) -> IntoIter<&Self>

Create iterator which steps through all generatable values.
Source§

fn repeat(self) -> Repeat<Self>
where Self: Sized,

Transform signal to one which repeats its elements.
Source§

impl<C: Clone> Clone for Sorted<C>

Source§

fn clone(&self) -> Sorted<C>

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<C: Debug> Debug for Sorted<C>

Source§

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

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

impl<C, Idx> Index<Idx> for Sorted<C>
where C: Index<Idx>,

Source§

type Output = <C as Index<Idx>>::Output

The returned type after indexing.
Source§

fn index(&self, index: Idx) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
Source§

impl<C: PartialEq> PartialEq for Sorted<C>

Source§

fn eq(&self, other: &Sorted<C>) -> 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<C> Signal<usize> for Sorted<C>
where C: Signal<usize>,

Source§

type Output = <C as Signal<usize>>::Output

The element outputted
Source§

fn eval(&self, input: usize) -> Self::Output

Method to generate the element at the given input
Source§

fn extract<I, J>(self, iterator: I) -> Extract<Self, J>
where Self: Sized, I: IntoIterator<IntoIter = J>, J: Iterator<Item = Input>,

Helper function if one wants to extract values from the interpolation. Read more
Source§

fn stack<G>(self, signal: G) -> Stack<Self, G>
where Self: Sized,

Stack two signals together Read more
Source§

fn composite<G>(self, signal: G) -> Composite<Self, G>
where Self: Sized,

Takes two signals and creates a new signal pipelining both signals. Read more
Source§

fn by_ref(&self) -> &Self

Get a reference of the signal. Read more
Source§

fn sample<I, J>(&self, iterator: I) -> Extract<&Self, J>
where Self: Sized, I: IntoIterator<IntoIter = J>, J: Iterator<Item = Input>,

Helper function if one wants to sample values from the interpolation. Read more
Source§

impl<C: Chain> SortedChain for Sorted<C>

Source§

fn strict_upper_bound_clamped( &self, element: Self::Output, min: usize, max: usize, ) -> usize
where Self::Output: PartialOrd + Copy,

Returns the smallest index between min and max for which the corresponding element is bigger then the input. If all elements are smaller, this function will return the given maximum. Read more
Source§

fn strict_upper_bound(&self, element: Self::Output) -> usize
where Self::Output: PartialOrd + Copy,

Returns the smallest index for which the corresponding element is bigger then the input. If all elements are bigger, this function will return self.len(). Read more
Source§

fn upper_border(&self, element: Self::Output) -> (usize, usize, Self::Output)
where Self::Output: PartialOrd + Sub<Output = Self::Output> + Div<Output = Self::Output> + Zero + Copy + Debug,

Find the values inside the collection for which the given element is inbetween and a linear factor at how close it is to which value. Read more
Source§

fn linear_factor_unchecked( &self, min_index: usize, max_index: usize, element: Self::Output, ) -> Self::Output
where Self::Output: Sub<Output = Self::Output> + Div<Output = Self::Output> + Copy,

Calculate the factor of element inbetween min and max. Read more
Source§

fn linear_factor( &self, min_index: usize, max_index: usize, element: Self::Output, ) -> Self::Output
where Self::Output: Sub<Output = Self::Output> + Div<Output = Self::Output> + Zero + Copy,

Calculate the factor of element inbetween min and max. Read more
Source§

impl<C: Copy> Copy for Sorted<C>

Source§

impl<C> StructuralPartialEq for Sorted<C>

Auto Trait Implementations§

§

impl<C> Freeze for Sorted<C>
where C: Freeze,

§

impl<C> RefUnwindSafe for Sorted<C>
where C: RefUnwindSafe,

§

impl<C> Send for Sorted<C>
where C: Send,

§

impl<C> Sync for Sorted<C>
where C: Sync,

§

impl<C> Unpin for Sorted<C>
where C: Unpin,

§

impl<C> UnwindSafe for Sorted<C>
where C: 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> 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.