Trait BlockTable
Source pub trait BlockTable {
Show 21 methods
// Required methods
fn create(&mut self, entity: &Block) -> Result<Block, RepositoryError>;
fn create_multi(
&mut self,
entities: &[Block],
) -> Result<Vec<Block>, RepositoryError>;
fn get(&self, id: &EntityId) -> Result<Option<Block>, RepositoryError>;
fn get_multi(
&self,
ids: &[EntityId],
) -> Result<Vec<Option<Block>>, RepositoryError>;
fn get_all(&self) -> Result<Vec<Block>, RepositoryError>;
fn update(&mut self, entity: &Block) -> Result<Block, RepositoryError>;
fn update_multi(
&mut self,
entities: &[Block],
) -> Result<Vec<Block>, RepositoryError>;
fn update_with_relationships(
&mut self,
entity: &Block,
) -> Result<Block, RepositoryError>;
fn update_with_relationships_multi(
&mut self,
entities: &[Block],
) -> Result<Vec<Block>, RepositoryError>;
fn remove(&mut self, id: &EntityId) -> Result<(), RepositoryError>;
fn remove_multi(&mut self, ids: &[EntityId]) -> Result<(), RepositoryError>;
fn get_relationship(
&self,
id: &EntityId,
field: &BlockRelationshipField,
) -> Result<Vec<EntityId>, RepositoryError>;
fn get_relationship_many(
&self,
ids: &[EntityId],
field: &BlockRelationshipField,
) -> Result<HashMap<EntityId, Vec<EntityId>>, RepositoryError>;
fn get_relationship_count(
&self,
id: &EntityId,
field: &BlockRelationshipField,
) -> Result<usize, RepositoryError>;
fn get_relationship_in_range(
&self,
id: &EntityId,
field: &BlockRelationshipField,
offset: usize,
limit: usize,
) -> Result<Vec<EntityId>, RepositoryError>;
fn get_relationships_from_right_ids(
&self,
field: &BlockRelationshipField,
right_ids: &[EntityId],
) -> Result<Vec<(EntityId, Vec<EntityId>)>, RepositoryError>;
fn set_relationship_multi(
&mut self,
field: &BlockRelationshipField,
relationships: Vec<(EntityId, Vec<EntityId>)>,
) -> Result<(), RepositoryError>;
fn set_relationship(
&mut self,
id: &EntityId,
field: &BlockRelationshipField,
right_ids: &[EntityId],
) -> Result<(), RepositoryError>;
fn move_relationship_ids(
&mut self,
id: &EntityId,
field: &BlockRelationshipField,
ids_to_move: &[EntityId],
new_index: i32,
) -> Result<Vec<EntityId>, RepositoryError>;
fn snapshot_rows(
&self,
ids: &[EntityId],
) -> Result<TableLevelSnapshot, RepositoryError>;
fn restore_rows(
&mut self,
snap: &TableLevelSnapshot,
) -> Result<(), RepositoryError>;
}