1use crate::plug::{PlugLifetime, PlugType};
4use std::marker::PhantomData;
5
6pub struct H2Reference;
8
9impl<'a> PlugLifetime<'a> for H2Reference {
10 type T = H1Reference<'a>;
11}
12
13pub struct H1Reference<'a>(PhantomData<&'a ()>);
15
16impl<'a, T> PlugType<T> for H1Reference<'a>
17where
18 T: 'a + ?Sized,
19{
20 type T = &'a T;
21}
22
23pub struct TypedH1Reference<T>(PhantomData<T>)
25where
26 T: ?Sized;
27
28impl<'a, T> PlugLifetime<'a> for TypedH1Reference<T>
29where
30 T: 'a + ?Sized,
31{
32 type T = &'a T;
33}