#[derive(Debug, Clone)]
pub(crate) enum Auth<'a> {
Basic(Credential<'a>),
Jwt(Credential<'a>),
None,
}
impl<'a> Default for Auth<'a> {
fn default() -> Auth<'static> {
Auth::None
}
}
impl<'a> Auth<'a> {
pub const fn basic(username: &'a str, password: &'a str) -> Auth<'a> {
Auth::Basic(Credential { username, password })
}
pub const fn jwt(username: &'a str, password: &'a str) -> Auth<'a> {
Auth::Jwt(Credential { username, password })
}
}
#[derive(Debug, Clone, Hash)]
pub(crate) struct Credential<'a> {
pub username: &'a str,
pub password: &'a str,
}