schema-model 0.2.0

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

#[derive(Debug, Clone)]
pub struct Trigger {
    trigger_text: String,
    trigger_type: TriggerType,
    database_type: DatabaseType,
}

impl Trigger {
    pub fn new<S: Into<String>>(
        trigger_text: S,
        trigger_type: TriggerType,
        database_type: DatabaseType,
    ) -> Self {
        Self {
            trigger_text: trigger_text.into(),
            trigger_type,
            database_type,
        }
    }

    pub fn trigger_text(&self) -> &str {
        &self.trigger_text
    }
    pub fn trigger_type(&self) -> TriggerType {
        self.trigger_type
    }
    pub fn database_type(&self) -> DatabaseType {
        self.database_type
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn constructor_and_getters() {
        let t = Trigger::new("trg", TriggerType::Delete, DatabaseType::Postgresql);
        assert_eq!(t.trigger_text(), "trg");
        assert_eq!(t.trigger_type(), TriggerType::Delete);
        assert_eq!(t.database_type(), DatabaseType::Postgresql);
    }
}