pub struct PrivatePathContext<const MCL: usize, const MCC: usize, const MPL: usize> { /* private fields */ }Expand description
The immutable PrivatePathContext necessary to privately encode a Path relative to one of its prefixes, while keeping secret all Components that coincide with a third Path.
Implementations§
Source§impl<const MCL: usize, const MCC: usize, const MPL: usize> PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> PrivatePathContext<MCL, MCC, MPL>
Sourcepub fn new(
private: Path<MCL, MCC, MPL>,
rel: Path<MCL, MCC, MPL>,
) -> Result<Self, ComponentsNotRelatedError>
pub fn new( private: Path<MCL, MCC, MPL>, rel: Path<MCL, MCC, MPL>, ) -> Result<Self, ComponentsNotRelatedError>
Returns a new PrivatePathContext with the given private and relative paths.
Will return a ComponentsNotRelatedError if the given private and relative paths are not related.
Sourcepub unsafe fn new_unchecked(
private: Path<MCL, MCC, MPL>,
rel: Path<MCL, MCC, MPL>,
) -> Self
pub unsafe fn new_unchecked( private: Path<MCL, MCC, MPL>, rel: Path<MCL, MCC, MPL>, ) -> Self
Returns a new PrivatePathContext with the given private and relative paths without checking if the given private and relative paths are related.
§Safety
Undefined behaviour if private and rel are not related.
Trait Implementations§
Source§impl<'a, const MCL: usize, const MCC: usize, const MPL: usize> Arbitrary<'a> for PrivatePathContext<MCL, MCC, MPL>
Available on crate feature dev only.
impl<'a, const MCL: usize, const MCC: usize, const MPL: usize> Arbitrary<'a> for PrivatePathContext<MCL, MCC, MPL>
Available on crate feature
dev only.Source§fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
Generate an arbitrary value of
Self from the given unstructured data. Read moreSource§fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
Generate an arbitrary value of
Self from the entirety of the given
unstructured data. Read moreSource§fn size_hint(depth: usize) -> (usize, Option<usize>)
fn size_hint(depth: usize) -> (usize, Option<usize>)
Get a size hint for how many bytes out of an
Unstructured this type
needs to construct itself. Read moreSource§fn try_size_hint(
depth: usize,
) -> Result<(usize, Option<usize>), MaxRecursionReached>
fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>
Get a size hint for how many bytes out of an
Unstructured this type
needs to construct itself. Read moreSource§impl<const MCL: usize, const MCC: usize, const MPL: usize> Clone for PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> Clone for PrivatePathContext<MCL, MCC, MPL>
Source§fn clone(&self) -> PrivatePathContext<MCL, MCC, MPL>
fn clone(&self) -> PrivatePathContext<MCL, MCC, MPL>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<const MCL: usize, const MCC: usize, const MPL: usize> Debug for PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> Debug for PrivatePathContext<MCL, MCC, MPL>
Source§impl<const MCL: usize, const MCC: usize, const MPL: usize> Hash for PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> Hash for PrivatePathContext<MCL, MCC, MPL>
Source§impl<const MCL: usize, const MCC: usize, const MPL: usize> Ord for PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> Ord for PrivatePathContext<MCL, MCC, MPL>
Source§fn cmp(&self, other: &PrivatePathContext<MCL, MCC, MPL>) -> Ordering
fn cmp(&self, other: &PrivatePathContext<MCL, MCC, MPL>) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl<const MCL: usize, const MCC: usize, const MPL: usize> PartialEq for PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> PartialEq for PrivatePathContext<MCL, MCC, MPL>
Source§fn eq(&self, other: &PrivatePathContext<MCL, MCC, MPL>) -> bool
fn eq(&self, other: &PrivatePathContext<MCL, MCC, MPL>) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl<const MCL: usize, const MCC: usize, const MPL: usize> PartialOrd for PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> PartialOrd for PrivatePathContext<MCL, MCC, MPL>
Source§impl<const MCL: usize, const MCC: usize, const MPL: usize> RelativeDecodable<PrivatePathContext<MCL, MCC, MPL>> for Path<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> RelativeDecodable<PrivatePathContext<MCL, MCC, MPL>> for Path<MCL, MCC, MPL>
Source§type ErrorReason = Blame
type ErrorReason = Blame
Reason why decoding can fail (beyond an unexpected end of input or a producer error).
Source§async fn relative_decode<P>(
rel: &PrivatePathContext<MCL, MCC, MPL>,
producer: &mut P,
) -> Result<Self, DecodeError<P::Final, P::Error, Self::ErrorReason>>
async fn relative_decode<P>( rel: &PrivatePathContext<MCL, MCC, MPL>, producer: &mut P, ) -> Result<Self, DecodeError<P::Final, P::Error, Self::ErrorReason>>
Decodes the symbols produced by the given bulk producer relative to
rel into a Self, or yields an error if the producer does not produce a valid relative encoding. Read moreSource§impl<const MCL: usize, const MCC: usize, const MPL: usize> RelativeEncodable<PrivatePathContext<MCL, MCC, MPL>> for Path<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> RelativeEncodable<PrivatePathContext<MCL, MCC, MPL>> for Path<MCL, MCC, MPL>
Source§fn can_be_encoded_relative_to(
&self,
rel: &PrivatePathContext<MCL, MCC, MPL>,
) -> bool
fn can_be_encoded_relative_to( &self, rel: &PrivatePathContext<MCL, MCC, MPL>, ) -> bool
Fails if the path is not a prefix of rel.rel, OR if self is not related to to rel.private.
Source§async fn relative_encode<C>(
&self,
rel: &PrivatePathContext<MCL, MCC, MPL>,
consumer: &mut C,
) -> Result<(), C::Error>
async fn relative_encode<C>( &self, rel: &PrivatePathContext<MCL, MCC, MPL>, consumer: &mut C, ) -> Result<(), C::Error>
impl<const MCL: usize, const MCC: usize, const MPL: usize> Eq for PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> StructuralPartialEq for PrivatePathContext<MCL, MCC, MPL>
Auto Trait Implementations§
impl<const MCL: usize, const MCC: usize, const MPL: usize> !Freeze for PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> RefUnwindSafe for PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> Send for PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> Sync for PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> Unpin for PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> UnsafeUnpin for PrivatePathContext<MCL, MCC, MPL>
impl<const MCL: usize, const MCC: usize, const MPL: usize> UnwindSafe for PrivatePathContext<MCL, MCC, MPL>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more