pub trait AsyncFunc<C, R, ApplicationResult>: Fn(C, R) -> Self::Fut + Send + Sync { type Fut: Future<Output = ApplicationResult> + Send; }