pg_extras/queries/
extensions.rs

1use crate::{queries::shared::Query, PgStatsVersion};
2use sqlx::{postgres::PgRow, Row};
3
4#[derive(Debug, Clone, serde::Serialize)]
5pub struct Extensions {
6    pub name: String,
7    pub default_version: String,
8    pub installed_version: String,
9    pub comment: String,
10}
11
12impl Query for Extensions {
13    fn new(row: &PgRow) -> Self {
14        Self {
15            name: row.try_get("name").unwrap_or_default(),
16            default_version: row.try_get("default_version").unwrap_or_default(),
17            installed_version: row.try_get("installed_version").unwrap_or_default(),
18            comment: row.try_get("comment").unwrap_or_default(),
19        }
20    }
21
22    fn to_row(&self) -> prettytable::Row {
23        row![
24            self.name,
25            self.default_version,
26            self.installed_version,
27            self.comment
28        ]
29    }
30
31    fn headers() -> prettytable::Row {
32        row!["name", "default_version", "installed_version", "comment"]
33    }
34
35    fn read_file(_pg_statement_version: Option<PgStatsVersion>) -> String {
36        include_str!("../sql/extensions.sql").to_string()
37    }
38}