1use 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 fn build<T: SchemaBuilder>(&self, schema_builder: T) -> String;
17
18 fn build_any(&self, schema_builder: &dyn SchemaBuilder) -> String;
20
21 fn to_string<T: SchemaBuilder>(&self, schema_builder: T) -> String {
23 self.build(schema_builder)
24 }
25}