Skip to main content

sqlite_extras/queries/
table_size.rs

1use sqlx::{sqlite::SqliteRow, Row};
2
3use super::shared::Query;
4
5#[derive(Debug, Clone)]
6pub struct TableSize {
7    pub name: String,
8    pub payload_size: u64,
9    pub unused_size: u64,
10    pub vacuum_size: u64,
11    pub page_size: u64,
12    pub pages: u64,
13    pub max_payload_size: u64,
14}
15
16impl Query for TableSize {
17    fn new(row: &SqliteRow) -> Self {
18        Self {
19            name: row.get(0),
20            payload_size: row.get(1),
21            unused_size: row.get(2),
22            vacuum_size: row.get(3),
23            page_size: row.get(4),
24            pages: row.get(5),
25            max_payload_size: row.get(6),
26        }
27    }
28
29    fn to_row(&self) -> prettytable::Row {
30        row![
31            self.payload_size,
32            self.unused_size,
33            self.vacuum_size,
34            self.page_size,
35            self.pages,
36            self.max_payload_size
37        ]
38    }
39
40    fn headers() -> prettytable::Row {
41        row![
42            "payload_size",
43            "unused_size",
44            "vacuum_size",
45            "page_size",
46            "pages",
47            "max_payload_size"
48        ]
49    }
50
51    fn read_file() -> String {
52        include_str!("../sql/table_size.sql").to_string()
53    }
54}