Skip to main content

ProjectionStore

Trait ProjectionStore 

Source
pub trait ProjectionStore: Send + Sync {
    // Required methods
    fn upsert_actor(
        &mut self,
        row: &ActorProjection,
    ) -> Result<(), ProjectionError>;
    fn upsert_space(
        &mut self,
        row: &SpaceProjection,
    ) -> Result<(), ProjectionError>;
    fn upsert_entry(
        &mut self,
        row: &EntryProjection,
    ) -> Result<(), ProjectionError>;
    fn upsert_activity(
        &mut self,
        row: &ActivityProjection,
    ) -> Result<(), ProjectionError>;
    fn get_actor(&self, actor_id: ActorId) -> Option<ActorProjection>;
    fn get_space(&self, space_id: SpaceId) -> Option<SpaceProjection>;
    fn get_entry(&self, entry_id: EntryId) -> Option<EntryProjection>;
    fn get_activity(
        &self,
        activity_id: ActivityId,
    ) -> Option<ActivityProjection>;
}
Expand description

Storage abstraction for projection rows. An in-memory implementation ships with this crate; PG-backed storage plugs in at the L2 service layer.

Required Methods§

Source

fn upsert_actor(&mut self, row: &ActorProjection) -> Result<(), ProjectionError>

Upsert an Actor row. Active observer only.

Source

fn upsert_space(&mut self, row: &SpaceProjection) -> Result<(), ProjectionError>

Upsert a Space row. Active observer only.

Source

fn upsert_entry(&mut self, row: &EntryProjection) -> Result<(), ProjectionError>

Upsert an Entry row. Active observer only.

Source

fn upsert_activity( &mut self, row: &ActivityProjection, ) -> Result<(), ProjectionError>

Upsert an Activity row. Active observer only.

Source

fn get_actor(&self, actor_id: ActorId) -> Option<ActorProjection>

Read an Actor row.

Source

fn get_space(&self, space_id: SpaceId) -> Option<SpaceProjection>

Read a Space row.

Source

fn get_entry(&self, entry_id: EntryId) -> Option<EntryProjection>

Read an Entry row.

Source

fn get_activity(&self, activity_id: ActivityId) -> Option<ActivityProjection>

Read an Activity row.

Implementors§