use std::sync::Arc;
pub mod cookie;
#[derive(Clone, Debug)]
#[non_exhaustive]
pub enum RpcAuth {
Inherent,
Cookie {
secret: RpcCookieSource,
server_address: String,
},
}
#[derive(Clone, Debug)]
#[non_exhaustive]
pub enum RpcCookieSource {
Loaded(Arc<cookie::Cookie>),
Unloaded(cookie::CookieLocation),
}
impl RpcCookieSource {
pub fn load(&self) -> Result<Arc<cookie::Cookie>, cookie::CookieAccessError> {
match self {
RpcCookieSource::Loaded(cookie) => Ok(Arc::clone(cookie)),
RpcCookieSource::Unloaded(cookie_location) => Ok(Arc::new(cookie_location.load()?)),
}
}
}