Skip to main content

dope_runtime/topology/lending/
root.rs

1use std::pin;
2
3use crate::client;
4
5/// Projects the unique client provider embedded in a pinned owner.
6pub trait Root<'d> {
7    type Provider: client::Provider<'d> + ?Sized;
8
9    fn provider(self: pin::Pin<&Self>) -> pin::Pin<&Self::Provider>;
10}
11
12impl<'d, P> Root<'d> for P
13where
14    P: client::Provider<'d>,
15{
16    type Provider = P;
17
18    fn provider(self: pin::Pin<&Self>) -> pin::Pin<&Self::Provider> {
19        self
20    }
21}