rsiot/components/cmp_tsdb_writer/
query_stat.rs1use std::{fmt::Display, time::Duration};
2
3#[derive(Default)]
5pub struct QueryStat {
6 pub table_name: String,
8
9 pub rows_count: usize,
11
12 pub sql_string_len: usize,
14
15 pub last_execution: Duration,
17
18 pub execution_time: Duration,
20}
21
22impl QueryStat {
23 pub fn new() -> Self {
25 Default::default()
26 }
27
28 pub fn set_table_name(&mut self, table_name: &str) {
30 self.table_name = table_name.to_string();
31 }
32
33 pub fn set_rows_count(&mut self, rows_count: usize) {
35 self.rows_count = rows_count;
36 }
37
38 pub fn set_sql_string_len(&mut self, sql_string_len: usize) {
40 self.sql_string_len = sql_string_len;
41 }
42
43 pub fn set_last_execution(&mut self, last_execution: Duration) {
45 self.last_execution = last_execution;
46 }
47
48 pub fn set_execution_time(&mut self, execution_time: Duration) {
50 self.execution_time = execution_time;
51 }
52}
53
54impl Display for QueryStat {
55 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
56 write!(
57 f,
58 "SQL query stat: row count: {}; time elapsed: {} ms; SQL string len: {:.1} KB; execution time: {} ms",
59 self.rows_count,
60 self.last_execution.as_millis(),
61 self.sql_string_len as f32 / 1024.0,
62 self.execution_time.as_millis()
63 )
64 }
65}