use std::sync::Arc;
use crate::{
error::Error,
platform::{MaybeSendBoxFuture, MaybeSendSync},
};
pub trait JtiUniquenessChecker: std::fmt::Debug + MaybeSendSync {
fn check_and_mark_seen(&self, jti: &str) -> MaybeSendBoxFuture<'_, Result<bool, Error>>;
}
impl<T: JtiUniquenessChecker + ?Sized> JtiUniquenessChecker for &T {
fn check_and_mark_seen(&self, jti: &str) -> MaybeSendBoxFuture<'_, Result<bool, Error>> {
(**self).check_and_mark_seen(jti)
}
}
impl<T: JtiUniquenessChecker + ?Sized> JtiUniquenessChecker for Box<T> {
fn check_and_mark_seen(&self, jti: &str) -> MaybeSendBoxFuture<'_, Result<bool, Error>> {
(**self).check_and_mark_seen(jti)
}
}
impl<T: JtiUniquenessChecker + ?Sized> JtiUniquenessChecker for Arc<T> {
fn check_and_mark_seen(&self, jti: &str) -> MaybeSendBoxFuture<'_, Result<bool, Error>> {
(**self).check_and_mark_seen(jti)
}
}