Skip to main content

Projector

Struct Projector 

Source
pub struct Projector<'conn> { /* private fields */ }
Expand description

Replays events into the SQLite projection.

Create a Projector with a connection, then call [project_event] for each event or [project_batch] for a slice.

Implementations§

Source§

impl<'conn> Projector<'conn>

Source

pub fn new(conn: &'conn Connection) -> Self

Create a new projector backed by the given connection.

Ensures the projected_events tracking table exists before any projection work is attempted.

Source

pub fn project_batch(&self, events: &[Event]) -> Result<ProjectionStats>

Project a batch of events, returning aggregate statistics.

Events are applied inside a single transaction for performance. Duplicate events (same event_hash) are silently skipped.

§Errors

Returns an error if the transaction fails to commit. Individual event projection errors are counted in stats.errors but do not abort the batch.

Source

pub fn project_event(&self, event: &Event) -> Result<bool>

Project a single event (outside of any managed transaction).

Returns true if the event was projected, false if it was a duplicate.

§Errors

Returns an error if the projection fails.

Auto Trait Implementations§

§

impl<'conn> Freeze for Projector<'conn>

§

impl<'conn> !RefUnwindSafe for Projector<'conn>

§

impl<'conn> !Send for Projector<'conn>

§

impl<'conn> !Sync for Projector<'conn>

§

impl<'conn> Unpin for Projector<'conn>

§

impl<'conn> UnsafeUnpin for Projector<'conn>

§

impl<'conn> !UnwindSafe for Projector<'conn>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more