sqlite_extras/queries/
table_size.rs1use 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}