pub struct Dynamic { /* private fields */ }
Expand description
Dim of dynamically-sized algebraic entities.
Implementations§
Trait Implementations§
source§impl<T: Scalar, C: Dim> Allocator<T, Dynamic, C> for DefaultAllocator
impl<T: Scalar, C: Dim> Allocator<T, Dynamic, C> for DefaultAllocator
§type Buffer = VecStorage<T, Dynamic, C>
type Buffer = VecStorage<T, Dynamic, C>
The type of buffer this allocator can instanciate.
source§unsafe fn allocate_uninitialized(
nrows: Dynamic,
ncols: C
) -> MaybeUninit<Self::Buffer>
unsafe fn allocate_uninitialized( nrows: Dynamic, ncols: C ) -> MaybeUninit<Self::Buffer>
Allocates a buffer with the given number of rows and columns without initializing its content.
source§fn allocate_from_iterator<I: IntoIterator<Item = T>>(
nrows: Dynamic,
ncols: C,
iter: I
) -> Self::Buffer
fn allocate_from_iterator<I: IntoIterator<Item = T>>( nrows: Dynamic, ncols: C, iter: I ) -> Self::Buffer
Allocates a buffer initialized with the content of the given iterator.
source§impl<T: Scalar, R: DimName> Allocator<T, R, Dynamic> for DefaultAllocator
impl<T: Scalar, R: DimName> Allocator<T, R, Dynamic> for DefaultAllocator
§type Buffer = VecStorage<T, R, Dynamic>
type Buffer = VecStorage<T, R, Dynamic>
The type of buffer this allocator can instanciate.
source§unsafe fn allocate_uninitialized(
nrows: R,
ncols: Dynamic
) -> MaybeUninit<Self::Buffer>
unsafe fn allocate_uninitialized( nrows: R, ncols: Dynamic ) -> MaybeUninit<Self::Buffer>
Allocates a buffer with the given number of rows and columns without initializing its content.
source§fn allocate_from_iterator<I: IntoIterator<Item = T>>(
nrows: R,
ncols: Dynamic,
iter: I
) -> Self::Buffer
fn allocate_from_iterator<I: IntoIterator<Item = T>>( nrows: R, ncols: Dynamic, iter: I ) -> Self::Buffer
Allocates a buffer initialized with the content of the given iterator.
source§impl Dim for Dynamic
impl Dim for Dynamic
source§fn 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 = Dynamic
.source§fn 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()
.source§fn 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()
.fn is<D: Dim>() -> bool
source§impl<D: DimName> DimEq<D, Dynamic> for ShapeConstraint
impl<D: DimName> DimEq<D, Dynamic> for ShapeConstraint
§type Representative = D
type Representative = D
This is either equal to
D1
or D2
, always choosing the one (if any) which is a type-level
constant.source§impl<D: DimName> DimEq<Dynamic, D> for ShapeConstraint
impl<D: DimName> DimEq<Dynamic, D> for ShapeConstraint
§type Representative = D
type Representative = D
This is either equal to
D1
or D2
, always choosing the one (if any) which is a type-level
constant.source§impl PartialEq<Dynamic> for Dynamic
impl PartialEq<Dynamic> for Dynamic
source§impl<T: Scalar, CTo, const RFROM: usize, const CFROM: usize> Reallocator<T, Const<RFROM>, Const<CFROM>, Dynamic, CTo> for DefaultAllocatorwhere
CTo: Dim,
impl<T: Scalar, CTo, const RFROM: usize, const CFROM: usize> Reallocator<T, Const<RFROM>, Const<CFROM>, Dynamic, CTo> for DefaultAllocatorwhere CTo: Dim,
source§unsafe fn reallocate_copy(
rto: Dynamic,
cto: CTo,
buf: ArrayStorage<T, RFROM, CFROM>
) -> VecStorage<T, Dynamic, CTo>
unsafe fn reallocate_copy( rto: Dynamic, cto: CTo, buf: ArrayStorage<T, RFROM, CFROM> ) -> VecStorage<T, Dynamic, CTo>
Reallocates a buffer of shape
(RTo, CTo)
, possibly reusing a previously allocated buffer
buf
. Data stored by buf
are linearly copied to the output: Read moresource§impl<T: Scalar, RTo, const RFROM: usize, const CFROM: usize> Reallocator<T, Const<RFROM>, Const<CFROM>, RTo, Dynamic> for DefaultAllocatorwhere
RTo: DimName,
impl<T: Scalar, RTo, const RFROM: usize, const CFROM: usize> Reallocator<T, Const<RFROM>, Const<CFROM>, RTo, Dynamic> for DefaultAllocatorwhere RTo: DimName,
source§unsafe fn reallocate_copy(
rto: RTo,
cto: Dynamic,
buf: ArrayStorage<T, RFROM, CFROM>
) -> VecStorage<T, RTo, Dynamic>
unsafe fn reallocate_copy( rto: RTo, cto: Dynamic, buf: ArrayStorage<T, RFROM, CFROM> ) -> VecStorage<T, RTo, Dynamic>
Reallocates a buffer of shape
(RTo, CTo)
, possibly reusing a previously allocated buffer
buf
. Data stored by buf
are linearly copied to the output: Read moresource§impl<T: Scalar, CFrom: Dim, CTo: Dim> Reallocator<T, Dynamic, CFrom, Dynamic, CTo> for DefaultAllocator
impl<T: Scalar, CFrom: Dim, CTo: Dim> Reallocator<T, Dynamic, CFrom, Dynamic, CTo> for DefaultAllocator
source§unsafe fn reallocate_copy(
rto: Dynamic,
cto: CTo,
buf: VecStorage<T, Dynamic, CFrom>
) -> VecStorage<T, Dynamic, CTo>
unsafe fn reallocate_copy( rto: Dynamic, cto: CTo, buf: VecStorage<T, Dynamic, CFrom> ) -> VecStorage<T, Dynamic, CTo>
Reallocates a buffer of shape
(RTo, CTo)
, possibly reusing a previously allocated buffer
buf
. Data stored by buf
are linearly copied to the output: Read moresource§impl<T: Scalar, CFrom: Dim, RTo: DimName> Reallocator<T, Dynamic, CFrom, RTo, Dynamic> for DefaultAllocator
impl<T: Scalar, CFrom: Dim, RTo: DimName> Reallocator<T, Dynamic, CFrom, RTo, Dynamic> for DefaultAllocator
source§unsafe fn reallocate_copy(
rto: RTo,
cto: Dynamic,
buf: VecStorage<T, Dynamic, CFrom>
) -> VecStorage<T, RTo, Dynamic>
unsafe fn reallocate_copy( rto: RTo, cto: Dynamic, buf: VecStorage<T, Dynamic, CFrom> ) -> VecStorage<T, RTo, Dynamic>
Reallocates a buffer of shape
(RTo, CTo)
, possibly reusing a previously allocated buffer
buf
. Data stored by buf
are linearly copied to the output: Read moresource§impl<T: Scalar, RFrom: DimName, CTo: Dim> Reallocator<T, RFrom, Dynamic, Dynamic, CTo> for DefaultAllocator
impl<T: Scalar, RFrom: DimName, CTo: Dim> Reallocator<T, RFrom, Dynamic, Dynamic, CTo> for DefaultAllocator
source§unsafe fn reallocate_copy(
rto: Dynamic,
cto: CTo,
buf: VecStorage<T, RFrom, Dynamic>
) -> VecStorage<T, Dynamic, CTo>
unsafe fn reallocate_copy( rto: Dynamic, cto: CTo, buf: VecStorage<T, RFrom, Dynamic> ) -> VecStorage<T, Dynamic, CTo>
Reallocates a buffer of shape
(RTo, CTo)
, possibly reusing a previously allocated buffer
buf
. Data stored by buf
are linearly copied to the output: Read moresource§impl<T: Scalar, RFrom: DimName, RTo: DimName> Reallocator<T, RFrom, Dynamic, RTo, Dynamic> for DefaultAllocator
impl<T: Scalar, RFrom: DimName, RTo: DimName> Reallocator<T, RFrom, Dynamic, RTo, Dynamic> for DefaultAllocator
source§unsafe fn reallocate_copy(
rto: RTo,
cto: Dynamic,
buf: VecStorage<T, RFrom, Dynamic>
) -> VecStorage<T, RTo, Dynamic>
unsafe fn reallocate_copy( rto: RTo, cto: Dynamic, buf: VecStorage<T, RFrom, Dynamic> ) -> VecStorage<T, RTo, Dynamic>
Reallocates a buffer of shape
(RTo, CTo)
, possibly reusing a previously allocated buffer
buf
. Data stored by buf
are linearly copied to the output: Read moresource§impl<T, C1, C2> ReshapableStorage<T, Dynamic, C1, Dynamic, C2> for VecStorage<T, Dynamic, C1>where
T: Scalar,
C1: Dim,
C2: Dim,
impl<T, C1, C2> ReshapableStorage<T, Dynamic, C1, Dynamic, C2> for VecStorage<T, Dynamic, C1>where T: Scalar, C1: Dim, C2: Dim,
§type Output = VecStorage<T, Dynamic, C2>
type Output = VecStorage<T, Dynamic, C2>
The reshaped storage type.
source§fn reshape_generic(self, nrows: Dynamic, ncols: C2) -> Self::Output
fn reshape_generic(self, nrows: Dynamic, ncols: C2) -> Self::Output
Reshapes the storage into the output storage type.
source§impl<T, C1, R2> ReshapableStorage<T, Dynamic, C1, R2, Dynamic> for VecStorage<T, Dynamic, C1>where
T: Scalar,
C1: Dim,
R2: DimName,
impl<T, C1, R2> ReshapableStorage<T, Dynamic, C1, R2, Dynamic> for VecStorage<T, Dynamic, C1>where T: Scalar, C1: Dim, R2: DimName,
§type Output = VecStorage<T, R2, Dynamic>
type Output = VecStorage<T, R2, Dynamic>
The reshaped storage type.
source§fn reshape_generic(self, nrows: R2, ncols: Dynamic) -> Self::Output
fn reshape_generic(self, nrows: R2, ncols: Dynamic) -> Self::Output
Reshapes the storage into the output storage type.
source§impl<T, R1, C2> ReshapableStorage<T, R1, Dynamic, Dynamic, C2> for VecStorage<T, R1, Dynamic>where
T: Scalar,
R1: DimName,
C2: Dim,
impl<T, R1, C2> ReshapableStorage<T, R1, Dynamic, Dynamic, C2> for VecStorage<T, R1, Dynamic>where T: Scalar, R1: DimName, C2: Dim,
§type Output = VecStorage<T, Dynamic, C2>
type Output = VecStorage<T, Dynamic, C2>
The reshaped storage type.
source§fn reshape_generic(self, nrows: Dynamic, ncols: C2) -> Self::Output
fn reshape_generic(self, nrows: Dynamic, ncols: C2) -> Self::Output
Reshapes the storage into the output storage type.
source§impl<T, R1, R2> ReshapableStorage<T, R1, Dynamic, R2, Dynamic> for VecStorage<T, R1, Dynamic>where
T: Scalar,
R1: DimName,
R2: DimName,
impl<T, R1, R2> ReshapableStorage<T, R1, Dynamic, R2, Dynamic> for VecStorage<T, R1, Dynamic>where T: Scalar, R1: DimName, R2: DimName,
§type Output = VecStorage<T, R2, Dynamic>
type Output = VecStorage<T, R2, Dynamic>
The reshaped storage type.
source§fn reshape_generic(self, nrows: R2, ncols: Dynamic) -> Self::Output
fn reshape_generic(self, nrows: R2, ncols: Dynamic) -> Self::Output
Reshapes the storage into the output storage type.
source§impl<D: DimName> SameDimension<D, Dynamic> for ShapeConstraint
impl<D: DimName> SameDimension<D, Dynamic> for ShapeConstraint
§type Representative = D
type Representative = D
This is either equal to
D1
or D2
, always choosing the one (if any) which is a type-level
constant.source§impl<D: DimName> SameDimension<Dynamic, D> for ShapeConstraint
impl<D: DimName> SameDimension<Dynamic, D> for ShapeConstraint
§type Representative = D
type Representative = D
This is either equal to
D1
or D2
, always choosing the one (if any) which is a type-level
constant.source§impl<D: DimName> SameNumberOfColumns<D, Dynamic> for ShapeConstraint
impl<D: DimName> SameNumberOfColumns<D, Dynamic> for ShapeConstraint
§type Representative = D
type Representative = D
This is either equal to
D1
or D2
, always choosing the one (if any) which is a type-level
constant.source§impl<D: DimName> SameNumberOfColumns<Dynamic, D> for ShapeConstraint
impl<D: DimName> SameNumberOfColumns<Dynamic, D> for ShapeConstraint
§type Representative = D
type Representative = D
This is either equal to
D1
or D2
, always choosing the one (if any) which is a type-level
constant.source§impl<D: DimName> SameNumberOfRows<D, Dynamic> for ShapeConstraint
impl<D: DimName> SameNumberOfRows<D, Dynamic> for ShapeConstraint
§type Representative = D
type Representative = D
This is either equal to
D1
or D2
, always choosing the one (if any) which is a type-level
constant.source§impl<D: DimName> SameNumberOfRows<Dynamic, D> for ShapeConstraint
impl<D: DimName> SameNumberOfRows<Dynamic, D> for ShapeConstraint
§type Representative = D
type Representative = D
This is either equal to
D1
or D2
, always choosing the one (if any) which is a type-level
constant.source§impl<T: Scalar, C: Dim> Storage<T, Dynamic, C> for VecStorage<T, Dynamic, C>where
DefaultAllocator: Allocator<T, Dynamic, C, Buffer = Self>,
impl<T: Scalar, C: Dim> Storage<T, Dynamic, C> for VecStorage<T, Dynamic, C>where DefaultAllocator: Allocator<T, Dynamic, C, Buffer = Self>,
source§fn shape(&self) -> (Dynamic, C)
fn shape(&self) -> (Dynamic, C)
The dimension of the matrix at run-time. Arr length of zero indicates the additive identity
element of any dimension. Must be equal to
Self::dimension()
if it is not None
.source§fn strides(&self) -> (Self::RStride, Self::CStride)
fn strides(&self) -> (Self::RStride, Self::CStride)
The spacing between consecutive row elements and consecutive column elements. Read more
source§fn is_contiguous(&self) -> bool
fn is_contiguous(&self) -> bool
Indicates whether this data buffer stores its elements contiguously.
source§fn into_owned(self) -> Owned<T, Dynamic, C>where
DefaultAllocator: Allocator<T, Dynamic, C>,
fn into_owned(self) -> Owned<T, Dynamic, C>where DefaultAllocator: Allocator<T, Dynamic, C>,
Builds a matrix data storage that does not contain any reference.
source§fn clone_owned(&self) -> Owned<T, Dynamic, C>where
DefaultAllocator: Allocator<T, Dynamic, C>,
fn clone_owned(&self) -> Owned<T, Dynamic, C>where DefaultAllocator: Allocator<T, Dynamic, C>,
Clones this data storage to one that does not contain any reference.
source§fn linear_index(&self, irow: usize, icol: usize) -> usize
fn linear_index(&self, irow: usize, icol: usize) -> usize
Compute the index corresponding to the irow-th row and icol-th column of this matrix. The
index must be such that the following holds: Read more
source§unsafe fn get_address_unchecked_linear(&self, i: usize) -> *const T
unsafe fn get_address_unchecked_linear(&self, i: usize) -> *const T
Gets the address of the i-th matrix component without performing bound-checking.
source§unsafe fn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
unsafe fn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
Gets the address of the i-th matrix component without performing bound-checking.
source§unsafe fn get_unchecked_linear(&self, i: usize) -> &T
unsafe fn get_unchecked_linear(&self, i: usize) -> &T
Retrieves a reference to the i-th element without bound-checking.
source§impl<T: Scalar, R: DimName> Storage<T, R, Dynamic> for VecStorage<T, R, Dynamic>where
DefaultAllocator: Allocator<T, R, Dynamic, Buffer = Self>,
impl<T: Scalar, R: DimName> Storage<T, R, Dynamic> for VecStorage<T, R, Dynamic>where DefaultAllocator: Allocator<T, R, Dynamic, Buffer = Self>,
source§fn shape(&self) -> (R, Dynamic)
fn shape(&self) -> (R, Dynamic)
The dimension of the matrix at run-time. Arr length of zero indicates the additive identity
element of any dimension. Must be equal to
Self::dimension()
if it is not None
.source§fn strides(&self) -> (Self::RStride, Self::CStride)
fn strides(&self) -> (Self::RStride, Self::CStride)
The spacing between consecutive row elements and consecutive column elements. Read more
source§fn is_contiguous(&self) -> bool
fn is_contiguous(&self) -> bool
Indicates whether this data buffer stores its elements contiguously.
source§fn into_owned(self) -> Owned<T, R, Dynamic>where
DefaultAllocator: Allocator<T, R, Dynamic>,
fn into_owned(self) -> Owned<T, R, Dynamic>where DefaultAllocator: Allocator<T, R, Dynamic>,
Builds a matrix data storage that does not contain any reference.
source§fn clone_owned(&self) -> Owned<T, R, Dynamic>where
DefaultAllocator: Allocator<T, R, Dynamic>,
fn clone_owned(&self) -> Owned<T, R, Dynamic>where DefaultAllocator: Allocator<T, R, Dynamic>,
Clones this data storage to one that does not contain any reference.
source§fn linear_index(&self, irow: usize, icol: usize) -> usize
fn linear_index(&self, irow: usize, icol: usize) -> usize
Compute the index corresponding to the irow-th row and icol-th column of this matrix. The
index must be such that the following holds: Read more
source§unsafe fn get_address_unchecked_linear(&self, i: usize) -> *const T
unsafe fn get_address_unchecked_linear(&self, i: usize) -> *const T
Gets the address of the i-th matrix component without performing bound-checking.
source§unsafe fn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
unsafe fn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
Gets the address of the i-th matrix component without performing bound-checking.
source§unsafe fn get_unchecked_linear(&self, i: usize) -> &T
unsafe fn get_unchecked_linear(&self, i: usize) -> &T
Retrieves a reference to the i-th element without bound-checking.
source§impl<T: Scalar, C: Dim> StorageMut<T, Dynamic, C> for VecStorage<T, Dynamic, C>where
DefaultAllocator: Allocator<T, Dynamic, C, Buffer = Self>,
impl<T: Scalar, C: Dim> StorageMut<T, Dynamic, C> for VecStorage<T, Dynamic, C>where DefaultAllocator: Allocator<T, Dynamic, C, Buffer = Self>,
source§fn as_mut_slice(&mut self) -> &mut [T]
fn as_mut_slice(&mut self) -> &mut [T]
Retrieves the mutable data buffer as a contiguous slice. Read more
source§unsafe fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
unsafe fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
Gets the mutable address of the i-th matrix component without performing bound-checking.
source§unsafe fn get_address_unchecked_mut(
&mut self,
irow: usize,
icol: usize
) -> *mut T
unsafe fn get_address_unchecked_mut( &mut self, irow: usize, icol: usize ) -> *mut T
Gets the mutable address of the i-th matrix component without performing bound-checking.
source§unsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut T
unsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut T
Retrieves a mutable reference to the i-th element without bound-checking.
source§unsafe fn get_unchecked_mut(&mut self, irow: usize, icol: usize) -> &mut T
unsafe fn get_unchecked_mut(&mut self, irow: usize, icol: usize) -> &mut T
Retrieves a mutable reference to the element at
(irow, icol)
without bound-checking.source§unsafe fn swap_unchecked_linear(&mut self, i1: usize, i2: usize)
unsafe fn swap_unchecked_linear(&mut self, i1: usize, i2: usize)
Swaps two elements using their linear index without bound-checking.
source§impl<T: Scalar, R: DimName> StorageMut<T, R, Dynamic> for VecStorage<T, R, Dynamic>where
DefaultAllocator: Allocator<T, R, Dynamic, Buffer = Self>,
impl<T: Scalar, R: DimName> StorageMut<T, R, Dynamic> for VecStorage<T, R, Dynamic>where DefaultAllocator: Allocator<T, R, Dynamic, Buffer = Self>,
source§fn as_mut_slice(&mut self) -> &mut [T]
fn as_mut_slice(&mut self) -> &mut [T]
Retrieves the mutable data buffer as a contiguous slice. Read more
source§unsafe fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
unsafe fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
Gets the mutable address of the i-th matrix component without performing bound-checking.
source§unsafe fn get_address_unchecked_mut(
&mut self,
irow: usize,
icol: usize
) -> *mut T
unsafe fn get_address_unchecked_mut( &mut self, irow: usize, icol: usize ) -> *mut T
Gets the mutable address of the i-th matrix component without performing bound-checking.
source§unsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut T
unsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut T
Retrieves a mutable reference to the i-th element without bound-checking.
source§unsafe fn get_unchecked_mut(&mut self, irow: usize, icol: usize) -> &mut T
unsafe fn get_unchecked_mut(&mut self, irow: usize, icol: usize) -> &mut T
Retrieves a mutable reference to the element at
(irow, icol)
without bound-checking.source§unsafe fn swap_unchecked_linear(&mut self, i1: usize, i2: usize)
unsafe fn swap_unchecked_linear(&mut self, i1: usize, i2: usize)
Swaps two elements using their linear index without bound-checking.
impl<T: Scalar, C: Dim> ContiguousStorage<T, Dynamic, C> for VecStorage<T, Dynamic, C>where DefaultAllocator: Allocator<T, Dynamic, C, Buffer = Self>,
impl<T: Scalar, R: DimName> ContiguousStorage<T, R, Dynamic> for VecStorage<T, R, Dynamic>where DefaultAllocator: Allocator<T, R, Dynamic, Buffer = Self>,
impl<T: Scalar, C: Dim> ContiguousStorageMut<T, Dynamic, C> for VecStorage<T, Dynamic, C>where DefaultAllocator: Allocator<T, Dynamic, C, Buffer = Self>,
impl<T: Scalar, R: DimName> ContiguousStorageMut<T, R, Dynamic> for VecStorage<T, R, Dynamic>where DefaultAllocator: Allocator<T, R, Dynamic, Buffer = Self>,
impl Copy for Dynamic
impl Eq for Dynamic
impl IsDynamic for Dynamic
impl IsNotStaticOne for Dynamic
impl StructuralEq for Dynamic
impl StructuralPartialEq for Dynamic
Auto Trait Implementations§
impl RefUnwindSafe for Dynamic
impl Send for Dynamic
impl Sync for Dynamic
impl Unpin for Dynamic
impl UnwindSafe for Dynamic
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.