#[derive(Clone, Debug, PartialEq)]
pub struct Authority<'uri> {
pub userinfo: Option<UserInfo<'uri>>,
pub raw_host: &'uri str,
pub port: Option<u16>,
}
use crate::error::AuthorityError;
impl<'uri> Authority<'uri> {
#[cfg(feature = "builder")]
pub fn from_host_str(host: &'uri str) -> Result<Self, AuthorityError<'uri>> {
Ok(Self {
userinfo: None,
raw_host: host,
port: None,
})
}
}
#[derive(Clone, Debug, PartialEq)]
pub struct UserInfo<'uri> {
pub raw_user: &'uri str,
pub(crate) raw_authorization: Option<&'uri str>,
}
impl<'uri> UserInfo<'uri> {
pub fn raw_authorization(&self) -> Option<&'uri str> {
self.raw_authorization
}
#[cfg(feature = "builder")]
pub fn set_authorization(&mut self, user: &'uri str, auth: Option<&'uri str>) {
self.raw_user = user;
self.raw_authorization = auth;
}
}