#[repr(C)]pub struct VecStorage<T, R, C>{
data: Vec<T>,
nrows: R,
ncols: C,
}
Expand description
A Vec-based matrix data storage. It may be dynamically-sized.
Fields§
§data: Vec<T>
§nrows: R
§ncols: C
Implementations§
source§impl<T, R, C> VecStorage<T, R, C>
impl<T, R, C> VecStorage<T, R, C>
sourcepub fn new(nrows: R, ncols: C, data: Vec<T>) -> VecStorage<T, R, C>
pub fn new(nrows: R, ncols: C, data: Vec<T>) -> VecStorage<T, R, C>
Creates a new dynamic matrix data storage from the given vector and shape.
sourcepub unsafe fn as_vec_mut(&mut self) -> &mut Vec<T>
pub unsafe fn as_vec_mut(&mut self) -> &mut Vec<T>
The underlying mutable data storage.
§Safety
This is unsafe because this may cause UB if the size of the vector is changed by the user.
sourcepub unsafe fn resize(self, sz: usize) -> Vec<MaybeUninit<T>>
pub unsafe fn resize(self, sz: usize) -> Vec<MaybeUninit<T>>
Resizes the underlying mutable data storage and unwraps it.
§Safety
- If
sz
is larger than the current size, additional elements are uninitialized. - If
sz
is smaller than the current size, additional elements are truncated but not dropped. It is the responsibility of the caller of this method to drop these elements.
sourcepub fn as_slice(&self) -> &[T]
pub fn as_slice(&self) -> &[T]
A slice containing all the components stored in this storage in column-major order.
sourcepub fn as_mut_slice(&mut self) -> &mut [T]
pub fn as_mut_slice(&mut self) -> &mut [T]
A mutable slice containing all the components stored in this storage in column-major order.
Trait Implementations§
source§impl<T, R, C> Clone for VecStorage<T, R, C>
impl<T, R, C> Clone for VecStorage<T, R, C>
source§fn clone(&self) -> VecStorage<T, R, C>
fn clone(&self) -> VecStorage<T, R, C>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<T, R, C> Debug for VecStorage<T, R, C>
impl<T, R, C> Debug for VecStorage<T, R, C>
source§impl<'a, T, R> Extend<&'a T> for VecStorage<T, R, Dyn>
impl<'a, T, R> Extend<&'a T> for VecStorage<T, R, Dyn>
source§fn extend<I>(&mut self, iter: I)where
I: IntoIterator<Item = &'a T>,
fn extend<I>(&mut self, iter: I)where
I: IntoIterator<Item = &'a T>,
Extends the number of columns of the VecStorage
with elements
from the given iterator.
§Panics
This function panics if the number of elements yielded by the
given iterator is not a multiple of the number of rows of the
VecStorage
.
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<T, R, RV, SV> Extend<Matrix<T, RV, Const<1>, SV>> for VecStorage<T, R, Dyn>
impl<T, R, RV, SV> Extend<Matrix<T, RV, Const<1>, SV>> for VecStorage<T, R, Dyn>
source§fn extend<I>(&mut self, iter: I)
fn extend<I>(&mut self, iter: I)
Extends the number of columns of the VecStorage
with vectors
from the given iterator.
§Panics
This function panics if the number of rows of each Vector
yielded by the iterator is not equal to the number of rows
of this VecStorage
.
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<T> Extend<T> for VecStorage<T, Dyn, Const<1>>
impl<T> Extend<T> for VecStorage<T, Dyn, Const<1>>
source§fn extend<I>(&mut self, iter: I)where
I: IntoIterator<Item = T>,
fn extend<I>(&mut self, iter: I)where
I: IntoIterator<Item = T>,
Extends the number of rows of the VecStorage
with elements
from the given iterator.
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<T, R> Extend<T> for VecStorage<T, R, Dyn>where
R: Dim,
impl<T, R> Extend<T> for VecStorage<T, R, Dyn>where
R: Dim,
source§fn extend<I>(&mut self, iter: I)where
I: IntoIterator<Item = T>,
fn extend<I>(&mut self, iter: I)where
I: IntoIterator<Item = T>,
Extends the number of columns of the VecStorage
with elements
from the given iterator.
§Panics
This function panics if the number of elements yielded by the
given iterator is not a multiple of the number of rows of the
VecStorage
.
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<T, R, C> From<VecStorage<T, R, C>> for Vec<T>
impl<T, R, C> From<VecStorage<T, R, C>> for Vec<T>
source§fn from(vec: VecStorage<T, R, C>) -> Vec<T>
fn from(vec: VecStorage<T, R, C>) -> Vec<T>
source§impl<T, R, C> PartialEq for VecStorage<T, R, C>
impl<T, R, C> PartialEq for VecStorage<T, R, C>
source§fn eq(&self, other: &VecStorage<T, R, C>) -> bool
fn eq(&self, other: &VecStorage<T, R, C>) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl<T, C> RawStorage<T, Dyn, C> for VecStorage<T, Dyn, C>where
C: Dim,
impl<T, C> RawStorage<T, Dyn, C> for VecStorage<T, Dyn, C>where
C: Dim,
source§fn shape(&self) -> (Dyn, C)
fn shape(&self) -> (Dyn, C)
Self::dimension()
if it is not None
.source§fn strides(
&self,
) -> (<VecStorage<T, Dyn, C> as RawStorage<T, Dyn, C>>::RStride, <VecStorage<T, Dyn, C> as RawStorage<T, Dyn, C>>::CStride)
fn strides( &self, ) -> (<VecStorage<T, Dyn, C> as RawStorage<T, Dyn, C>>::RStride, <VecStorage<T, Dyn, C> as RawStorage<T, Dyn, C>>::CStride)
source§fn is_contiguous(&self) -> bool
fn is_contiguous(&self) -> bool
source§unsafe fn as_slice_unchecked(&self) -> &[T]
unsafe fn as_slice_unchecked(&self) -> &[T]
source§fn linear_index(&self, irow: usize, icol: usize) -> usize
fn linear_index(&self, irow: usize, icol: usize) -> usize
source§fn get_address_unchecked_linear(&self, i: usize) -> *const T
fn get_address_unchecked_linear(&self, i: usize) -> *const T
source§fn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
fn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
source§impl<T, R> RawStorage<T, R, Dyn> for VecStorage<T, R, Dyn>where
R: DimName,
impl<T, R> RawStorage<T, R, Dyn> for VecStorage<T, R, Dyn>where
R: DimName,
source§fn shape(&self) -> (R, Dyn)
fn shape(&self) -> (R, Dyn)
Self::dimension()
if it is not None
.source§fn strides(
&self,
) -> (<VecStorage<T, R, Dyn> as RawStorage<T, R, Dyn>>::RStride, <VecStorage<T, R, Dyn> as RawStorage<T, R, Dyn>>::CStride)
fn strides( &self, ) -> (<VecStorage<T, R, Dyn> as RawStorage<T, R, Dyn>>::RStride, <VecStorage<T, R, Dyn> as RawStorage<T, R, Dyn>>::CStride)
source§fn is_contiguous(&self) -> bool
fn is_contiguous(&self) -> bool
source§unsafe fn as_slice_unchecked(&self) -> &[T]
unsafe fn as_slice_unchecked(&self) -> &[T]
source§fn linear_index(&self, irow: usize, icol: usize) -> usize
fn linear_index(&self, irow: usize, icol: usize) -> usize
source§fn get_address_unchecked_linear(&self, i: usize) -> *const T
fn get_address_unchecked_linear(&self, i: usize) -> *const T
source§fn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
fn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
source§impl<T, C> RawStorageMut<T, Dyn, C> for VecStorage<T, Dyn, C>where
C: Dim,
impl<T, C> RawStorageMut<T, Dyn, C> for VecStorage<T, Dyn, C>where
C: Dim,
source§unsafe fn as_mut_slice_unchecked(&mut self) -> &mut [T]
unsafe fn as_mut_slice_unchecked(&mut self) -> &mut [T]
source§fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
source§fn get_address_unchecked_mut(&mut self, irow: usize, icol: usize) -> *mut T
fn get_address_unchecked_mut(&mut self, irow: usize, icol: usize) -> *mut T
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
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
(irow, icol)
without bound-checking. Read moresource§impl<T, R> RawStorageMut<T, R, Dyn> for VecStorage<T, R, Dyn>where
R: DimName,
impl<T, R> RawStorageMut<T, R, Dyn> for VecStorage<T, R, Dyn>where
R: DimName,
source§unsafe fn as_mut_slice_unchecked(&mut self) -> &mut [T]
unsafe fn as_mut_slice_unchecked(&mut self) -> &mut [T]
source§fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
source§fn get_address_unchecked_mut(&mut self, irow: usize, icol: usize) -> *mut T
fn get_address_unchecked_mut(&mut self, irow: usize, icol: usize) -> *mut T
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
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
(irow, icol)
without bound-checking. Read moresource§impl<T, C1, C2> ReshapableStorage<T, Dyn, C1, Dyn, C2> for VecStorage<T, Dyn, C1>
impl<T, C1, C2> ReshapableStorage<T, Dyn, C1, Dyn, C2> for VecStorage<T, Dyn, C1>
§type Output = VecStorage<T, Dyn, C2>
type Output = VecStorage<T, Dyn, C2>
source§fn reshape_generic(
self,
nrows: Dyn,
ncols: C2,
) -> <VecStorage<T, Dyn, C1> as ReshapableStorage<T, Dyn, C1, Dyn, C2>>::Output
fn reshape_generic( self, nrows: Dyn, ncols: C2, ) -> <VecStorage<T, Dyn, C1> as ReshapableStorage<T, Dyn, C1, Dyn, C2>>::Output
source§impl<T, C1, R2> ReshapableStorage<T, Dyn, C1, R2, Dyn> for VecStorage<T, Dyn, C1>
impl<T, C1, R2> ReshapableStorage<T, Dyn, C1, R2, Dyn> for VecStorage<T, Dyn, C1>
§type Output = VecStorage<T, R2, Dyn>
type Output = VecStorage<T, R2, Dyn>
source§fn reshape_generic(
self,
nrows: R2,
ncols: Dyn,
) -> <VecStorage<T, Dyn, C1> as ReshapableStorage<T, Dyn, C1, R2, Dyn>>::Output
fn reshape_generic( self, nrows: R2, ncols: Dyn, ) -> <VecStorage<T, Dyn, C1> as ReshapableStorage<T, Dyn, C1, R2, Dyn>>::Output
source§impl<T, R1, C2> ReshapableStorage<T, R1, Dyn, Dyn, C2> for VecStorage<T, R1, Dyn>
impl<T, R1, C2> ReshapableStorage<T, R1, Dyn, Dyn, C2> for VecStorage<T, R1, Dyn>
§type Output = VecStorage<T, Dyn, C2>
type Output = VecStorage<T, Dyn, C2>
source§fn reshape_generic(
self,
nrows: Dyn,
ncols: C2,
) -> <VecStorage<T, R1, Dyn> as ReshapableStorage<T, R1, Dyn, Dyn, C2>>::Output
fn reshape_generic( self, nrows: Dyn, ncols: C2, ) -> <VecStorage<T, R1, Dyn> as ReshapableStorage<T, R1, Dyn, Dyn, C2>>::Output
source§impl<T, R1, R2> ReshapableStorage<T, R1, Dyn, R2, Dyn> for VecStorage<T, R1, Dyn>
impl<T, R1, R2> ReshapableStorage<T, R1, Dyn, R2, Dyn> for VecStorage<T, R1, Dyn>
§type Output = VecStorage<T, R2, Dyn>
type Output = VecStorage<T, R2, Dyn>
source§fn reshape_generic(
self,
nrows: R2,
ncols: Dyn,
) -> <VecStorage<T, R1, Dyn> as ReshapableStorage<T, R1, Dyn, R2, Dyn>>::Output
fn reshape_generic( self, nrows: R2, ncols: Dyn, ) -> <VecStorage<T, R1, Dyn> as ReshapableStorage<T, R1, Dyn, R2, Dyn>>::Output
source§impl<T, C> Storage<T, Dyn, C> for VecStorage<T, Dyn, C>
impl<T, C> Storage<T, Dyn, C> for VecStorage<T, Dyn, C>
source§fn into_owned(self) -> <DefaultAllocator as Allocator<T, Dyn, C>>::Buffer
fn into_owned(self) -> <DefaultAllocator as Allocator<T, Dyn, C>>::Buffer
source§fn clone_owned(&self) -> <DefaultAllocator as Allocator<T, Dyn, C>>::Buffer
fn clone_owned(&self) -> <DefaultAllocator as Allocator<T, Dyn, C>>::Buffer
source§impl<T, R> Storage<T, R, Dyn> for VecStorage<T, R, Dyn>where
T: Scalar,
R: DimName,
DefaultAllocator: Allocator<T, R, Dyn, Buffer = VecStorage<T, R, Dyn>>,
impl<T, R> Storage<T, R, Dyn> for VecStorage<T, R, Dyn>where
T: Scalar,
R: DimName,
DefaultAllocator: Allocator<T, R, Dyn, Buffer = VecStorage<T, R, Dyn>>,
source§fn into_owned(self) -> <DefaultAllocator as Allocator<T, R, Dyn>>::Buffer
fn into_owned(self) -> <DefaultAllocator as Allocator<T, R, Dyn>>::Buffer
source§fn clone_owned(&self) -> <DefaultAllocator as Allocator<T, R, Dyn>>::Buffer
fn clone_owned(&self) -> <DefaultAllocator as Allocator<T, R, Dyn>>::Buffer
impl<T, R, C> Eq for VecStorage<T, R, C>
impl<T, R, C> IsContiguous for VecStorage<T, R, C>
impl<T, R, C> StructuralPartialEq for VecStorage<T, R, C>
Auto Trait Implementations§
impl<T, R, C> Freeze for VecStorage<T, R, C>
impl<T, R, C> RefUnwindSafe for VecStorage<T, R, C>
impl<T, R, C> Send for VecStorage<T, R, C>where
T: Send,
impl<T, R, C> Sync for VecStorage<T, R, C>where
T: Sync,
impl<T, R, C> Unpin for VecStorage<T, R, C>
impl<T, R, C> UnwindSafe for VecStorage<T, R, C>
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
[ShaderType
] for self
. When used in [AsBindGroup
]
derives, it is safe to assume that all images in self
exist.§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> Conv for T
impl<T> Conv for T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> DynEq for T
impl<T> DynEq for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
fn equivalent(&self, key: &K) -> bool
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.