sea_query/
schema.rs

1//! Schema definition & alternations statements
2
3use crate::{backend::SchemaBuilder, ForeignKeyStatement, IndexStatement, TableStatement};
4
5#[derive(Debug, Clone)]
6pub enum SchemaStatement {
7    TableStatement(TableStatement),
8    IndexStatement(IndexStatement),
9    ForeignKeyStatement(ForeignKeyStatement),
10}
11
12pub trait SchemaStatementBuilder {
13    /// Build corresponding SQL statement for certain database backend and return SQL string
14    fn build<T: SchemaBuilder>(&self, schema_builder: T) -> String;
15
16    /// Build corresponding SQL statement for certain database backend and return SQL string
17    fn build_any(&self, schema_builder: &dyn SchemaBuilder) -> String;
18
19    /// Build corresponding SQL statement for certain database backend and return SQL string
20    fn to_string<T: SchemaBuilder>(&self, schema_builder: T) -> String {
21        self.build(schema_builder)
22    }
23}