use std::future::Future;
use super::Policy;
pub trait Authority<'a, Payload> {
type Policy: Policy;
type Token;
type VerifyFuture: Future<Output = Result<Payload, Self::VerifyError>> + 'a;
type VerifyError;
fn verify(&'a self, token: Self::Token, dir: Self::Policy) -> Self::VerifyFuture;
}