Trait DisjointFrom

Source
pub trait DisjointFrom<Other>: SpecCombinator
where Other: SpecCombinator,
{ }
Expand description

A helper trait for OrdChoice combinator.

Implementations on Foreign Types§

Source§

impl<'a, 'b, T1, T2> DisjointFrom<&'a T1> for &'b T2

Source§

impl<U1, U2, V1, V2> DisjointFrom<(U2, V2)> for (U1, V1)

Implementors§

Source§

impl DisjointFrom<Refined<Bytes, TagPred<Seq<u8>>>> for Refined<Bytes, TagPred<Seq<u8>>>

Source§

impl DisjointFrom<Refined<U8, TagPred<u8>>> for Refined<U8, TagPred<u8>>

Source§

impl DisjointFrom<Refined<U16, TagPred<u16>>> for Refined<U16, TagPred<u16>>

Source§

impl DisjointFrom<Refined<U32, TagPred<u32>>> for Refined<U32, TagPred<u32>>

Source§

impl DisjointFrom<Refined<U64, TagPred<u64>>> for Refined<U64, TagPred<u64>>

Source§

impl DisjointFrom<Tag<Bytes, Seq<u8>>> for Tag<Bytes, Seq<u8>>

Source§

impl DisjointFrom<Tag<U8, u8>> for Tag<U8, u8>

Source§

impl DisjointFrom<Tag<U16, u16>> for Tag<U16, u16>

Source§

impl DisjointFrom<Tag<U32, u32>> for Tag<U32, u32>

Source§

impl DisjointFrom<Tag<U64, u64>> for Tag<U64, u64>

Source§

impl<Inner1, Inner2> DisjointFrom<Cond<Inner2>> for Cond<Inner1>
where Inner1: SpecCombinator, Inner2: SpecCombinator,

Source§

impl<S1, S2, S3> DisjointFrom<S3> for OrdChoice<S1, S2>

Source§

impl<T1, T2> DisjointFrom<ASN1<T1>> for ASN1<T2>

If T1 and T2 have different tags, then their tagged encodings are disjoint

Source§

impl<T1, T2> DisjointFrom<ASN1<T1>> for Cond<ASN1<T2>>

Source§

impl<T1, T2> DisjointFrom<Cached<ASN1<T1>>> for ASN1<T2>

Source§

impl<T1, T2, S> DisjointFrom<(ASN1<T1>, S)> for ASN1<T2>

If T1 and T2 have different tags, then (T1, …) is disjoint from T2

Source§

impl<T1, T2, S> DisjointFrom<ASN1<T2>> for Pair<ASN1<T1>, S>

The other direction of the above

Source§

impl<T1, T2, S> DisjointFrom<Cached<ASN1<T2>>> for Pair<ASN1<T1>, S>

Source§

impl<T1, T2, S> DisjointFrom<Pair<ASN1<T1>, S>> for ASN1<T2>

Same as above, but uses a custom

Source§

impl<T1, T2, T3> DisjointFrom<T1> for Default<T2::SpecResult, T2, T3>

Source§

impl<T1, T2, T3> DisjointFrom<T1> for Optional<T2, T3>

If T2 and T3 are both disjoint from T1, then something like Optional<T1, Optional<T2, T3>> is doable

Source§

impl<T> DisjointFrom<ASN1<T>> for End

Source§

impl<T> DisjointFrom<T> for Fail
where T: SpecCombinator,

Source§

impl<T> DisjointFrom<T> for Unreachable
where T: SpecCombinator,

Source§

impl<U1, U2, M1, M2> DisjointFrom<Mapped<U2, M2>> for Mapped<U1, M1>
where U1: DisjointFrom<U2>, U2: SpecCombinator, M1: SpecIso<Src = <U1 as SpecCombinator>::SpecResult>, M2: SpecIso<Src = <U2 as SpecCombinator>::SpecResult>, <U1 as SpecCombinator>::SpecResult: SpecFrom<<M1 as SpecIso>::Dst>, <U2 as SpecCombinator>::SpecResult: SpecFrom<<M2 as SpecIso>::Dst>, <M1 as SpecIso>::Dst: SpecFrom<<U1 as SpecCombinator>::SpecResult>, <M2 as SpecIso>::Dst: SpecFrom<<U2 as SpecCombinator>::SpecResult>,

Source§

impl<U1, U2, V1, V2> DisjointFrom<SpecDepend<U2, V2>> for SpecDepend<U1, V1>

Source§

impl<U1, U2, V1, V2> DisjointFrom<Preceded<U2, V2>> for Preceded<U1, V1>
where U1: DisjointFrom<U2, SpecResult = ()> + SecureSpecCombinator, U2: SecureSpecCombinator<SpecResult = ()>, V1: SpecCombinator, V2: SpecCombinator,

Source§

impl<const N: usize> DisjointFrom<Refined<BytesN<N>, TagPred<Seq<u8>>>> for Refined<BytesN<N>, TagPred<Seq<u8>>>

Source§

impl<const N: usize> DisjointFrom<Tag<BytesN<N>, Seq<u8>>> for Tag<BytesN<N>, Seq<u8>>