Skip to main content

I8

Struct I8 

Source
pub struct I8;
Expand description

Signed 8-bit integer combinator.

Defined as Mapped { inner: Fixed::<1>, mapper: (i8_from_bytes, i8_to_bytes) }.

Trait Implementations§

Source§

impl ByteLen<i8> for I8

Source§

exec fn length(&self, _v: &i8) -> len : usize

Source§

fn exec_inv(&self) -> bool

Source§

impl Clone for I8

Source§

fn clone(&self) -> I8

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Consistency for I8

Source§

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

{ true }
Source§

type Val = i8

The type of values whose consistency is being checked.
Source§

impl Copy for I8

Source§

impl EquivSerializers for I8

Source§

impl EquivSerializersGeneral for I8

Source§

impl GoodSerializer for I8

Source§

impl LeafNonMalleable for I8

Source§

proof fn nonmal_leaf_inv(&self)

Source§

impl MinMaxByteLen for I8

Source§

open spec fn min(&self) -> nat

{ U8_BYTE_LEN as nat }
Source§

open spec fn max(&self) -> nat

{ U8_BYTE_LEN as nat }
Source§

proof fn lemma_min_max_byte_len(&self, v: Self::T)

Source§

impl NoLookAhead for I8

Source§

impl NonMalleable for I8

Source§

proof fn lemma_parse_non_malleable(&self, buf1: Seq<u8>, buf2: Seq<u8>)

Source§

fn nonmal_inv(&self) -> bool

Source§

impl NonTailFmt for I8

Source§

proof fn lemma_serialize_dps_prepend(&self, v: i8, obuf: Seq<u8>)

Source§

proof fn lemma_serialize_dps_len(&self, v: i8, obuf: Seq<u8>)

Source§

fn serialize_dps_inv(&self) -> bool

Source§

impl Parser<&[u8]> for I8

Source§

exec fn min_byte_len(&self) -> usize

Source§

open spec fn exec_inv(&self) -> bool

{ true }
Source§

exec fn parse(&self, ibuf: &&[u8]) -> PResult<Self::PT>

Source§

type PT = i8

Executable value returned by this parser.
Source§

impl Prepare<i8> for I8

Source§

exec fn prepare(&self, _v: &i8) -> checked : Result<usize, PreSerializeError>

Source§

fn exec_inv(&self) -> bool

Source§

impl Productive for I8

Source§

impl SPRoundTripDps for I8

Source§

impl SafeParser for I8

Source§

proof fn lemma_parse_safe(&self, ibuf: Seq<u8>)

Source§

fn safe_inv(&self) -> bool

Source§

impl<Output: OutputBuf> Serializer<Output, i8> for I8

Source§

exec fn serialize_into(&self, v: &i8, obuf: &mut Output)

Source§

fn exec_inv(&self) -> bool

Source§

impl SoundParser for I8

Source§

impl SpecByteLen for I8

Source§

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

{ U8_BYTE_LEN as nat }
Source§

type T = i8

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

impl SpecParser for I8

Source§

open spec fn spec_parse(&self, ibuf: Seq<u8>) -> Option<(int, i8)>

{ i8_fmt().spec_parse(ibuf) }
Source§

type PVal = i8

The type of parsed values.
Source§

impl SpecSerializer for I8

Source§

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

{ i8_fmt().spec_serialize(v) }
Source§

type SVal = i8

The type of values to be serialized.
Source§

impl SpecSerializerDps for I8

Source§

open spec fn spec_serialize_dps(&self, v: i8, obuf: Seq<u8>) -> Seq<u8>

{ i8_fmt().spec_serialize_dps(v, obuf) }
Source§

type SValue = i8

The type of values to be serialized.
Source§

impl StaticByteLen for I8

Source§

open spec fn static_byte_len() -> nat

{ U8_BYTE_LEN as nat }
Source§

proof fn lemma_static_len_matches_byte_len(&self, v: Self::T)

Source§

impl ValueByteLen for I8

Source§

open spec fn value_byte_len(_v: Self::T) -> nat

{ U8_BYTE_LEN as nat }
Source§

proof fn lemma_value_len_matches_byte_len(&self, v: Self::T)

Auto Trait Implementations§

§

impl Freeze for I8

§

impl RefUnwindSafe for I8

§

impl Send for I8

§

impl Sync for I8

§

impl Unpin for I8

§

impl UnsafeUnpin for I8

§

impl UnwindSafe for I8

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, VERUS_SPEC__A> FromSpec<T> for VERUS_SPEC__A
where VERUS_SPEC__A: From<T>,

§

fn obeys_from_spec() -> bool

§

fn from_spec(v: T) -> VERUS_SPEC__A

§

impl<T> FromSpecImpl<T> for T

§

fn obeys_from_spec() -> bool

§

fn from_spec(v: T) -> T

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T, VERUS_SPEC__A> IntoSpec<T> for VERUS_SPEC__A
where VERUS_SPEC__A: Into<T>,

§

fn obeys_into_spec() -> bool

§

fn into_spec(self) -> T

§

impl<T, U> IntoSpecImpl<U> for T
where U: From<T>,

§

fn obeys_into_spec() -> bool

§

fn into_spec(self) -> U

Source§

impl<Fmt> Leaf for Fmt
where Fmt: LeafNonMalleable,

Source§

proof fn leaf_inv(&self)

Source§

impl<C> NonAmbiguous for C
where C: SPRoundTrip,

Source§

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, )

Source§

fn corollary_serialize_injective_contrapositive( &self, v1: Self::Val, v2: Self::Val, )

Source§

impl<C> PSRoundTrip for C

Source§

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>)

Source§

fn corollary_parse_non_malleable(&self, buf1: Seq<u8>, buf2: Seq<u8>)

Source§

impl<C> SPRoundTrip for C

Source§

open spec fn sp_roundtrip_inv(&self) -> bool

{ self.serialize_inv() && self.equiv_inv() && self.unambiguous() }
Source§

proof fn theorem_serialize_parse_roundtrip(&self, v: <C as SpecByteLen>::T)

§

impl<A> SpecEq<&A> for A
where A: ?Sized,

§

impl<A> SpecEq<&mut A> for A
where A: ?Sized,

§

impl<A> SpecEq<A> for A
where A: ?Sized,

§

impl<A> SpecEq<Ghost<A>> for A

§

impl<A> SpecEq<Tracked<A>> for A

Source§

impl<Body> StrictCombinator for Body

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, VERUS_SPEC__A> TryFromSpec<T> for VERUS_SPEC__A
where VERUS_SPEC__A: TryFrom<T>,

§

fn obeys_try_from_spec() -> bool

§

fn try_from_spec( v: T, ) -> Result<VERUS_SPEC__A, <VERUS_SPEC__A as TryFrom<T>>::Error>

Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T, VERUS_SPEC__A> TryIntoSpec<T> for VERUS_SPEC__A
where VERUS_SPEC__A: TryInto<T>,

§

fn obeys_try_into_spec() -> bool

§

fn try_into_spec(self) -> Result<T, <VERUS_SPEC__A as TryInto<T>>::Error>

§

impl<T, U> TryIntoSpecImpl<U> for T
where U: TryFrom<T>,

§

fn obeys_try_into_spec() -> bool

§

fn try_into_spec(self) -> Result<U, <U as TryFrom<T>>::Error>