Skip to main content

DigestMemo

Struct DigestMemo 

Source
pub struct DigestMemo<'a, P: Digest<'a>> { /* private fields */ }
Expand description

Immutable completed outputs, sorted by the selected provider’s full identity.

Implementations§

Source§

impl<'a, P: Digest<'a>> DigestMemo<'a, P>

Completes another input with the original request’s resolved identity.

For CMS signed attributes, feed their original retagged ranges here; their output is distinct from the payload output used by message-digest. No resolver, Identity clone, state reconstruction or payload replay is performed. An absent ordinal does not call the source or provider. field/at locate the caller’s enclosing original input structure.

Source

pub fn len(&self) -> usize

Number of unique finalized outputs.

Source

pub fn is_empty(&self) -> bool

Whether no completed output is held.

Source

pub fn request_count(&self) -> usize

Number of original requests, including identities that shared a state.

Source

pub fn for_request<W: Work>( &self, ordinal: usize, execution: &W, ) -> DigestResult<Option<&DigestOutput<'a, P>>, P::Error>

The already finalized output for an original request ordinal.

This constant-work link avoids resolving an algorithm again or cloning its identity/state merely to find a shared output. Out-of-range ordinals mean absence only after current-operation admission.

Source

pub fn find<W: Work>( &self, identity: &P::Identity, execution: &W, ) -> DigestResult<Option<&DigestOutput<'a, P>>, P::Error>

Looks up a full resolved identity in the current execution account.

Storage remains on its original account. No state/output clone, new hash or finalization is performed. A resource refusal cannot become absence.

Auto Trait Implementations§

§

impl<'a, P> !Freeze for DigestMemo<'a, P>

§

impl<'a, P> RefUnwindSafe for DigestMemo<'a, P>
where &'a P: RefUnwindSafe, OwnedVec<Finalized<'a, P, <P as Digest<'a>>::Identity, <P as Digest<'a>>::Output>>: RefUnwindSafe,

§

impl<'a, P> Send for DigestMemo<'a, P>
where &'a P: Send, OwnedVec<Finalized<'a, P, <P as Digest<'a>>::Identity, <P as Digest<'a>>::Output>>: Send,

§

impl<'a, P> Sync for DigestMemo<'a, P>
where &'a P: Sync, OwnedVec<Finalized<'a, P, <P as Digest<'a>>::Identity, <P as Digest<'a>>::Output>>: Sync,

§

impl<'a, P> Unpin for DigestMemo<'a, P>
where &'a P: Unpin, OwnedVec<Finalized<'a, P, <P as Digest<'a>>::Identity, <P as Digest<'a>>::Output>>: Unpin,

§

impl<'a, P> UnsafeUnpin for DigestMemo<'a, P>
where &'a P: UnsafeUnpin, OwnedVec<Finalized<'a, P, <P as Digest<'a>>::Identity, <P as Digest<'a>>::Output>>: UnsafeUnpin,

§

impl<'a, P> UnwindSafe for DigestMemo<'a, P>
where &'a P: UnwindSafe, OwnedVec<Finalized<'a, P, <P as Digest<'a>>::Identity, <P as Digest<'a>>::Output>>: UnwindSafe,

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.

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

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

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.