pub trait DisjointFrom<Other>: SpecCombinatorwhere
Other: SpecCombinator,{ }
Expand description
A helper trait for OrdChoice
combinator.
Implementations on Foreign Types§
impl<'a, 'b, T1, T2> DisjointFrom<&'a T1> for &'b T2
impl<U1, U2, V1, V2> DisjointFrom<(U2, V2)> for (U1, V1)where
U1: DisjointFrom<U2> + SecureSpecCombinator,
U2: SecureSpecCombinator,
V1: SpecCombinator,
V2: SpecCombinator,
Implementors§
impl DisjointFrom<Refined<Bytes, TagPred<Seq<u8>>>> for Refined<Bytes, TagPred<Seq<u8>>>
impl DisjointFrom<Refined<U8, TagPred<u8>>> for Refined<U8, TagPred<u8>>
impl DisjointFrom<Refined<U16, TagPred<u16>>> for Refined<U16, TagPred<u16>>
impl DisjointFrom<Refined<U32, TagPred<u32>>> for Refined<U32, TagPred<u32>>
impl DisjointFrom<Refined<U64, TagPred<u64>>> for Refined<U64, TagPred<u64>>
impl DisjointFrom<Tag<Bytes, Seq<u8>>> for Tag<Bytes, Seq<u8>>
impl DisjointFrom<Tag<U8, u8>> for Tag<U8, u8>
impl DisjointFrom<Tag<U16, u16>> for Tag<U16, u16>
impl DisjointFrom<Tag<U32, u32>> for Tag<U32, u32>
impl DisjointFrom<Tag<U64, u64>> for Tag<U64, u64>
impl<Inner1, Inner2> DisjointFrom<Cond<Inner2>> for Cond<Inner1>where
Inner1: SpecCombinator,
Inner2: SpecCombinator,
impl<S1, S2, S3> DisjointFrom<S3> for OrdChoice<S1, S2>where
S1: SpecCombinator + DisjointFrom<S3>,
S2: SpecCombinator + DisjointFrom<S1> + DisjointFrom<S3>,
S3: SpecCombinator,
impl<T1, T2> DisjointFrom<ASN1<T1>> for ASN1<T2>
If T1 and T2 have different tags, then their tagged encodings are disjoint
impl<T1, T2> DisjointFrom<ASN1<T1>> for Cond<ASN1<T2>>
impl<T1, T2> DisjointFrom<Cached<ASN1<T1>>> for ASN1<T2>
impl<T1, T2, S> DisjointFrom<(ASN1<T1>, S)> for ASN1<T2>where
T1: ASN1Tagged + SpecCombinator + SecureSpecCombinator,
T2: ASN1Tagged + SpecCombinator,
S: SpecCombinator,
If T1 and T2 have different tags, then (T1, …) is disjoint from T2
impl<T1, T2, S> DisjointFrom<ASN1<T2>> for Pair<ASN1<T1>, S>where
T1: ASN1Tagged + SecureSpecCombinator,
T2: ASN1Tagged + SecureSpecCombinator,
S: SecureSpecCombinator,
The other direction of the above
impl<T1, T2, S> DisjointFrom<Cached<ASN1<T2>>> for Pair<ASN1<T1>, S>where
T1: ASN1Tagged + SecureSpecCombinator,
T2: ASN1Tagged + SecureSpecCombinator,
S: SecureSpecCombinator,
impl<T1, T2, S> DisjointFrom<Pair<ASN1<T1>, S>> for ASN1<T2>where
T1: ASN1Tagged + SecureSpecCombinator,
T2: ASN1Tagged + SecureSpecCombinator,
S: SecureSpecCombinator,
Same as above, but uses a custom
impl<T1, T2, T3> DisjointFrom<T1> for Default<T2::SpecResult, T2, T3>where
T1: SecureSpecCombinator,
T2: SecureSpecCombinator + DisjointFrom<T1>,
T3: SecureSpecCombinator + DisjointFrom<T1> + DisjointFrom<T2>,
impl<T1, T2, T3> DisjointFrom<T1> for Optional<T2, T3>where
T1: SecureSpecCombinator,
T2: SecureSpecCombinator + DisjointFrom<T1>,
T3: SecureSpecCombinator + DisjointFrom<T1> + DisjointFrom<T2>,
If T2 and T3 are both disjoint from T1, then something like Optional<T1, Optional<T2, T3>> is doable