pub struct Eof;Expand description
End-of-file combinator: denotes the “EOF”.
Parsing semantics: succeeds only if the input is empty, producing ().
Implements AdmitsUniqueVal.
§Note
The DPS serialization always replaces the output buffer with the empty sequence, so Eof
should only appear at the end of a format (and the trait system enforces this).
Trait Implementations§
Source§impl AdmitsUniqueVal for Eof
impl AdmitsUniqueVal for Eof
Source§proof fn lemma_unique_consistent_val(&self, v1: Self::Val, v2: Self::Val)
proof fn lemma_unique_consistent_val(&self, v1: Self::Val, v2: Self::Val)
Source§impl Consistency for Eof
impl Consistency for Eof
Source§impl EquivSerializers for Eof
impl EquivSerializers for Eof
Source§impl GoodSerializer for Eof
impl GoodSerializer for Eof
Source§proof fn lemma_serialize_len(&self, v: Self::SVal)
proof fn lemma_serialize_len(&self, v: Self::SVal)
Source§fn serialize_inv(&self) -> bool
fn serialize_inv(&self) -> bool
Source§impl HasAsn1Start for Eof
EOF accepts only the empty input.
impl HasAsn1Start for Eof
EOF accepts only the empty input.
Source§open spec fn asn1_start(&self) -> Asn1StartDomain
open spec fn asn1_start(&self) -> Asn1StartDomain
{ asn1_start_empty() }Source§proof fn lemma_parse_implies_asn1_start(&self, input: Seq<u8>)
proof fn lemma_parse_implies_asn1_start(&self, input: Seq<u8>)
Source§impl MinMaxByteLen for Eof
impl MinMaxByteLen for Eof
Source§impl NonMalleable for Eof
impl NonMalleable for Eof
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§fn nonmal_inv(&self) -> bool
fn nonmal_inv(&self) -> bool
Source§impl Productive for Eof
impl Productive for Eof
Source§open spec fn productive_inv(&self) -> bool
open spec fn productive_inv(&self) -> bool
{ false }Source§proof fn lemma_productive(&self, s: Seq<u8>)
proof fn lemma_productive(&self, s: Seq<u8>)
Source§impl SPRoundTripDps for Eof
impl SPRoundTripDps for Eof
Source§proof fn theorem_serialize_dps_parse_roundtrip(&self, v: Self::T, obuf: Seq<u8>)
proof fn theorem_serialize_dps_parse_roundtrip(&self, v: Self::T, obuf: Seq<u8>)
Source§fn unambiguous(&self) -> bool
fn unambiguous(&self) -> bool
Source§impl SafeParser for Eof
impl SafeParser for Eof
Source§impl<Output: OutputBuf> Serializer<Output, ()> for Eof
impl<Output: OutputBuf> Serializer<Output, ()> for Eof
Source§exec fn serialize_into(&self, _v: &(), _obuf: &mut Output)
exec fn serialize_into(&self, _v: &(), _obuf: &mut Output)
Source§impl SoundParser for Eof
impl SoundParser for Eof
Source§impl SpecByteLen for Eof
impl SpecByteLen for Eof
Source§impl SpecParser for Eof
impl SpecParser for Eof
Source§impl SpecSerializer for Eof
impl SpecSerializer for Eof
Source§impl SpecSerializerDps for Eof
impl SpecSerializerDps for Eof
Source§impl StaticByteLen for Eof
impl StaticByteLen for Eof
Source§open spec fn static_byte_len() -> nat
open spec fn static_byte_len() -> nat
{ ZERO_BYTE_LEN as nat }Source§proof fn lemma_static_len_matches_byte_len(&self, v: Self::T)
proof fn lemma_static_len_matches_byte_len(&self, v: Self::T)
Source§impl ValueByteLen for Eof
impl ValueByteLen for Eof
Source§open spec fn value_byte_len(_v: Self::T) -> nat
open spec fn value_byte_len(_v: Self::T) -> nat
{ ZERO_BYTE_LEN as nat }Source§proof fn lemma_value_len_matches_byte_len(&self, v: Self::T)
proof fn lemma_value_len_matches_byte_len(&self, v: Self::T)
impl Copy for Eof
Auto Trait Implementations§
impl Freeze for Eof
impl RefUnwindSafe for Eof
impl Send for Eof
impl Sync for Eof
impl Unpin for Eof
impl UnsafeUnpin for Eof
impl UnwindSafe for Eof
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, VERUS_SPEC__A> FromSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: From<T>,
impl<T, VERUS_SPEC__A> FromSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: From<T>,
fn obeys_from_spec() -> bool
fn from_spec(v: T) -> VERUS_SPEC__A
§impl<T, VERUS_SPEC__A> IntoSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: Into<T>,
impl<T, VERUS_SPEC__A> IntoSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: Into<T>,
fn obeys_into_spec() -> bool
fn into_spec(self) -> T
§impl<T, U> IntoSpecImpl<U> for Twhere
U: From<T>,
impl<T, U> IntoSpecImpl<U> for Twhere
U: From<T>,
fn obeys_into_spec() -> bool
fn into_spec(self) -> U
Source§impl<C> NonAmbiguous for Cwhere
C: SPRoundTrip,
impl<C> NonAmbiguous for Cwhere
C: SPRoundTrip,
Source§open spec fn nonamb_inv(&self) -> bool
open spec fn nonamb_inv(&self) -> bool
{ self.sp_roundtrip_inv() }Source§proof fn lemma_serialize_injective(
&self,
v1: <C as Consistency>::Val,
v2: <C as Consistency>::Val,
)
proof fn lemma_serialize_injective( &self, v1: <C as Consistency>::Val, v2: <C as Consistency>::Val, )
Source§impl<C> PSRoundTrip for C
impl<C> PSRoundTrip for C
Source§open spec fn ps_roundtrip_inv(&self) -> bool
open spec fn ps_roundtrip_inv(&self) -> bool
{ self.safe_inv() && self.sound_inv() && self.nonmal_inv() && self.sp_roundtrip_inv() }Source§proof fn theorem_parse_serialize_roundtrip(&self, ibuf: Seq<u8>)
proof fn theorem_parse_serialize_roundtrip(&self, ibuf: Seq<u8>)
Source§impl<C> SPRoundTrip for C
impl<C> SPRoundTrip for C
Source§open spec fn sp_roundtrip_inv(&self) -> bool
open spec fn sp_roundtrip_inv(&self) -> bool
{ self.serialize_inv() && self.equiv_inv() && self.unambiguous() }