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§
Sourcefn upsert_actor(&mut self, row: &ActorProjection) -> Result<(), ProjectionError>
fn upsert_actor(&mut self, row: &ActorProjection) -> Result<(), ProjectionError>
Upsert an Actor row. Active observer only.
Sourcefn upsert_space(&mut self, row: &SpaceProjection) -> Result<(), ProjectionError>
fn upsert_space(&mut self, row: &SpaceProjection) -> Result<(), ProjectionError>
Upsert a Space row. Active observer only.
Sourcefn upsert_entry(&mut self, row: &EntryProjection) -> Result<(), ProjectionError>
fn upsert_entry(&mut self, row: &EntryProjection) -> Result<(), ProjectionError>
Upsert an Entry row. Active observer only.
Sourcefn upsert_activity(
&mut self,
row: &ActivityProjection,
) -> Result<(), ProjectionError>
fn upsert_activity( &mut self, row: &ActivityProjection, ) -> Result<(), ProjectionError>
Upsert an Activity row. Active observer only.
Sourcefn get_actor(&self, actor_id: ActorId) -> Option<ActorProjection>
fn get_actor(&self, actor_id: ActorId) -> Option<ActorProjection>
Read an Actor row.
Sourcefn get_space(&self, space_id: SpaceId) -> Option<SpaceProjection>
fn get_space(&self, space_id: SpaceId) -> Option<SpaceProjection>
Read a Space row.
Sourcefn get_entry(&self, entry_id: EntryId) -> Option<EntryProjection>
fn get_entry(&self, entry_id: EntryId) -> Option<EntryProjection>
Read an Entry row.
Sourcefn get_activity(&self, activity_id: ActivityId) -> Option<ActivityProjection>
fn get_activity(&self, activity_id: ActivityId) -> Option<ActivityProjection>
Read an Activity row.