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