teloc/
get_dependencies.rs1pub trait GetDependencies<'a, Deps, Indexes> {
6 fn get_deps(&'a self) -> Deps;
7}
8
9mod impls {
10 use crate::get_dependencies::GetDependencies;
11 use crate::resolver::Resolver;
12 use frunk::hlist::HList;
13 use frunk::{HCons, HNil};
14
15 impl<'a, T, TRest, Cont, Infer, InferRest, SP>
16 GetDependencies<'a, HCons<T, TRest>, HCons<(Cont, Infer), InferRest>> for SP
17 where
18 TRest: HList,
19 SP: Resolver<'a, Cont, T, Infer> + GetDependencies<'a, TRest, InferRest>,
20 {
21 fn get_deps(&'a self) -> HCons<T, TRest> {
22 GetDependencies::<TRest, InferRest>::get_deps(self).prepend(self.resolve())
23 }
24 }
25 impl<'a, S> GetDependencies<'a, HNil, HNil> for S {
26 fn get_deps(&'a self) -> HNil {
27 HNil
28 }
29 }
30}