Skip to main content

saya_types/
schema.rs

1use serde::{Deserialize, Serialize};
2
3/// A complete schema snapshot returned by a connector.
4#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5pub struct SchemaTree {
6    pub databases: Vec<Database>,
7}
8
9#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
10pub struct Database {
11    pub name: String,
12    #[serde(default)]
13    pub schemas: Vec<Schema>,
14}
15
16#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
17pub struct Schema {
18    pub name: String,
19    #[serde(default)]
20    pub tables: Vec<Table>,
21}
22
23#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
24pub struct Table {
25    pub name: String,
26    #[serde(default)]
27    pub columns: Vec<Column>,
28}
29
30#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
31pub struct Column {
32    pub name: String,
33    pub data_type: String,
34    pub nullable: bool,
35}