pub type BundledSpecs<T> = (PredFnSpec<T>, ByteLenFnSpec<T>, ParserFnSpec<T>, SerializerFnSpec<T>, SerializerDPSFnSpec<T>);Trait Implementations§
Source§impl<T> Consistency for BundledSpecs<T>
impl<T> Consistency for BundledSpecs<T>
Source§impl<T> EquivSerializers for BundledSpecs<T>
impl<T> EquivSerializers for BundledSpecs<T>
Source§impl<T> EquivSerializersGeneral for BundledSpecs<T>
impl<T> EquivSerializersGeneral for BundledSpecs<T>
Source§open spec fn equiv_general_inv(&self) -> bool
open spec fn equiv_general_inv(&self) -> bool
{
let (_, _, _, s, s_dps) = *self;
forall |v: T, obuf: Seq<u8>| #[trigger] (s_dps)(v, obuf) == (s)(v) + obuf
}Source§proof fn lemma_serialize_equiv(&self, v: Self::SVal, obuf: Seq<u8>)
proof fn lemma_serialize_equiv(&self, v: Self::SVal, obuf: Seq<u8>)
Source§impl<T> GoodSerializer for BundledSpecs<T>
impl<T> GoodSerializer for BundledSpecs<T>
Source§open spec fn serialize_inv(&self) -> bool
open spec fn serialize_inv(&self) -> bool
{ serializer_specs(*self).serialize_inv() }Source§proof fn lemma_serialize_len(&self, v: Self::SVal)
proof fn lemma_serialize_len(&self, v: Self::SVal)
Source§impl<T> NoLookAhead for BundledSpecs<T>
impl<T> NoLookAhead for BundledSpecs<T>
Source§open spec fn no_lookahead_inv(&self) -> bool
open spec fn no_lookahead_inv(&self) -> bool
{
let (_, _, p, _, _) = *self;
no_lookahead_parser(p)
}Source§proof fn lemma_no_lookahead(&self, i1: Seq<u8>, i2: Seq<u8>)
proof fn lemma_no_lookahead(&self, i1: Seq<u8>, i2: Seq<u8>)
Source§impl<T> NonMalleable for BundledSpecs<T>
impl<T> NonMalleable for BundledSpecs<T>
Source§open spec fn nonmal_inv(&self) -> bool
open spec fn nonmal_inv(&self) -> bool
{ parser_specs(*self).nonmal_inv() }Source§proof fn lemma_parse_non_malleable(&self, buf1: Seq<u8>, buf2: Seq<u8>)
proof fn lemma_parse_non_malleable(&self, buf1: Seq<u8>, buf2: Seq<u8>)
Source§impl<T> NonTailFmt for BundledSpecs<T>
impl<T> NonTailFmt for BundledSpecs<T>
Source§open spec fn serialize_dps_inv(&self) -> bool
open spec fn serialize_dps_inv(&self) -> bool
{
let (_, b, _, _, s_dps) = *self;
non_tail_fmt_dps(s_dps, b)
}Source§proof fn lemma_serialize_dps_prepend(&self, v: Self::SValue, obuf: Seq<u8>)
proof fn lemma_serialize_dps_prepend(&self, v: Self::SValue, obuf: Seq<u8>)
Source§proof fn lemma_serialize_dps_len(&self, v: Self::SValue, obuf: Seq<u8>)
proof fn lemma_serialize_dps_len(&self, v: Self::SValue, obuf: Seq<u8>)
Source§impl<T> Productive for BundledSpecs<T>
impl<T> Productive for BundledSpecs<T>
Source§open spec fn productive_inv(&self) -> bool
open spec fn productive_inv(&self) -> bool
{ parser_specs(*self).productive_inv() }Source§proof fn lemma_productive(&self, ibuf: Seq<u8>)
proof fn lemma_productive(&self, ibuf: Seq<u8>)
Source§impl<T> SPRoundTripDps for BundledSpecs<T>
impl<T> SPRoundTripDps for BundledSpecs<T>
Source§open spec fn unambiguous(&self) -> bool
open spec fn unambiguous(&self) -> bool
{
let (c, b, p, _, s_dps) = *self;
sp_roundtrip_dps(p, c, b, s_dps)
}