Skip to main content

Consistency

Trait Consistency 

Source
pub trait Consistency {
    type Val;

    // Required method
    spec fn consistent(&self, v: Self::Val) -> bool;
}
Expand description

Value well-formedness according to a format’s specification.

§Examples

Required Associated Types§

Source

type Val

The type of values whose consistency is being checked.

Required Methods§

Source

spec fn consistent(&self, v: Self::Val) -> bool

Returns true if v is well-formed w.r.t. this combinator.

Implementations on Foreign Types§

Source§

impl<S: Consistency> Consistency for &S

Source§

open spec fn consistent(&self, v: Self::Val) -> bool

{ (*self).consistent(v) }
Source§

type Val = <S as Consistency>::Val

Implementors§

Source§

impl Consistency for BerEndFmt

Source§

impl Consistency for Integer8Fmt

Source§

impl Consistency for Integer16Fmt

Source§

impl Consistency for BerLengthFmt

Source§

impl Consistency for BmpStringFmt

Source§

impl Consistency for EnumeratedFmt

Source§

type Val = int

Source§

impl Consistency for Ia5StringFmt

Source§

impl Consistency for IntegerFmt

Source§

type Val = int

Source§

impl Consistency for ObjectIdentifierFmt

Source§

impl Consistency for PrintableStringFmt

Source§

impl Consistency for TagFmt

Source§

impl Consistency for TeletexStringFmt

Source§

impl Consistency for UniversalStringFmt

Source§

type Val = Seq<char>

Source§

impl Consistency for Utf8StringFmt

Source§

type Val = Seq<char>

Source§

impl Consistency for CborInitialFmt

Source§

impl Consistency for Empty

Source§

impl Consistency for Void

Source§

impl Consistency for I8

Source§

impl Consistency for I16Be

Source§

impl Consistency for I16Le

Source§

impl Consistency for I32Be

Source§

impl Consistency for I32Le

Source§

impl Consistency for I64Be

Source§

impl Consistency for I64Le

Source§

impl Consistency for Eof

Source§

impl Consistency for Tail

Source§

type Val = Seq<u8>

Source§

impl Consistency for U8

Source§

impl Consistency for U16Be

Source§

impl Consistency for U16Le

Source§

impl Consistency for U24Be

Source§

impl Consistency for U24Le

Source§

impl Consistency for U32Be

Source§

impl Consistency for U32Le

Source§

impl Consistency for U64Be

Source§

impl Consistency for U64Le

Source§

impl<A> Consistency for Opt<A>
where A: Consistency,

Source§

impl<A> Consistency for Star<A>
where A: Consistency,

Source§

type Val = Seq<<A as Consistency>::Val>

Source§

impl<A, B> Consistency for Optional<A, B>
where A: Consistency, B: Consistency,

Source§

type Val = (Option<<A as Consistency>::Val>, <B as Consistency>::Val)

Source§

impl<A, B> Consistency for Repeat<A, B>
where A: Consistency, B: Consistency,

Source§

type Val = (Seq<<A as Consistency>::Val>, <B as Consistency>::Val)

Source§

impl<A, B> Consistency for PairRev<A, B>
where A: Consistency, B: Consistency,

Source§

type Val = (<A as Consistency>::Val, <B as Consistency>::Val)

Source§

impl<A, B> Consistency for Bind<A, B>
where A: Consistency, B: SpecMap<Input = A::Val>, B::Output: Consistency,

Source§

type Val = (<A as Consistency>::Val, <<B as SpecMap>::Output as Consistency>::Val)

Source§

impl<A, B> Consistency for Pair<A, B>
where A: Consistency, B: Consistency,

Source§

type Val = (<A as Consistency>::Val, <B as Consistency>::Val)

Source§

impl<A, B, C> Consistency for Permute3<A, B, C>

Source§

type Val = (<A as Consistency>::Val, (<B as Consistency>::Val, <C as Consistency>::Val))

Source§

impl<A, B, C, D> Consistency for Permute4<A, B, C, D>

Source§

type Val = (<A as Consistency>::Val, (<B as Consistency>::Val, (<C as Consistency>::Val, <D as Consistency>::Val)))

Source§

impl<A, B, C, D, E> Consistency for Permute5<A, B, C, D, E>

Source§

type Val = (<A as Consistency>::Val, (<B as Consistency>::Val, (<C as Consistency>::Val, (<D as Consistency>::Val, <E as Consistency>::Val))))

Source§

impl<A, B, const CHECK: bool> Consistency for Preceded<A, A::Val, B, CHECK>
where A: Consistency, B: Consistency,

Source§

type Val = <B as Consistency>::Val

Source§

impl<A, B, const CHECK: bool> Consistency for Terminated<A, B, B::Val, CHECK>
where A: Consistency, B: Consistency,

Source§

type Val = <A as Consistency>::Val

Source§

impl<A, Pred> Consistency for Refined<A, Pred>
where A: Consistency, Pred: SpecPred<A::Val>,

Source§

type Val = <A as Consistency>::Val

Source§

impl<A, Then> Consistency for AndThen<A, Then>
where A: BytesCombinator + Consistency<Val = Seq<u8>>, Then: Consistency + SpecByteLen<T = Then::Val>,

Source§

type Val = <Then as Consistency>::Val

Source§

impl<A: Consistency, B: Consistency> Consistency for Sum<A, B>

Source§

type Val = Sum<<A as Consistency>::Val, <B as Consistency>::Val>

Source§

impl<A: Consistency, B: Consistency> Consistency for Choice<A, B>

Source§

type Val = Sum<<A as Consistency>::Val, <B as Consistency>::Val>

Source§

impl<C> Consistency for SetOfFmt<C>
where C: Consistency + SpecSerializer<SVal = C::Val>,

Source§

type Val = Seq<<C as Consistency>::Val>

Source§

impl<C> Consistency for OptionalEnd<C>
where C: Consistency,

Source§

impl<C> Consistency for RepeatTillEnd<C>
where C: Consistency,

Source§

type Val = Seq<<C as Consistency>::Val>

Source§

impl<C: Consistency, N: AsLen> Consistency for RepeatN<C, N>

Source§

type Val = Seq<<C as Consistency>::Val>

Source§

impl<C: SpecCombinator> Consistency for BerSequenceFmt<C>

Source§

type Val = <C as SpecByteLen>::T

Source§

impl<C: SpecCombinator> Consistency for BerSequenceOfFmt<C>

Source§

type Val = Seq<<C as SpecByteLen>::T>

Source§

impl<C: SpecCombinator, const LIMIT: usize> Consistency for BerCharStringFmt<C, LIMIT>

Source§

type Val = <C as SpecByteLen>::T

Source§

impl<Content: SpecCombinator, const DER: bool> Consistency for ASN1Fmt<Content, DER>

Source§

type Val = <Content as SpecParser>::PVal

Source§

impl<F> Consistency for ImplicitlyTaggedFmt<F>

Source§

type Val = <F as Consistency>::Val

Source§

impl<Field, Rest, const DER: bool> Consistency for DefaultedFmt<Field, Field::Val, Rest, DER>
where Field: SpecByteLen + Consistency<Val = Field::T>, Rest: SpecByteLen + Consistency<Val = Rest::T>,

Source§

type Val = (<Field as Consistency>::Val, <Rest as Consistency>::Val)

Source§

impl<Head, Tail> Consistency for Implicit<Head, Tail>
where Head: Consistency, Tail: DepCombinator<Key = Head::Val>,

Source§

type Val = <Tail as DepCombinator>::Val

Source§

impl<Inner> Consistency for Const<Inner, Inner::Val>
where Inner: Consistency,

Source§

type Val = <Inner as Consistency>::Val

Source§

impl<Inner, M> Consistency for Mapped<Inner, M>
where Inner: Consistency, M: SpecMapper<In = Inner::Val>,

Source§

type Val = <M as SpecMapper>::Out

Source§

impl<Inner, M> Consistency for TryMap<Inner, M>
where Inner: Consistency, M: SpecMapper<In = Inner::Val>,

Source§

type Val = <M as SpecMapper>::Out

Source§

impl<Inner, M, MRev> Consistency for Mapped<Inner, BiMap<M, MRev>>
where Inner: Consistency, M: SpecMap<Input = Inner::Val>, MRev: SpecMap<Input = M::Output, Output = M::Input>,

Source§

type Val = <M as SpecMap>::Output

Source§

impl<Inner: Consistency + SpecByteLen<T = Inner::Val>, Len: AsLen> Consistency for ExactLen<Inner, Len>

Source§

type Val = <Inner as Consistency>::Val

Source§

impl<Inner: Consistency> Consistency for Cond<Inner>

Source§

type Val = <Inner as Consistency>::Val

Source§

impl<Inner: Consistency> Consistency for Named<Inner>

Source§

type Val = <Inner as Consistency>::Val

Source§

impl<Inner: Consistency> Consistency for Ref<Inner>

Source§

type Val = <Inner as Consistency>::Val

Source§

impl<Len: AsLen> Consistency for Varied<Len>

Source§

type Val = Seq<u8>

Source§

impl<Of, Tg> Consistency for SuffixTagged<Of, Tg, Tg::T>
where Tg: SpecByteLen + Consistency<Val = Tg::T>, Of: Consistency,

Source§

type Val = <Of as Consistency>::Val

Source§

impl<Output, T, Spec, Exec> Consistency for FnSerializer<Output, T, Spec, Exec>
where Output: OutputBuf, T: DeepView + ?Sized, Spec: SpecByteLen<T = T::V> + SpecSerializer<SVal = T::V> + Consistency<Val = T::V>, Exec: Fn(&T, &mut Output),

Source§

type Val = <T as DeepView>::V

Source§

impl<P1, P2> Consistency for Permute2<P1, P2>
where P1: Consistency, P2: Consistency,

Source§

type Val = (<P1 as Consistency>::Val, <P2 as Consistency>::Val)

Source§

impl<Repr, Tuple, Nominal> Consistency for Bits<Repr, Tuple, Nominal>
where Repr: SpecByteLen + Consistency<Val = Repr::T>,

Source§

type Val = Nominal

Source§

impl<SpecP, Cnstcy, Blen> Consistency for ParserSpecs<SpecP, Cnstcy, Blen>
where Blen: SpecByteLen, SpecP: SpecParser<PVal = Blen::T>, Cnstcy: Consistency<Val = Blen::T>,

Source§

type Val = <Blen as SpecByteLen>::T

Source§

impl<T> Consistency for BundledSpecs<T>

Source§

type Val = T

Source§

impl<T> Consistency for PredFnSpec<T>

Source§

type Val = T

Source§

impl<T, C: Consistency, const N: usize> Consistency for Dispatch<T, C, N>

Source§

type Val = <C as Consistency>::Val

Source§

impl<T, Spec, Exec> Consistency for FnByteLen<T, Spec, Exec>
where T: DeepView + ?Sized, Spec: SpecByteLen<T = T::V> + Consistency<Val = T::V>, Exec: Fn(&T) -> usize,

Source§

type Val = <T as DeepView>::V

Source§

impl<T, Spec, Exec> Consistency for FnPrepare<T, Spec, Exec>
where T: DeepView + ?Sized, Spec: SpecByteLen<T = T::V> + Consistency<Val = T::V>, Exec: Fn(&T) -> Result<usize, PreSerializeError>,

Source§

type Val = <T as DeepView>::V

Source§

impl<Tg, Of> Consistency for PrefixTagged<Tg, Tg::T, Of>
where Tg: SpecByteLen + Consistency<Val = Tg::T>, Of: Consistency,

Source§

type Val = <Of as Consistency>::Val

Source§

impl<const DER: bool> Consistency for AnyFmt<DER>

Source§

impl<const DER: bool> Consistency for BitStringFmt<DER>

Source§

impl<const DER: bool> Consistency for BoolFmt<DER>

Source§

impl<const DER: bool> Consistency for GeneralizedTimeFmt<DER>

Source§

impl<const DER: bool> Consistency for LengthFmt<DER>

Source§

impl<const DER: bool> Consistency for NatLengthFmt<DER>

Source§

type Val = nat

Source§

impl<const DER: bool> Consistency for RealFmt<DER>

Source§

type Val = Seq<u8>

Source§

impl<const DER: bool> Consistency for UtcTimeFmt<DER>

Source§

impl<const DET: bool> Consistency for CborHeadFmt<DET>

Source§

impl<const DET: bool, const LIMIT: usize> Consistency for CborFmt<DET, LIMIT>

Source§

impl<const LIMIT: usize> Consistency for BerAnyFmt<LIMIT>

Source§

impl<const LIMIT: usize> Consistency for BerBitStringFmt<LIMIT>

Source§

impl<const LIMIT: usize> Consistency for BerOctetStringFmt<LIMIT>

Source§

type Val = Seq<u8>

Source§

impl<const LIMIT: usize, Body, Param> Consistency for FixWith<LIMIT, Body, Param>
where Body: SpecRecBody, Param: DeepView<V = Body::Param>,

Source§

type Val = <Body as SpecRecBody>::T

Source§

impl<const MINIMAL: bool> Consistency for Base128Fmt<MINIMAL>

Source§

impl<const MINIMAL: bool> Consistency for VarInt<MINIMAL>

Source§

impl<const MINIMAL: bool, const N: usize> Consistency for ULeb128<MINIMAL, N>

Source§

type Val = nat

Source§

impl<const N: usize> Consistency for Fixed<N>

Source§

type Val = Seq<u8>

Source§

impl<const N: usize> Consistency for Const<Fixed<N>, [u8; N]>

Source§

type Val = Seq<u8>

Source§

impl<const N: usize, C: Consistency> Consistency for Array<N, C>

Source§

type Val = Seq<<C as Consistency>::Val>

Source§

impl<const NONDETERMINISTIC: bool, A: Consistency, B: Consistency<Val = A::Val>> Consistency for Alt<A, B, NONDETERMINISTIC>

Source§

type Val = <A as Consistency>::Val