soa_rs/as_slice.rs
1use crate::{SliceMut, SliceRef, Soars};
2
3/// Similar to `AsRef<Slice>`, but returns a value type rather than an
4/// reference.
5pub trait AsSlice {
6 /// The type that the slice contains.
7 type Item: Soars;
8
9 /// Returns a [`SliceRef`] containing the entire array.
10 fn as_slice(&self) -> SliceRef<'_, Self::Item>;
11}
12
13/// Similar to `AsMut<Slice>`, but returns a value type rather than a mutable
14/// reference.
15pub trait AsMutSlice: AsSlice {
16 /// Returns a [`SliceMut`] containing the entire array.
17 fn as_mut_slice(&mut self) -> SliceMut<'_, Self::Item>;
18}