gluesql_git_storage/
store_mut.rs1use {
2 crate::GitStorage,
3 gluesql_core::{
4 data::{Key, Schema, Value},
5 error::Result,
6 store::StoreMut,
7 },
8};
9
10impl StoreMut for GitStorage {
11 fn insert_schema(&mut self, schema: &Schema) -> Result<()> {
12 self.get_store_mut().insert_schema(schema)?;
13
14 self.add_and_commit(&format!(
15 "[GitStorage::insert_schema] {}",
16 schema.table_name
17 ))
18 }
19
20 fn delete_schema(&mut self, table_name: &str) -> Result<()> {
21 self.get_store_mut().delete_schema(table_name)?;
22
23 self.add_and_commit("[GitStorage::delete_schema] {table_name}")
24 }
25
26 fn append_data(&mut self, table_name: &str, rows: Vec<Vec<Value>>) -> Result<()> {
27 let n = rows.len();
28 if n == 0 {
29 return Ok(());
30 }
31
32 self.get_store_mut().append_data(table_name, rows)?;
33
34 self.add_and_commit(&format!(
35 "[GitStorage::append_data] {table_name} - {n} rows"
36 ))
37 }
38
39 fn insert_data(&mut self, table_name: &str, rows: Vec<(Key, Vec<Value>)>) -> Result<()> {
40 let n = rows.len();
41 if n == 0 {
42 return Ok(());
43 }
44
45 self.get_store_mut().insert_data(table_name, rows)?;
46
47 self.add_and_commit(&format!(
48 "[GitStorage::insert_data] {table_name} - {n} rows"
49 ))
50 }
51
52 fn delete_data(&mut self, table_name: &str, keys: Vec<Key>) -> Result<()> {
53 let n = keys.len();
54 if n == 0 {
55 return Ok(());
56 }
57
58 self.get_store_mut().delete_data(table_name, keys)?;
59
60 self.add_and_commit(&format!(
61 "[GitStorage::delete_data] {table_name} - {n} rows"
62 ))
63 }
64}