sea_query/
schema.rs

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