pub trait EscrowDatabase: Send + Sync {
type EscrowDatabaseType;
type LogDatabaseType;
type Error;
type EventIter: Iterator<Item = SignedEventMessage>;
// Required methods
fn new(
escrow: Arc<dyn SequencedEventDatabase<DigestIter = Box<dyn Iterator<Item = SelfAddressingIdentifier>>, Error = Self::Error, DatabaseType = Self::EscrowDatabaseType>>,
log: Arc<Self::LogDatabaseType>,
) -> Self
where Self: Sized;
fn save_digest(
&self,
id: &IdentifierPrefix,
sn: u64,
event_digest: &SelfAddressingIdentifier,
) -> Result<(), Self::Error>;
fn insert(&self, event: &SignedEventMessage) -> Result<(), Self::Error>;
fn insert_key_value(
&self,
id: &IdentifierPrefix,
sn: u64,
event: &SignedEventMessage,
) -> Result<(), Self::Error>;
fn get(
&self,
identifier: &IdentifierPrefix,
sn: u64,
) -> Result<Self::EventIter, Self::Error>;
fn get_from_sn(
&self,
identifier: &IdentifierPrefix,
sn: u64,
) -> Result<Self::EventIter, Self::Error>;
fn remove(&self, event: &TypedEvent<EventTypeTag, KeyEvent>);
fn contains(
&self,
id: &IdentifierPrefix,
sn: u64,
digest: &SelfAddressingIdentifier,
) -> Result<bool, Self::Error>;
}Required Associated Types§
type EscrowDatabaseType
type LogDatabaseType
type Error
type EventIter: Iterator<Item = SignedEventMessage>
Required Methods§
fn new(
escrow: Arc<dyn SequencedEventDatabase<DigestIter = Box<dyn Iterator<Item = SelfAddressingIdentifier>>, Error = Self::Error, DatabaseType = Self::EscrowDatabaseType>>,
log: Arc<Self::LogDatabaseType>,
) -> Selfwhere
Self: Sized,
fn save_digest( &self, id: &IdentifierPrefix, sn: u64, event_digest: &SelfAddressingIdentifier, ) -> Result<(), Self::Error>
fn insert(&self, event: &SignedEventMessage) -> Result<(), Self::Error>
fn insert_key_value( &self, id: &IdentifierPrefix, sn: u64, event: &SignedEventMessage, ) -> Result<(), Self::Error>
fn get( &self, identifier: &IdentifierPrefix, sn: u64, ) -> Result<Self::EventIter, Self::Error>
fn get_from_sn( &self, identifier: &IdentifierPrefix, sn: u64, ) -> Result<Self::EventIter, Self::Error>
fn remove(&self, event: &TypedEvent<EventTypeTag, KeyEvent>)
fn contains( &self, id: &IdentifierPrefix, sn: u64, digest: &SelfAddressingIdentifier, ) -> Result<bool, Self::Error>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".