Skip to main content

PartialTranscript

Struct PartialTranscript 

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

A partial transcript.

A partial transcript is a transcript which may not have all the data authenticated.

Only authenticated data is stored: the bytes, and the set of ranges they occupy. The total length of each direction is also carried, but when the transcript comes from a peer it is untrusted — it is only ever compared against a caller-provided length, never used to size an allocation.

Implementations§

Source§

impl PartialTranscript

Source

pub fn sent_authed(&self) -> &RangeSet<usize>

Returns the index of sent data which have been authenticated.

Source

pub fn received_authed(&self) -> &RangeSet<usize>

Returns the index of received data which have been authenticated.

Source

pub fn len_sent(&self) -> usize

Returns the total length of the sent data.

Source

pub fn len_received(&self) -> usize

Returns the total length of the received data.

Source

pub fn union_transcript(&mut self, other: &PartialTranscript)

Unions the authenticated data of another compressed transcript into this one.

Where both transcripts authenticate the same position, self takes precedence.

§Panics

Panics if the transcripts are not the same length.

Source

pub fn union_subsequence(&mut self, direction: Direction, seq: &Subsequence)

Unions an authenticated subsequence into this transcript.

Where the subsequence overlaps already authenticated data, the subsequence takes precedence.

§Panics

Panics if the subsequence is out of bounds of the transcript.

Source

pub fn sent_unsafe( &self, expected: usize, ) -> Result<Vec<u8>, InvalidTranscriptLength>

Returns the sent data, materialized to expected bytes.

§Warning

Only the positions in sent_authed have been authenticated; every other position is 0.

The allocation is sized by expected, a length the caller trusts (for example the length recorded by the Verifier, or a signed TranscriptLength), never by the length carried by this transcript. Returns an error if expected does not match the length carried by this transcript.

Source

pub fn received_unsafe( &self, expected: usize, ) -> Result<Vec<u8>, InvalidTranscriptLength>

Returns the received data, materialized to expected bytes.

§Warning

Only the positions in received_authed have been authenticated; every other position is 0.

The allocation is sized by expected, a length the caller trusts, never by the length carried by this transcript. Returns an error if expected does not match the length carried by this transcript.

Source§

impl PartialTranscript

Source

pub fn new(sent_len: usize, received_len: usize) -> Self

Creates a new partial transcript initialized to all 0s.

§Arguments
  • sent_len - The length of the sent data.
  • received_len - The length of the received data.
Source

pub fn is_complete(&self) -> bool

Returns whether the transcript is complete.

Source

pub fn contains(&self, direction: Direction, idx: &RangeSet<usize>) -> bool

Returns whether the index is in bounds of the transcript.

Source

pub fn sent_unauthed(&self) -> RangeSet<usize>

Returns the index of sent data which haven’t been authenticated.

Source

pub fn received_unauthed(&self) -> RangeSet<usize>

Returns the index of received data which haven’t been authenticated.

Source

pub fn iter(&self, direction: Direction) -> impl Iterator<Item = u8> + '_

Returns an iterator over the authenticated data in the transcript.

Trait Implementations§

Source§

impl Clone for PartialTranscript

Source§

fn clone(&self) -> Self

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

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

Performs copy-assignment from source. Read more
Source§

impl Debug for PartialTranscript

Source§

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

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

impl<'de> Deserialize<'de> for PartialTranscript

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for PartialTranscript

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl Freeze for PartialTranscript

§

impl RefUnwindSafe for PartialTranscript

§

impl Send for PartialTranscript

§

impl Sync for PartialTranscript

§

impl Unpin for PartialTranscript

§

impl UnsafeUnpin for PartialTranscript

§

impl UnwindSafe for PartialTranscript

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

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

§

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> From<T> for T

§

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
§

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

§

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

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

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

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.
Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more
§

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