sea_query/table/
rename.rs1use inherent::inherent;
2
3use crate::{backend::SchemaBuilder, types::*, SchemaStatementBuilder};
4
5#[derive(Default, Debug, Clone)]
30pub struct TableRenameStatement {
31 pub(crate) from_name: Option<TableRef>,
32 pub(crate) to_name: Option<TableRef>,
33}
34
35impl TableRenameStatement {
36 pub fn new() -> Self {
38 Self::default()
39 }
40
41 pub fn table<T, R>(&mut self, from_name: T, to_name: R) -> &mut Self
43 where
44 T: IntoTableRef,
45 R: IntoTableRef,
46 {
47 self.from_name = Some(from_name.into_table_ref());
48 self.to_name = Some(to_name.into_table_ref());
49 self
50 }
51
52 pub fn take(&mut self) -> Self {
53 Self {
54 from_name: self.from_name.take(),
55 to_name: self.to_name.take(),
56 }
57 }
58}
59
60#[inherent]
61impl SchemaStatementBuilder for TableRenameStatement {
62 pub fn build<T: SchemaBuilder>(&self, schema_builder: T) -> String {
63 let mut sql = String::with_capacity(256);
64 schema_builder.prepare_table_rename_statement(self, &mut sql);
65 sql
66 }
67
68 pub fn build_any(&self, schema_builder: &dyn SchemaBuilder) -> String {
69 let mut sql = String::with_capacity(256);
70 schema_builder.prepare_table_rename_statement(self, &mut sql);
71 sql
72 }
73
74 pub fn to_string<T: SchemaBuilder>(&self, schema_builder: T) -> String;
75}