multisql/database/
mutable.rs

1use {
2	crate::{DatabaseError, Result, Row, Schema, SchemaDiff, Value},
3	async_trait::async_trait,
4};
5
6/// `StoreMut` -> `INSERT`, `CREATE`, `DELETE`, `DROP`, `UPDATE`
7#[async_trait(?Send)]
8pub trait DBMut {
9	async fn insert_schema(&mut self, _schema: &Schema) -> Result<()> {
10		Err(DatabaseError::Unimplemented.into())
11	}
12
13	async fn delete_schema(&mut self, _table_name: &str) -> Result<()> {
14		Err(DatabaseError::Unimplemented.into())
15	} // Shouldn't this be AlterTable?
16
17	async fn insert_data(&mut self, _table_name: &str, _rows: Vec<Row>) -> Result<()> {
18		Err(DatabaseError::Unimplemented.into())
19	}
20
21	async fn update_data(&mut self, _table_name: &str, _rows: Vec<(Value, Row)>) -> Result<()> {
22		Err(DatabaseError::Unimplemented.into())
23	}
24
25	async fn delete_data(&mut self, _table_name: &str, _keys: Vec<Value>) -> Result<()> {
26		Err(DatabaseError::Unimplemented.into())
27	}
28
29	async fn update_index(
30		&mut self,
31		_index_name: &str,
32		_table_name: &str,
33		_keys: Vec<(Value, Value)>,
34	) -> Result<()> {
35		Err(DatabaseError::Unimplemented.into())
36	}
37
38	async fn alter_table(&mut self, _table_name: &str, _schema_diff: SchemaDiff) -> Result<()> {
39		Err(DatabaseError::Unimplemented.into())
40	}
41}