use std::fmt::{Debug, Display}; use log::debug; use ureq::RequestBuilder; use super::api::Uri; #[derive(Debug, Hash)] pub struct Alias { pub(super) api_uri: String, pub(super) id: String, } pub(super) trait SharryAlias { fn sharry_header(self, alias: &Alias) -> Self; } impl SharryAlias for RequestBuilder { fn sharry_header(self, alias: &Alias) -> Self { self.header("Sharry-Alias", &alias.id) } } impl Alias { pub fn new(api_uri: Uri, id: impl Into) -> Self { Self { api_uri: api_uri.into(), id: id.into(), } } pub(super) fn get_endpoint(&self, endpoint: impl Display + Debug) -> String { let uri = format!("{}/{}", self.api_uri, endpoint); debug!("endpoint uri: {uri:?}"); uri } }