schema_model/model/
trigger.rs1use crate::model::types::{DatabaseType, TriggerType};
2
3#[derive(Debug, Clone)]
4pub struct Trigger {
5 trigger_text: String,
6 trigger_type: TriggerType,
7 database_type: DatabaseType,
8}
9
10impl Trigger {
11 pub fn new<S: Into<String>>(
12 trigger_text: S,
13 trigger_type: TriggerType,
14 database_type: DatabaseType,
15 ) -> Self {
16 Self {
17 trigger_text: trigger_text.into(),
18 trigger_type,
19 database_type,
20 }
21 }
22
23 pub fn trigger_text(&self) -> &str {
24 &self.trigger_text
25 }
26 pub fn trigger_type(&self) -> TriggerType {
27 self.trigger_type
28 }
29 pub fn database_type(&self) -> DatabaseType {
30 self.database_type
31 }
32}
33
34#[cfg(test)]
35mod tests {
36 use super::*;
37
38 #[test]
39 fn constructor_and_getters() {
40 let t = Trigger::new("trg", TriggerType::Delete, DatabaseType::Postgresql);
41 assert_eq!(t.trigger_text(), "trg");
42 assert_eq!(t.trigger_type(), TriggerType::Delete);
43 assert_eq!(t.database_type(), DatabaseType::Postgresql);
44 }
45}