snarkvm_ledger_store

Trait InputStorage

Source
pub trait InputStorage<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>>;
    type RecordTagMap: for<'a> Map<'a, Field<N>, Field<N>>;
    type ExternalRecordMap: for<'a> Map<'a, Field<N>, ()>;

Show 22 methods // Required methods fn open<S: Clone + Into<StorageMode>>(storage: S) -> 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_tag_map(&self) -> &Self::RecordTagMap; fn external_record_map(&self) -> &Self::ExternalRecordMap; fn storage_mode(&self) -> &StorageMode; // 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, inputs: &[Input<N>], ) -> Result<()> { ... } fn remove(&self, transition_id: &N::TransitionID) -> Result<()> { ... } fn find_transition_id( &self, input_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<Input<N>>> { ... }
}
Expand description

A trait for transition input storage.

Required Associated Types§

Source

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

The mapping of transition ID to input IDs.

Source

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

The mapping of input 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>>

The mapping of serial number to tag.

Source

type RecordTagMap: for<'a> Map<'a, Field<N>, Field<N>>

The mapping of tag to serial number.

Source

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

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

Required Methods§

Source

fn open<S: Clone + Into<StorageMode>>(storage: S) -> Result<Self>

Initializes the transition input 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_tag_map(&self) -> &Self::RecordTagMap

Returns the record tag map.

Source

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

Returns the external record map.

Source

fn storage_mode(&self) -> &StorageMode

Returns the storage mode.

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, inputs: &[Input<N>], ) -> Result<()>

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

Source

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

Removes the input for the given transition ID.

Source

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

Returns the transition ID that contains the given input ID.

Source

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

Returns the input IDs for the given transition ID.

Source

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

Returns the input for the given transition ID.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§