pub trait OutputStorage<N: Network>: Clone + Send + Sync {
    type IDMap: for<'a> Map<'a, N::TransitionID, Vec<Field<N>>>;
    type ReverseIDMap: for<'a> Map<'a, Field<N>, N::TransitionID>;
    type ConstantMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>;
    type PublicMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>;
    type PrivateMap: for<'a> Map<'a, Field<N>, Option<Ciphertext<N>>>;
    type RecordMap: for<'a> Map<'a, Field<N>, (Field<N>, Option<Record<N, Ciphertext<N>>>)>;
    type RecordNonceMap: for<'a> Map<'a, Group<N>, Field<N>>;
    type ExternalRecordMap: for<'a> Map<'a, Field<N>, ()>;
    type FutureMap: for<'a> Map<'a, Field<N>, Option<Future<N>>>;

Show 23 methods // Required methods fn open(dev: Option<u16>) -> Result<Self>; fn id_map(&self) -> &Self::IDMap; fn reverse_id_map(&self) -> &Self::ReverseIDMap; fn constant_map(&self) -> &Self::ConstantMap; fn public_map(&self) -> &Self::PublicMap; fn private_map(&self) -> &Self::PrivateMap; fn record_map(&self) -> &Self::RecordMap; fn record_nonce_map(&self) -> &Self::RecordNonceMap; fn external_record_map(&self) -> &Self::ExternalRecordMap; fn future_map(&self) -> &Self::FutureMap; fn dev(&self) -> Option<u16>; // Provided methods fn start_atomic(&self) { ... } fn is_atomic_in_progress(&self) -> bool { ... } fn atomic_checkpoint(&self) { ... } fn clear_latest_checkpoint(&self) { ... } fn atomic_rewind(&self) { ... } fn abort_atomic(&self) { ... } fn finish_atomic(&self) -> Result<()> { ... } fn insert( &self, transition_id: N::TransitionID, outputs: &[Output<N>] ) -> Result<()> { ... } fn remove(&self, transition_id: &N::TransitionID) -> Result<()> { ... } fn find_transition_id( &self, output_id: &Field<N> ) -> Result<Option<N::TransitionID>> { ... } fn get_ids(&self, transition_id: &N::TransitionID) -> Result<Vec<Field<N>>> { ... } fn get(&self, transition_id: &N::TransitionID) -> Result<Vec<Output<N>>> { ... }
}
Expand description

A trait for transition output storage.

Required Associated Types§

source

type IDMap: for<'a> Map<'a, N::TransitionID, Vec<Field<N>>>

The mapping of transition ID to output IDs.

source

type ReverseIDMap: for<'a> Map<'a, Field<N>, N::TransitionID>

The mapping of output ID to transition ID.

source

type ConstantMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>

The mapping of plaintext hash to (optional) plaintext.

source

type PublicMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>

The mapping of plaintext hash to (optional) plaintext.

source

type PrivateMap: for<'a> Map<'a, Field<N>, Option<Ciphertext<N>>>

The mapping of ciphertext hash to (optional) ciphertext.

source

type RecordMap: for<'a> Map<'a, Field<N>, (Field<N>, Option<Record<N, Ciphertext<N>>>)>

The mapping of commitment to (checksum, (optional) record ciphertext).

source

type RecordNonceMap: for<'a> Map<'a, Group<N>, Field<N>>

The mapping of record nonce to commitment.

source

type ExternalRecordMap: for<'a> Map<'a, Field<N>, ()>

The mapping of external hash to (). Note: This is not the record commitment.

source

type FutureMap: for<'a> Map<'a, Field<N>, Option<Future<N>>>

The mapping of future hash to (optional) future.

Required Methods§

source

fn open(dev: Option<u16>) -> Result<Self>

Initializes the transition output storage.

source

fn id_map(&self) -> &Self::IDMap

Returns the ID map.

source

fn reverse_id_map(&self) -> &Self::ReverseIDMap

Returns the reverse ID map.

source

fn constant_map(&self) -> &Self::ConstantMap

Returns the constant map.

source

fn public_map(&self) -> &Self::PublicMap

Returns the public map.

source

fn private_map(&self) -> &Self::PrivateMap

Returns the private map.

source

fn record_map(&self) -> &Self::RecordMap

Returns the record map.

source

fn record_nonce_map(&self) -> &Self::RecordNonceMap

Returns the record nonce map.

source

fn external_record_map(&self) -> &Self::ExternalRecordMap

Returns the external record map.

source

fn future_map(&self) -> &Self::FutureMap

Returns the future map.

source

fn dev(&self) -> Option<u16>

Returns the optional development ID.

Provided Methods§

source

fn start_atomic(&self)

Starts an atomic batch write operation.

source

fn is_atomic_in_progress(&self) -> bool

Checks if an atomic batch is in progress.

source

fn atomic_checkpoint(&self)

Checkpoints the atomic batch.

source

fn clear_latest_checkpoint(&self)

Clears the latest atomic batch checkpoint.

source

fn atomic_rewind(&self)

Rewinds the atomic batch to the previous checkpoint.

source

fn abort_atomic(&self)

Aborts an atomic batch write operation.

source

fn finish_atomic(&self) -> Result<()>

Finishes an atomic batch write operation.

source

fn insert( &self, transition_id: N::TransitionID, outputs: &[Output<N>] ) -> Result<()>

Stores the given (transition ID, output) pair into storage.

source

fn remove(&self, transition_id: &N::TransitionID) -> Result<()>

Removes the output for the given transition ID.

source

fn find_transition_id( &self, output_id: &Field<N> ) -> Result<Option<N::TransitionID>>

Returns the transition ID that contains the given output ID.

source

fn get_ids(&self, transition_id: &N::TransitionID) -> Result<Vec<Field<N>>>

Returns the output IDs for the given transition ID.

source

fn get(&self, transition_id: &N::TransitionID) -> Result<Vec<Output<N>>>

Returns the output for the given transition ID.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<N: Network> OutputStorage<N> for OutputMemory<N>

§

type IDMap = MemoryMap<<N as Network>::TransitionID, Vec<Field<N>>>

§

type ReverseIDMap = MemoryMap<Field<N>, <N as Network>::TransitionID>

§

type ConstantMap = MemoryMap<Field<N>, Option<Plaintext<N>>>

§

type PublicMap = MemoryMap<Field<N>, Option<Plaintext<N>>>

§

type PrivateMap = MemoryMap<Field<N>, Option<Ciphertext<N>>>

§

type RecordMap = MemoryMap<Field<N>, (Field<N>, Option<Record<N, Ciphertext<N>>>)>

§

type RecordNonceMap = MemoryMap<Group<N>, Field<N>>

§

type ExternalRecordMap = MemoryMap<Field<N>, ()>

§

type FutureMap = MemoryMap<Field<N>, Option<Future<N>>>