Skip to main content

EventWriter

Trait EventWriter 

Source
pub trait EventWriter: Send + Sync {
    // Required methods
    fn append_at<'life0, 'async_trait>(
        &'life0 self,
        expected_seq: u64,
        events: Vec<Event>,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<SessionEvent>, RuntimeError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn append<'life0, 'async_trait>(
        &'life0 self,
        events: Vec<Event>,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<SessionEvent>, RuntimeError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn load_after<'life0, 'async_trait>(
        &'life0 self,
        seq: u64,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<SessionEvent>, RuntimeError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;

    // Provided method
    fn last_seq<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<u64, RuntimeError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait { ... }
}
Expand description

Fenced append/read access to the Session log for one Run.

Required Methods§

Source

fn append_at<'life0, 'async_trait>( &'life0 self, expected_seq: u64, events: Vec<Event>, ) -> Pin<Box<dyn Future<Output = Result<Vec<SessionEvent>, RuntimeError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Append only at this exact sequence under the same fence; never retarget stale content to a newer sequence. A mismatch is CompactionConflict.

Source

fn append<'life0, 'async_trait>( &'life0 self, events: Vec<Event>, ) -> Pin<Box<dyn Future<Output = Result<Vec<SessionEvent>, RuntimeError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Append events atomically and return them with assigned sequences.

Source

fn load_after<'life0, 'async_trait>( &'life0 self, seq: u64, ) -> Pin<Box<dyn Future<Output = Result<Vec<SessionEvent>, RuntimeError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Events committed after seq.

Provided Methods§

Source

fn last_seq<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<u64, RuntimeError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Current committed sequence; persistent writers override to read metadata only.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§