Skip to main content

StreamObjectLayout

Struct StreamObjectLayout 

Source
pub struct StreamObjectLayout { /* private fields */ }
Expand description

Delimits sealed stream chunks without buffering the object. The caller reserves the final 64 bytes for the whole-object signature. Acceptance also requires that signature and the plaintext decoder’s end-marker check.

Implementations§

Source§

impl StreamObjectLayout

Source

pub fn new() -> Self

Start the stream’s section 0 at chunk index 0.

Source

pub fn index(&self) -> u64

The index to authenticate when sealing or opening the next chunk.

Source

pub fn chunk_length(&self, prefix: &[u8]) -> Result<usize, Error>

Bound a length prefix before fetching or allocating its chunk.

Source

pub fn encode_chunk(&mut self, bytes: &[u8]) -> Result<Vec<u8>, Error>

Encode one sealed chunk, checking the canonical chunk partition.

Source

pub fn decode_chunk<'a>(&mut self, piece: &'a [u8]) -> Result<&'a [u8], Error>

Read a complete length-prefixed chunk without copying its sealed bytes.

Source

pub fn read_signature(self, bytes: &[u8]) -> Result<Signature, Error>

Consume the layout at its final signature, requiring at least one chunk. The caller verifies it against the digest of every preceding object byte, including the prefix signature, before applying any plaintext.

Trait Implementations§

Source§

impl Default for StreamObjectLayout

Source§

fn default() -> Self

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

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> NoneValue for T
where T: Default,

§

type NoneType = T

§

fn null_value() -> T

The none-equivalent value.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,