use azure_core::auth::AccessToken;
use std::sync::Arc;
use crate::{
authorization::event_hub_token_credential::EventHubTokenCredential,
constants::{JSON_WEB_TOKEN_TYPE, SAS_TOKEN_TYPE},
};
#[derive(Debug)]
pub(crate) enum TokenType {
SharedAccessToken {
credential: Arc<EventHubTokenCredential>,
},
JsonWebToken {
credential: Arc<EventHubTokenCredential>,
cached_token: Option<AccessToken>,
},
}
impl TokenType {
pub(crate) fn entity_type(&self) -> &str {
match self {
TokenType::SharedAccessToken { .. } => SAS_TOKEN_TYPE,
TokenType::JsonWebToken { .. } => JSON_WEB_TOKEN_TYPE,
}
}
}
impl ToString for TokenType {
fn to_string(&self) -> String {
match self {
TokenType::SharedAccessToken { .. } => SAS_TOKEN_TYPE.to_string(),
TokenType::JsonWebToken { .. } => JSON_WEB_TOKEN_TYPE.to_string(),
}
}
}