std_traits/
reference.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::primitive::Primitive;

pub trait Reference: Primitive + Sized {
    fn as_ref(&self) -> &Self;
}

impl<T: ?Sized> Primitive for &T {}
impl<T: ?Sized> Reference for &T {
    fn as_ref(&self) -> &Self {
        self
    }
}
impl<T: ?Sized> Primitive for &mut T {}
impl<T: ?Sized> Reference for &mut T {
    fn as_ref(&self) -> &Self {
        self
    }
}