use std::{pin::Pin, sync::Arc};
use crate::{
BoxedError,
platform::{MaybeSendFuture, MaybeSendSync},
};
#[derive(Debug, Clone)]
pub struct BoxedJtiUniquenessChecker {
inner: Arc<dyn JtiUniquenessChecker>,
}
impl JtiUniquenessChecker for BoxedJtiUniquenessChecker {
fn check_and_mark_seen(
&self,
jti: &str,
) -> Pin<Box<dyn MaybeSendFuture<Output = Result<bool, BoxedError>> + '_>> {
self.inner.check_and_mark_seen(jti)
}
}
pub trait JtiUniquenessChecker: std::fmt::Debug + MaybeSendSync {
fn check_and_mark_seen(
&self,
jti: &str,
) -> Pin<Box<dyn MaybeSendFuture<Output = Result<bool, BoxedError>> + '_>>;
}