Trait pasture_core::containers::SliceBuffer

source ·
pub trait SliceBuffer<'a>
where Self: 'a,
{ type SliceType: BorrowedBuffer<'a>; // Required method fn slice(&'a self, range: Range<usize>) -> Self::SliceType; }
Expand description

Trait for buffers that support slicing, similar to the builtin slice type

§Note

If there would be better support for custom DSTs, the BufferSlice type could be a DST and we could use the Index trait instead.

Required Associated Types§

source

type SliceType: BorrowedBuffer<'a>

The slice type

Required Methods§

source

fn slice(&'a self, range: Range<usize>) -> Self::SliceType

Take a immutable slice to this buffer using the given range of points

§Panics

May panic if range is out of bounds

Implementors§

source§

impl<'a> SliceBuffer<'a> for HashMapBuffer
where Self: 'a,

source§

impl<'a> SliceBuffer<'a> for VectorBuffer
where Self: 'a,

source§

impl<'a> SliceBuffer<'a> for dyn BorrowedBuffer<'a> + 'a

§

type SliceType = BufferSlice<'a, dyn BorrowedBuffer<'a> + 'a>

source§

impl<'a> SliceBuffer<'a> for dyn BorrowedMutBuffer<'a> + 'a

§

type SliceType = BufferSlice<'a, dyn BorrowedMutBuffer<'a> + 'a>

source§

impl<'a> SliceBuffer<'a> for dyn ColumnarBuffer<'a> + 'a

source§

impl<'a> SliceBuffer<'a> for dyn ColumnarBufferMut<'a> + 'a

source§

impl<'a> SliceBuffer<'a> for dyn InterleavedBuffer<'a> + 'a

source§

impl<'a> SliceBuffer<'a> for dyn InterleavedBufferMut<'a> + 'a

source§

impl<'a, T: AsRef<[u8]> + 'a> SliceBuffer<'a> for ExternalMemoryBuffer<T>
where Self: 'a,

source§

impl<'a, T: BorrowedBuffer<'a> + BorrowedMutBuffer<'a> + ?Sized> SliceBuffer<'a> for BufferSliceMut<'a, T>

§

type SliceType = BufferSlice<'a, T>

source§

impl<'a, T: BorrowedBuffer<'a> + ?Sized> SliceBuffer<'a> for BufferSlice<'a, T>

§

type SliceType = BufferSlice<'a, T>

source§

impl<'a, T: InterleavedBuffer<'a> + ?Sized> SliceBuffer<'a> for BufferSliceInterleaved<'a, T>

source§

impl<'a, T: InterleavedBufferMut<'a> + ?Sized> SliceBuffer<'a> for BufferSliceInterleavedMut<'a, T>