sleded/
example.rs

1#[test]
2fn example() {
3    use super::*;
4    use serde::{Deserialize, Serialize};
5
6    #[derive(Debug, Serialize, Deserialize)]
7    pub struct Student {
8        name: String,
9        value: usize,
10    }
11    impl TableLayout for Student {
12        const TABLE_NAME: &'static str = "student";
13    }
14
15    let db = open("./db").unwrap();
16    let table = db.table();
17    let bob_key = table.push(Student {
18        name: "bob".into(),
19        value: 0,
20    });
21
22    // query one item
23    let bob = table.get(&bob_key);
24    dbg!(bob);
25
26    // query all items
27    for (key, value) in table.iter() {
28        let key = key.value(&table);
29        println!("key: {key}, student: {value:?}");
30    }
31
32    // update items
33    for key in table.keys() {
34        table.update(&key, |student| {
35            if let Some(student) = student {
36                student.value += 1;
37            }
38        })
39    }
40}