PuiVecAccess

Trait PuiVecAccess 

Source
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§

Source

type Output: ?Sized

The output type returned by methods.

Required Methods§

Source

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

Source

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§

Source

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.

Source

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.

Source

fn index<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Returns a shared reference to the output at this location, panicking if out of bounds.

Source

fn index_mut<'a>(&self, vec: &'a mut PuiVec<T, I>) -> &'a mut Self::Output

Returns a unique reference to the output at this location, panicking if out of 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

Source§

type Output = <Pi as PuiVecAccess<T, I>>::Output

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

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

Source§

type Output = <Pi as PuiVecAccess<T, I>>::Output

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

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

Source§

type Output = T

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

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 Range<usize>

Source§

type Output = [T]

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

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 RangeFrom<usize>

Source§

type Output = [T]

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

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 RangeFull

Source§

type Output = [T]

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

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 RangeInclusive<usize>

Source§

type Output = [T]

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

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 RangeTo<usize>

Source§

type Output = [T]

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

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 RangeToInclusive<usize>

Source§

type Output = [T]

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

unsafe fn get_unchecked_mut<'a>( &self, vec: &'a mut PuiVec<T, I>, ) -> &'a mut Self::Output

Source§

impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for Range<Id<I::Token>>

Available on crate feature pui only.
Source§

type Output = [T]

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

unsafe fn get_unchecked_mut<'a>( &self, vec: &'a mut PuiVec<T, I>, ) -> &'a mut Self::Output

Source§

impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for RangeFrom<Id<I::Token>>

Available on crate feature pui only.
Source§

type Output = [T]

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

unsafe fn get_unchecked_mut<'a>( &self, vec: &'a mut PuiVec<T, I>, ) -> &'a mut Self::Output

Source§

impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for RangeInclusive<Id<I::Token>>

Available on crate feature pui only.
Source§

type Output = [T]

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

unsafe fn get_unchecked_mut<'a>( &self, vec: &'a mut PuiVec<T, I>, ) -> &'a mut Self::Output

Source§

impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for RangeTo<Id<I::Token>>

Available on crate feature pui only.
Source§

type Output = [T]

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

unsafe fn get_unchecked_mut<'a>( &self, vec: &'a mut PuiVec<T, I>, ) -> &'a mut Self::Output

Source§

impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for RangeToInclusive<Id<I::Token>>

Available on crate feature pui only.
Source§

type Output = [T]

Source§

unsafe fn get_unchecked<'a>(&self, vec: &'a PuiVec<T, I>) -> &'a Self::Output

Source§

unsafe fn get_unchecked_mut<'a>( &self, vec: &'a mut PuiVec<T, I>, ) -> &'a mut Self::Output

Implementors§

Source§

impl<T, I: OneShotIdentifier> PuiVecAccess<T, I> for Id<I::Token>

Available on crate feature pui only.