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