sql_table/
foreign_key_name.rs

1use crate::table::{Table, TableColumn, Unquote};
2
3pub trait ForeignKeyName: TableColumn {
4    fn foreign_key_name<F: TableColumn>(&self, fcol: F) -> String {
5        let q = if !Self::QUOTE.is_empty() {
6            Self::QUOTE
7        } else if !Self::Table::QUOTE.is_empty() {
8            Self::Table::QUOTE
9        } else if !F::QUOTE.is_empty() {
10            F::QUOTE
11        } else {
12            F::Table::QUOTE
13        };
14        format!(
15            "{q}fk_{}_{}_{}_{}{q}",
16            Self::TABLE.unquoted(),
17            self.unquoted(),
18            F::TABLE.unquoted(),
19            fcol.unquoted()
20        )
21    }
22}
23
24impl<C> ForeignKeyName for C where C: TableColumn {}