Skip to content

Commit 3fecef8

Browse files
committed
Add helper functions
1 parent b3b9aa3 commit 3fecef8

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed

src/foreign_key/common.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,20 @@ pub enum ForeignKeyAction {
2323
SetDefault,
2424
}
2525

26+
impl ForeignKeyAction {
27+
#[doc(hidden)]
28+
/// Return the PascalCase name of the action
29+
pub fn variant_name(&self) -> &'static str {
30+
match self {
31+
Self::Restrict => "Restrict",
32+
Self::Cascade => "Cascade",
33+
Self::SetNull => "SetNull",
34+
Self::NoAction => "NoAction",
35+
Self::SetDefault => "SetDefault",
36+
}
37+
}
38+
}
39+
2640
impl TableForeignKey {
2741
/// Construct a new foreign key
2842
pub fn new() -> Self {

src/types.rs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,20 @@ pub enum ColumnRef {
140140
TableAsterisk(DynIden),
141141
}
142142

143+
impl ColumnRef {
144+
#[doc(hidden)]
145+
/// Returns the column name if it's not an asterisk.
146+
pub fn column(&self) -> Option<&DynIden> {
147+
match self {
148+
ColumnRef::Column(column) => Some(column),
149+
ColumnRef::TableColumn(_, column) => Some(column),
150+
ColumnRef::SchemaTableColumn(_, _, column) => Some(column),
151+
ColumnRef::Asterisk => None,
152+
ColumnRef::TableAsterisk(_) => None,
153+
}
154+
}
155+
}
156+
143157
pub trait IntoColumnRef {
144158
fn into_column_ref(self) -> ColumnRef;
145159
}
@@ -169,6 +183,38 @@ pub enum TableRef {
169183
FunctionCall(FunctionCall, DynIden),
170184
}
171185

186+
impl TableRef {
187+
#[doc(hidden)]
188+
pub fn table(&self) -> &DynIden {
189+
match self {
190+
TableRef::Table(tbl)
191+
| TableRef::SchemaTable(_, tbl)
192+
| TableRef::DatabaseSchemaTable(_, _, tbl)
193+
| TableRef::TableAlias(tbl, _)
194+
| TableRef::SchemaTableAlias(_, tbl, _)
195+
| TableRef::DatabaseSchemaTableAlias(_, _, tbl, _)
196+
| TableRef::SubQuery(_, tbl)
197+
| TableRef::ValuesList(_, tbl)
198+
| TableRef::FunctionCall(_, tbl) => tbl,
199+
}
200+
}
201+
202+
#[doc(hidden)]
203+
pub fn table_alias(&self) -> Option<&DynIden> {
204+
match self {
205+
TableRef::Table(_)
206+
| TableRef::SchemaTable(_, _)
207+
| TableRef::DatabaseSchemaTable(_, _, _)
208+
| TableRef::SubQuery(_, _)
209+
| TableRef::ValuesList(_, _) => None,
210+
TableRef::TableAlias(_, alias)
211+
| TableRef::SchemaTableAlias(_, _, alias)
212+
| TableRef::DatabaseSchemaTableAlias(_, _, _, alias)
213+
| TableRef::FunctionCall(_, alias) => Some(alias),
214+
}
215+
}
216+
}
217+
172218
pub trait IntoTableRef {
173219
fn into_table_ref(self) -> TableRef;
174220
}

0 commit comments

Comments
 (0)