graph_core/cache/
token_cache.rs1use crate::identity::ForceTokenRefresh;
2use async_trait::async_trait;
3use graph_error::AuthExecutionError;
4
5pub trait AsBearer<RHS = Self> {
6 fn as_bearer(&self) -> String;
7}
8
9impl AsBearer for String {
10 fn as_bearer(&self) -> String {
11 self.clone()
12 }
13}
14
15impl AsBearer for &str {
16 fn as_bearer(&self) -> String {
17 self.to_string()
18 }
19}
20
21#[async_trait]
22pub trait TokenCache {
23 type Token: AsBearer;
24
25 fn get_token_silent(&mut self) -> Result<Self::Token, AuthExecutionError>;
26
27 async fn get_token_silent_async(&mut self) -> Result<Self::Token, AuthExecutionError>;
28
29 fn with_force_token_refresh(&mut self, force_token_refresh: ForceTokenRefresh);
30}