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: Dim>() -> bool { ... }
}
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§
sourcefn try_to_usize() -> Option<usize>
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
.
sourcefn value(&self) -> usize
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()
.
sourcefn from_usize(dim: usize) -> Self
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§
Object Safety§
This trait is not object safe.