use core::fmt;
use super::{Basic, Bearer};
use rama_core::extensions::Extension;
#[derive(Debug, Clone, Extension)]
#[extension(tags(net, proxy))]
pub struct DpiProxyCredential(pub ProxyCredential);
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ProxyCredential {
Basic(Basic),
Bearer(Bearer),
}
impl From<Basic> for ProxyCredential {
fn from(basic: Basic) -> Self {
Self::Basic(basic)
}
}
impl From<Bearer> for ProxyCredential {
fn from(bearer: Bearer) -> Self {
Self::Bearer(bearer)
}
}
impl fmt::Display for ProxyCredential {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::Basic(basic) => basic.fmt(f),
Self::Bearer(bearer) => bearer.fmt(f),
}
}
}