std_traits/
reference.rs

1use crate::primitive::Primitive;
2
3pub trait Reference: Primitive + Sized {
4    fn as_ref(&self) -> &Self;
5}
6
7impl<T: ?Sized> Primitive for &T {}
8impl<T: ?Sized> Reference for &T {
9    fn as_ref(&self) -> &Self {
10        self
11    }
12}
13impl<T: ?Sized> Primitive for &mut T {}
14impl<T: ?Sized> Reference for &mut T {
15    fn as_ref(&self) -> &Self {
16        self
17    }
18}