[][src]Enum easy_ml::matrices::slices::Slice

#[non_exhaustive]
pub enum Slice {
    All(),
    None(),
    Single(usize),
    Range(Range<usize>),
    Not(Box<Slice>),
    And(Box<Slice>, Box<Slice>),
    Or(Box<Slice>, Box<Slice>),
}

A slice defines across one dimension what values are accepted, it can act like a filter. Slices can also be constructed via boolean logic operations in the same way as in predicate logic expressions.

Variants (Non-exhaustive)

Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
All()

A slice that accepts all indexes

None()

A slice that accepts no indexes

Single(usize)

A slice that accepts only the provided index

Range(Range<usize>)

A slice that accepts only indexes within the range

Not(Box<Slice>)

A slice which rejects all indexes accepted by the argument, and accepts all indexes rejected by the argument.

And(Box<Slice>, Box<Slice>)

A slice which accepts only indexes accepted by both arguments, and rejects all others.

Or(Box<Slice>, Box<Slice>)

A slice which accepts indexes accepted by either arguments, and rejects only indexes accepted by neither. This is an inclusive or.

You could construct an exclusive or by using combinations of AND, OR and NOT as (a AND (NOT b)) OR ((NOT a) AND b) = a XOR b.

Methods

impl Slice[src]

pub fn accepts(&self, index: usize) -> bool[src]

Checks if this slice accepts some index.

pub fn not(self) -> Slice[src]

Returns the negation of this slice

pub fn and(self, other: Slice) -> Slice[src]

Returns the and of this slice and the other one

pub fn or(self, other: Slice) -> Slice[src]

Returns the or of this slice and the other one

Auto Trait Implementations

impl RefUnwindSafe for Slice

impl Send for Slice

impl Sync for Slice

impl Unpin for Slice

impl UnwindSafe for Slice

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.