pub struct DatabaseEventLog<T, E>where
T: Default + Encodable + Decodable + Send + Sync,
E: Error + Debug + From<Error> + From<Error> + From<Error> + Send + Sync + 'static,{ /* private fields */ }Expand description
Database event log.
Implementations§
Source§impl<T, E> DatabaseEventLog<T, E>
impl<T, E> DatabaseEventLog<T, E>
Sourcepub fn with_new_client(
&self,
client: Client,
owner: Option<EventLogOwner>,
) -> Self
pub fn with_new_client( &self, client: Client, owner: Option<EventLogOwner>, ) -> Self
Create a copy of this event log using a fresh commit tree and a different client.
Typically used to create a clone using a temporary in-memory database.
Source§impl<E> DatabaseEventLog<AccountEvent, E>
impl<E> DatabaseEventLog<AccountEvent, E>
Sourcepub async fn new_account(
client: Client,
account_id: AccountId,
) -> Result<Self, E>
pub async fn new_account( client: Client, account_id: AccountId, ) -> Result<Self, E>
Create a new account event log.
Source§impl<E> DatabaseEventLog<WriteEvent, E>
impl<E> DatabaseEventLog<WriteEvent, E>
Source§impl<E> DatabaseEventLog<DeviceEvent, E>
impl<E> DatabaseEventLog<DeviceEvent, E>
Sourcepub async fn new_device(
client: Client,
account_id: AccountId,
) -> Result<Self, E>
pub async fn new_device( client: Client, account_id: AccountId, ) -> Result<Self, E>
Create a new device event log.
Trait Implementations§
Source§impl<T, E> EventLog<T> for DatabaseEventLog<T, E>
impl<T, E> EventLog<T> for DatabaseEventLog<T, E>
Source§fn record_stream<'life0, 'async_trait>(
&'life0 self,
reverse: bool,
) -> Pin<Box<dyn Future<Output = BoxStream<'async_trait, Result<EventRecord, Self::Error>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn record_stream<'life0, 'async_trait>(
&'life0 self,
reverse: bool,
) -> Pin<Box<dyn Future<Output = BoxStream<'async_trait, Result<EventRecord, Self::Error>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stream of event records. Read more
Source§fn event_stream<'life0, 'async_trait>(
&'life0 self,
reverse: bool,
) -> Pin<Box<dyn Future<Output = BoxStream<'async_trait, Result<(EventRecord, T), Self::Error>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn event_stream<'life0, 'async_trait>(
&'life0 self,
reverse: bool,
) -> Pin<Box<dyn Future<Output = BoxStream<'async_trait, Result<(EventRecord, T), Self::Error>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stream of event records and decoded events. Read more
Source§fn diff_checked<'life0, 'async_trait>(
&'life0 self,
commit: Option<CommitHash>,
checkpoint: CommitProof,
) -> Pin<Box<dyn Future<Output = Result<Diff<T>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn diff_checked<'life0, 'async_trait>(
&'life0 self,
commit: Option<CommitHash>,
checkpoint: CommitProof,
) -> Pin<Box<dyn Future<Output = Result<Diff<T>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create a checked diff from a commit. Read more
Source§fn diff_unchecked<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Diff<T>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn diff_unchecked<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Diff<T>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Create an unchecked diff of all events. Read more
Source§fn diff_events<'life0, 'life1, 'async_trait>(
&'life0 self,
commit: Option<&'life1 CommitHash>,
) -> Pin<Box<dyn Future<Output = Result<Patch<T>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn diff_events<'life0, 'life1, 'async_trait>(
&'life0 self,
commit: Option<&'life1 CommitHash>,
) -> Pin<Box<dyn Future<Output = Result<Patch<T>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Diff of events until a specific commit; does
not include the target commit. Read more
Source§fn tree(&self) -> &CommitTree
fn tree(&self) -> &CommitTree
Commit tree contains the in-memory merkle tree.
Source§fn rewind<'life0, 'life1, 'async_trait>(
&'life0 mut self,
commit: &'life1 CommitHash,
) -> Pin<Box<dyn Future<Output = Result<Vec<EventRecord>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn rewind<'life0, 'life1, 'async_trait>(
&'life0 mut self,
commit: &'life1 CommitHash,
) -> Pin<Box<dyn Future<Output = Result<Vec<EventRecord>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Rewind this event log discarding commits after
the specific commit. Read more
Source§fn load_tree<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn load_tree<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Load data from storage to build a commit tree in memory.
Source§fn clear<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn clear<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Delete all events from the log file on disc
and in-memory.
Source§fn apply<'life0, 'life1, 'async_trait>(
&'life0 mut self,
events: &'life1 [T],
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn apply<'life0, 'life1, 'async_trait>(
&'life0 mut self,
events: &'life1 [T],
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Append a collection of events and commit the tree hashes
only if all the events were successfully written.
Source§fn apply_records<'life0, 'async_trait>(
&'life0 mut self,
records: Vec<EventRecord>,
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn apply_records<'life0, 'async_trait>(
&'life0 mut self,
records: Vec<EventRecord>,
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Append raw event records to the event log. Read more
Source§fn patch_checked<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
commit_proof: &'life1 CommitProof,
patch: &'life2 Patch<T>,
) -> Pin<Box<dyn Future<Output = Result<CheckedPatch, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn patch_checked<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
commit_proof: &'life1 CommitProof,
patch: &'life2 Patch<T>,
) -> Pin<Box<dyn Future<Output = Result<CheckedPatch, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Append a patch to this event log only if the
head of the tree matches the given proof.
Source§fn replace_all_events<'life0, 'life1, 'async_trait>(
&'life0 mut self,
diff: &'life1 Diff<T>,
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn replace_all_events<'life0, 'life1, 'async_trait>(
&'life0 mut self,
diff: &'life1 Diff<T>,
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Replace all events in this event log with the events in the diff. Read more
Source§fn patch_unchecked<'life0, 'life1, 'async_trait>(
&'life0 mut self,
patch: &'life1 Patch<T>,
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn patch_unchecked<'life0, 'life1, 'async_trait>(
&'life0 mut self,
patch: &'life1 Patch<T>,
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Append a patch to this event log.
Source§fn diff_records<'life0, 'life1, 'async_trait>(
&'life0 self,
commit: Option<&'life1 CommitHash>,
) -> Pin<Box<dyn Future<Output = Result<Vec<EventRecord>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn diff_records<'life0, 'life1, 'async_trait>(
&'life0 self,
commit: Option<&'life1 CommitHash>,
) -> Pin<Box<dyn Future<Output = Result<Vec<EventRecord>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Diff of event records until a specific commit. Read more
Auto Trait Implementations§
impl<T, E> Freeze for DatabaseEventLog<T, E>
impl<T, E> RefUnwindSafe for DatabaseEventLog<T, E>where
T: RefUnwindSafe,
E: RefUnwindSafe,
impl<T, E> Send for DatabaseEventLog<T, E>
impl<T, E> Sync for DatabaseEventLog<T, E>
impl<T, E> Unpin for DatabaseEventLog<T, E>
impl<T, E> UnwindSafe for DatabaseEventLog<T, E>where
T: UnwindSafe,
E: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more