schema-model 0.2.0

A set of tools to manage relational database schemas
Documentation
use crate::model::types::DatabaseType;

#[derive(Debug, Clone)]
pub struct Constraint {
    name: String,
    sql: String,
    database_type: DatabaseType,
}

impl Constraint {
    pub fn new<S: Into<String>>(name: S, sql: S, database_type: DatabaseType) -> Self {
        Self {
            name: name.into(),
            sql: sql.into(),
            database_type,
        }
    }

    pub fn name(&self) -> &str {
        &self.name
    }
    pub fn sql(&self) -> &str {
        &self.sql
    }
    pub fn database_type(&self) -> DatabaseType {
        self.database_type
    }
}

#[cfg(test)]
mod tests {
    use super::*;
    use crate::model::types::DatabaseType;

    #[test]
    fn constructor_and_getters() {
        let c = Constraint::new("ck", "check (x>0)", DatabaseType::Postgresql);
        assert_eq!(c.name(), "ck");
        assert_eq!(c.sql(), "check (x>0)");
        assert_eq!(c.database_type(), DatabaseType::Postgresql);
    }
}