use super::collation::CollationRef;
use super::id::{DbObjectId, DependsOn};
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct DomainCheckConstraint {
pub name: String,
pub expression: String,
}
#[derive(Debug, Clone)]
pub struct Domain {
pub schema: String,
pub name: String,
pub base_type: String,
pub not_null: bool,
pub default: Option<String>,
pub collation: Option<CollationRef>,
pub check_constraints: Vec<DomainCheckConstraint>,
pub comment: Option<String>,
pub depends_on: Vec<DbObjectId>,
}
impl Domain {
pub fn id(&self) -> DbObjectId {
DbObjectId::Domain {
schema: self.schema.clone(),
name: self.name.clone(),
}
}
}
impl DependsOn for Domain {
fn id(&self) -> DbObjectId {
DbObjectId::Domain {
schema: self.schema.clone(),
name: self.name.clone(),
}
}
fn depends_on(&self) -> &[DbObjectId] {
&self.depends_on
}
}