Skip to main content

toolu_orm_core/
table.rs

1use crate::column::ColumnDef;
2use crate::index::IndexDef;
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub struct TableDef {
7  pub name: String,
8  pub columns: Vec<ColumnDef>,
9  #[serde(default)]
10  pub indexes: Vec<IndexDef>,
11  #[serde(default)]
12  pub strict: bool,
13}
14
15impl TableDef {
16  pub fn find_column(&self, name: &str) -> Option<&ColumnDef> {
17    self.columns.iter().find(|c| c.name == name)
18  }
19}
20
21pub trait TableSchema {
22  fn table_def() -> TableDef;
23}