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}