pub trait PuiVecAccess<T, I>: PuiVecIndex<I> {
type Output: ?Sized;
// Required methods
unsafe fn get_unchecked<'a>(
&self,
vec: &'a PuiVec<T, I>,
) -> &'a Self::Output;
unsafe fn get_unchecked_mut<'a>(
&self,
vec: &'a mut PuiVec<T, I>,
) -> &'a mut Self::Output;
// Provided methods
fn get<'a>(&self, vec: &'a PuiVec<T, I>) -> Option<&'a Self::Output> { ... }
fn get_mut<'a>(
&self,
vec: &'a mut PuiVec<T, I>,
) -> Option<&'a mut Self::Output> { ... }
fn index<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output { ... }
fn index_mut<'a>(&self, vec: &'a mut PuiVec<T, I>) -> &'a mut Self::Output { ... }
}Expand description
A type that can be used to access a PuiVec
Required Associated Types§
Required Methods§
Sourceunsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output
unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output
Returns a shared reference to the output at this location, without performing any bounds checking. Calling this method with an out-of-boundsindex or a dangling slice pointer is undefined behavior even if the resulting reference is not used.
§Safety
self.contained_in(vec) must return true
Sourceunsafe fn get_unchecked_mut<'a>(
&self,
vec: &'a mut PuiVec<T, I>,
) -> &'a mut Self::Output
unsafe fn get_unchecked_mut<'a>( &self, vec: &'a mut PuiVec<T, I>, ) -> &'a mut Self::Output
Returns a uniquue reference to the output at this location, without performing any bounds checking. Calling this method with an out-of-boundsindex or a dangling slice pointer is undefined behavior even if the resulting reference is not used.
§Safety
self.contained_in(vec) must return true
Provided Methods§
Sourcefn get<'a>(&self, vec: &'a PuiVec<T, I>) -> Option<&'a Self::Output>
fn get<'a>(&self, vec: &'a PuiVec<T, I>) -> Option<&'a Self::Output>
Returns a shared reference to the output at this location, if in bounds.
Sourcefn get_mut<'a>(&self, vec: &'a mut PuiVec<T, I>) -> Option<&'a mut Self::Output>
fn get_mut<'a>(&self, vec: &'a mut PuiVec<T, I>) -> Option<&'a mut Self::Output>
Returns a unique reference to the output at this location, if in bounds.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl<Pi: ?Sized + PuiVecAccess<T, I>, I, T> PuiVecAccess<T, I> for &Pi
impl<Pi: ?Sized + PuiVecAccess<T, I>, I, T> PuiVecAccess<T, I> for &Pi
type Output = <Pi as PuiVecAccess<T, I>>::Output
unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output
unsafe fn get_unchecked_mut<'a>( &self, vec: &'a mut PuiVec<T, I>, ) -> &'a mut Self::Output
Source§impl<Pi: ?Sized + PuiVecAccess<T, I>, I, T> PuiVecAccess<T, I> for &mut Pi
impl<Pi: ?Sized + PuiVecAccess<T, I>, I, T> PuiVecAccess<T, I> for &mut Pi
type Output = <Pi as PuiVecAccess<T, I>>::Output
unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output
unsafe fn get_unchecked_mut<'a>( &self, vec: &'a mut PuiVec<T, I>, ) -> &'a mut Self::Output
Source§impl<T, I> PuiVecAccess<T, I> for usize
impl<T, I> PuiVecAccess<T, I> for usize
Source§impl<T, I> PuiVecAccess<T, I> for Range<usize>
impl<T, I> PuiVecAccess<T, I> for Range<usize>
Source§impl<T, I> PuiVecAccess<T, I> for RangeFrom<usize>
impl<T, I> PuiVecAccess<T, I> for RangeFrom<usize>
Source§impl<T, I> PuiVecAccess<T, I> for RangeFull
impl<T, I> PuiVecAccess<T, I> for RangeFull
Source§impl<T, I> PuiVecAccess<T, I> for RangeInclusive<usize>
impl<T, I> PuiVecAccess<T, I> for RangeInclusive<usize>
Source§impl<T, I> PuiVecAccess<T, I> for RangeTo<usize>
impl<T, I> PuiVecAccess<T, I> for RangeTo<usize>
Source§impl<T, I> PuiVecAccess<T, I> for RangeToInclusive<usize>
impl<T, I> PuiVecAccess<T, I> for RangeToInclusive<usize>
Source§impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for Range<Id<I::Token>>
Available on crate feature pui only.
impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for Range<Id<I::Token>>
pui only.Source§impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for RangeFrom<Id<I::Token>>
Available on crate feature pui only.
impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for RangeFrom<Id<I::Token>>
pui only.Source§impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for RangeInclusive<Id<I::Token>>
Available on crate feature pui only.
impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for RangeInclusive<Id<I::Token>>
pui only.Source§impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for RangeTo<Id<I::Token>>
Available on crate feature pui only.
impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for RangeTo<Id<I::Token>>
pui only.Source§impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for RangeToInclusive<Id<I::Token>>
Available on crate feature pui only.
impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for RangeToInclusive<Id<I::Token>>
pui only.Implementors§
Source§impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for Id<I::Token>
Available on crate feature pui only.
impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for Id<I::Token>
pui only.