use std::future::Future;
use crate::{AuthError, Token};
#[cfg(not(target_arch = "wasm32"))]
pub(crate) trait Refresher: Send + Sync {
type Credential: Send;
fn save(&self, token: &Token);
fn try_credential(&self, token: Option<&mut Token>) -> Option<Self::Credential>;
fn restore(&self, token: &mut Token, credential: Self::Credential);
fn refresh(
&self,
credential: &Self::Credential,
) -> impl Future<Output = Result<Token, AuthError>> + Send;
}
#[cfg(target_arch = "wasm32")]
pub(crate) trait Refresher {
type Credential;
fn save(&self, token: &Token);
fn try_credential(&self, token: Option<&mut Token>) -> Option<Self::Credential>;
fn restore(&self, token: &mut Token, credential: Self::Credential);
fn refresh(
&self,
credential: &Self::Credential,
) -> impl Future<Output = Result<Token, AuthError>>;
}