nyx_space::linalg

Trait Dim

source
pub unsafe trait Dim:
    Any
    + Debug
    + Copy
    + PartialEq
    + Send
    + Sync {
    // Required methods
    fn try_to_usize() -> Option<usize>;
    fn value(&self) -> usize;
    fn from_usize(dim: usize) -> Self;

    // Provided method
    fn is<D>() -> bool
       where D: Dim { ... }
}
Expand description

Trait implemented by any type that can be used as a dimension. This includes type-level integers and Dyn (for dimensions not known at compile-time).

§Safety

Hoists integers to the type level, including binary operations.

Required Methods§

source

fn try_to_usize() -> Option<usize>

Gets the compile-time value of Self. Returns None if it is not known, i.e., if Self = Dyn.

source

fn value(&self) -> usize

Gets the run-time value of self. For type-level integers, this is the same as Self::try_to_usize().unwrap().

source

fn from_usize(dim: usize) -> Self

Builds an instance of Self from a run-time value. Panics if Self is a type-level integer and dim != Self::try_to_usize().unwrap().

Provided Methods§

source

fn is<D>() -> bool
where D: Dim,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Dim for Dyn

source§

impl<const T: usize> Dim for Const<T>