Preamble

Struct Preamble 

Source
pub struct Preamble {
    pub witnesses: usize,
    pub constraints: usize,
    pub config: Config,
}
Expand description

Metadata information of the CDF file

Fields§

§witnesses: usize

Witnesses count

§constraints: usize

Constraints count

§config: Config

Configuration parameters for encoding and decoding

Implementations§

Source§

impl Preamble

Source

pub const LEN: usize = 17usize

Serialized length

Source

pub const fn new(witnesses: usize, constraints: usize, config: Config) -> Self

Create a new preamble instance

Source

pub fn witness_offset(&self, idx: usize) -> Option<usize>

Witness offset in CDF, from an index

Source

pub fn constraint_offset(&self, idx: usize) -> Option<usize>

Constraint offset in CDF, from an index

Source

pub fn source_cache_offset(&self) -> usize

Cache starting position

Trait Implementations§

Source§

impl Clone for Preamble

Source§

fn clone(&self) -> Preamble

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Preamble

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl DecodableElement for Preamble

Source§

fn try_from_buffer_in_place<'a, 'b>( &'a mut self, ctx: &DecoderContext<'a>, buf: &'b [u8], ) -> Result<()>

Deserialize the type from a given buffer Read more
Source§

fn try_from_buffer<'b>(ctx: &DecoderContext<'_>, buf: &'b [u8]) -> Result<Self>

Create a new instance of the type from the provided buffer
Source§

fn try_decode_in_place<'a, 'b>( &mut self, ctx: &DecoderContext<'a>, buf: &'b [u8], ) -> Result<&'b [u8]>

Write an element from the buffer, and return the remainder bytes Read more
Source§

fn try_decode<'a, 'b>( ctx: &DecoderContext<'a>, buf: &'b [u8], ) -> Result<(Self, &'b [u8])>

Write an element from the buffer, and return the remainder bytes Read more
Source§

fn try_from_reader<R>(ctx: &DecoderContext<'_>, reader: R) -> Result<Self>
where R: Read,

Fetch a new element from a context
Source§

impl Default for Preamble

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Element for Preamble

Source§

fn len(ctx: &Config) -> usize

Serializable length Read more
Source§

fn validate(&self, preamble: &Preamble) -> Result<()>

Perform the internal validations of the associated element
Source§

fn validate_buffer(config: &Config, buffer: &[u8]) -> Result<()>

Assert the buffer is big enough to store the type
Source§

impl EncodableElement for Preamble

Source§

fn to_buffer(&self, ctx: &mut EncoderContext, buf: &mut [u8])

Write the type into the buffer. Read more
Source§

fn to_vec(&self, ctx: &mut EncoderContext) -> Vec<u8>

Serialize the object into a bytes array.
Source§

fn encode<'a>( &self, ctx: &mut EncoderContext, buf: &'a mut [u8], ) -> &'a mut [u8]

Read an element into the buffer, returning the remainder bytes Read more
Source§

fn try_to_writer<W>(&self, writer: W, ctx: &mut EncoderContext) -> Result<usize>
where W: Write,

Send the bytes representation of an element to a writer
Source§

impl PartialEq for Preamble

Source§

fn eq(&self, other: &Preamble) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Preamble

Source§

impl Eq for Preamble

Source§

impl StructuralPartialEq for Preamble

Auto Trait Implementations§

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.

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.

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