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<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_nonce_map(&self) -> &Self::RecordNonceMap;
fn external_record_map(&self) -> &Self::ExternalRecordMap;
fn future_map(&self) -> &Self::FutureMap;
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,
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§
Sourcetype IDMap: for<'a> Map<'a, N::TransitionID, Vec<Field<N>>>
type IDMap: for<'a> Map<'a, N::TransitionID, Vec<Field<N>>>
The mapping of transition ID
to output IDs
.
Sourcetype ReverseIDMap: for<'a> Map<'a, Field<N>, N::TransitionID>
type ReverseIDMap: for<'a> Map<'a, Field<N>, N::TransitionID>
The mapping of output ID
to transition ID
.
Sourcetype ConstantMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>
type ConstantMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>
The mapping of plaintext hash
to (optional) plaintext
.
Sourcetype PublicMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>
type PublicMap: for<'a> Map<'a, Field<N>, Option<Plaintext<N>>>
The mapping of plaintext hash
to (optional) plaintext
.
Sourcetype PrivateMap: for<'a> Map<'a, Field<N>, Option<Ciphertext<N>>>
type PrivateMap: for<'a> Map<'a, Field<N>, Option<Ciphertext<N>>>
The mapping of ciphertext hash
to (optional) ciphertext
.
Sourcetype RecordMap: for<'a> Map<'a, Field<N>, (Field<N>, Option<Record<N, Ciphertext<N>>>)>
type RecordMap: for<'a> Map<'a, Field<N>, (Field<N>, Option<Record<N, Ciphertext<N>>>)>
The mapping of commitment
to (checksum, (optional) record ciphertext)
.
Sourcetype RecordNonceMap: for<'a> Map<'a, Group<N>, Field<N>>
type RecordNonceMap: for<'a> Map<'a, Group<N>, Field<N>>
The mapping of record nonce
to commitment
.
Sourcetype ExternalRecordMap: for<'a> Map<'a, Field<N>, ()>
type ExternalRecordMap: for<'a> Map<'a, Field<N>, ()>
The mapping of external hash
to ()
. Note: This is not the record commitment.
Required Methods§
Sourcefn open<S: Clone + Into<StorageMode>>(storage: S) -> Result<Self>
fn open<S: Clone + Into<StorageMode>>(storage: S) -> Result<Self>
Initializes the transition output storage.
Sourcefn reverse_id_map(&self) -> &Self::ReverseIDMap
fn reverse_id_map(&self) -> &Self::ReverseIDMap
Returns the reverse ID map.
Sourcefn constant_map(&self) -> &Self::ConstantMap
fn constant_map(&self) -> &Self::ConstantMap
Returns the constant map.
Sourcefn public_map(&self) -> &Self::PublicMap
fn public_map(&self) -> &Self::PublicMap
Returns the public map.
Sourcefn private_map(&self) -> &Self::PrivateMap
fn private_map(&self) -> &Self::PrivateMap
Returns the private map.
Sourcefn record_map(&self) -> &Self::RecordMap
fn record_map(&self) -> &Self::RecordMap
Returns the record map.
Sourcefn record_nonce_map(&self) -> &Self::RecordNonceMap
fn record_nonce_map(&self) -> &Self::RecordNonceMap
Returns the record nonce map.
Sourcefn external_record_map(&self) -> &Self::ExternalRecordMap
fn external_record_map(&self) -> &Self::ExternalRecordMap
Returns the external record map.
Sourcefn future_map(&self) -> &Self::FutureMap
fn future_map(&self) -> &Self::FutureMap
Returns the future map.
Sourcefn storage_mode(&self) -> &StorageMode
fn storage_mode(&self) -> &StorageMode
Returns the storage mode.
Provided Methods§
Sourcefn start_atomic(&self)
fn start_atomic(&self)
Starts an atomic batch write operation.
Sourcefn is_atomic_in_progress(&self) -> bool
fn is_atomic_in_progress(&self) -> bool
Checks if an atomic batch is in progress.
Sourcefn atomic_checkpoint(&self)
fn atomic_checkpoint(&self)
Checkpoints the atomic batch.
Sourcefn clear_latest_checkpoint(&self)
fn clear_latest_checkpoint(&self)
Clears the latest atomic batch checkpoint.
Sourcefn atomic_rewind(&self)
fn atomic_rewind(&self)
Rewinds the atomic batch to the previous checkpoint.
Sourcefn abort_atomic(&self)
fn abort_atomic(&self)
Aborts an atomic batch write operation.
Sourcefn finish_atomic(&self) -> Result<()>
fn finish_atomic(&self) -> Result<()>
Finishes an atomic batch write operation.
Sourcefn insert(
&self,
transition_id: N::TransitionID,
outputs: &[Output<N>],
) -> Result<()>
fn insert( &self, transition_id: N::TransitionID, outputs: &[Output<N>], ) -> Result<()>
Stores the given (transition ID, output)
pair into storage.
Sourcefn remove(&self, transition_id: &N::TransitionID) -> Result<()>
fn remove(&self, transition_id: &N::TransitionID) -> Result<()>
Removes the output for the given transition ID
.
Sourcefn find_transition_id(
&self,
output_id: &Field<N>,
) -> Result<Option<N::TransitionID>>
fn find_transition_id( &self, output_id: &Field<N>, ) -> Result<Option<N::TransitionID>>
Returns the transition ID that contains the given output 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.