Trait 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

Source§

impl<'a> SliceBuffer<'a> for 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>

Source§

impl<'a, T: BorrowedBuffer<'a> + ?Sized> SliceBuffer<'a> for 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>