Skip to main content

SerializerSpecs

Type Alias SerializerSpecs 

Source
pub type SerializerSpecs<SpecS, Blen> = (SpecS, Blen);
Expand description

A bundled non-DPS serializer: pairs a SerializerFnSpec with a ByteLenFnSpec.

Trait Implementations§

Source§

impl<SpecS, Blen> GoodSerializer for SerializerSpecs<SpecS, Blen>
where Blen: SpecByteLen, SpecS: SpecSerializer<SVal = Blen::T>,

Source§

open spec fn serialize_inv(&self) -> bool

{
    let (s, b) = *self;
    let (s_fn, b_fn) = (|v| s.spec_serialize(v), |v| b.byte_len(v));
    good_serializer_fn(s_fn, b_fn)
}
Source§

proof fn lemma_serialize_len(&self, v: Self::SVal)

Source§

impl<SpecS, Blen> SpecByteLen for SerializerSpecs<SpecS, Blen>
where Blen: SpecByteLen, SpecS: SpecSerializer<SVal = Blen::T>,

Source§

open spec fn byte_len(&self, v: Self::T) -> nat

{ (self.1).byte_len(v) }
Source§

type T = <Blen as SpecByteLen>::T

The type of values whose byte length is being computed.
Source§

impl<SpecS, Blen> SpecSerializer for SerializerSpecs<SpecS, Blen>
where Blen: SpecByteLen, SpecS: SpecSerializer<SVal = Blen::T>,

Source§

open spec fn spec_serialize(&self, v: Self::SVal) -> Seq<u8>

{ (self.0).spec_serialize(v) }
Source§

type SVal = <Blen as SpecByteLen>::T

The type of values to be serialized.