Documentation
use serde::Serialize;

/// 关键字“references”用于定义外键约束(foreign key constraint).
/// 外键约束用于维护两个表之间的关系,确保数据的一致性和完整性.
#[derive(Debug, Clone, Serialize)]
pub struct Reference<'a> {
    /// 引用名称,比如 数据库表名.
    table_name: &'a str,
    /// 数据库表列名
    column_name: &'a str,
}

impl<'a> Reference<'a> {
    /// 创建实例
    #[inline]
    pub fn new(table_name: &'a str, column_name: &'a str) -> Self {
        Self {
            table_name,
            column_name,
        }
    }

    /// 返回引用表名
    #[inline]
    pub fn table_name(&self) -> &'a str {
        self.table_name
    }

    /// 返回引用表的主键列名
    #[inline]
    pub fn column_name(&self) -> &'a str {
        self.column_name
    }
}