use std::sync::Arc;
use super::uri_redaction_policy_inner::UriPolicyInner;
use super::{
UriFragmentPolicy,
UriPathPolicy,
};
#[must_use]
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct UriPolicy {
pub(crate) inner: Arc<UriPolicyInner>,
}
impl UriPolicy {
#[must_use = "inspect the path policy"]
#[inline]
pub fn path_policy(&self) -> UriPathPolicy {
self.inner.path_policy
}
#[must_use = "inspect the fragment policy"]
#[inline]
pub fn fragment_policy(&self) -> UriFragmentPolicy {
self.inner.fragment_policy
}
pub(crate) fn new(
path_policy: UriPathPolicy,
fragment_policy: UriFragmentPolicy,
) -> Self {
Self {
inner: Arc::new(UriPolicyInner {
path_policy,
fragment_policy,
}),
}
}
}