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

pub trait ToWeak<T: ?Sized> {
    fn weak(&self) -> Weak<T>;
}

impl<T: ?Sized> ToWeak<T> for &T {
    fn weak(&self) -> Weak<T> {
        Weak::from_ref(self)
    }
}

impl<T: ?Sized> ToWeak<T> for &mut T {
    fn weak(&self) -> Weak<T> {
        Weak::from_ref(self)
    }
}