graph_core/cache/
token_cache.rs

1use 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}