scsys_core/traits/ext/
slice.rs

1/*
2    Appellation: specs <module>
3    Contrib: FL03 <jo3mccain@icloud.com>
4*/
5
6pub trait AsSlice<T> {
7    fn as_slice(&self) -> &[T];
8}
9
10pub trait AsSliceMut<T> {
11    fn as_mut_slice(&mut self) -> &mut [T];
12}
13
14impl<S, T> AsSlice<T> for S
15where
16    S: AsRef<[T]>,
17{
18    fn as_slice(&self) -> &[T] {
19        self.as_ref()
20    }
21}
22
23impl<S, T> AsSliceMut<T> for S
24where
25    S: AsMut<[T]>,
26{
27    fn as_mut_slice(&mut self) -> &mut [T] {
28        self.as_mut()
29    }
30}