use crate::{AccessToken, Claims, NythosResult, Password, PasswordHash, SessionId};
pub trait PasswordHasher {
fn hash(&self, password: &Password) -> NythosResult<PasswordHash>;
fn verify(&self, password: &Password, hash: &PasswordHash) -> NythosResult<bool>;
}
pub trait TokenSigner {
fn sign(&self, claims: &Claims) -> NythosResult<AccessToken>;
fn verify(&self, token: &AccessToken) -> NythosResult<Claims>;
}
pub trait RevocationChecker {
fn is_revoked(&self, session_id: SessionId) -> NythosResult<bool>;
}