sea_query/table/
constraint.rs

1use crate::{DynIden, Expr};
2
3#[derive(Debug, Clone)]
4pub struct Check {
5    pub(crate) name: Option<DynIden>,
6    pub(crate) expr: Expr,
7}
8
9impl Check {
10    pub fn named<N, E>(name: N, expr: E) -> Self
11    where
12        N: Into<DynIden>,
13        E: Into<Expr>,
14    {
15        Self {
16            name: Some(name.into()),
17            expr: expr.into(),
18        }
19    }
20
21    pub fn unnamed<E>(expr: E) -> Self
22    where
23        E: Into<Expr>,
24    {
25        Self {
26            name: None,
27            expr: expr.into(),
28        }
29    }
30}
31
32impl<E> From<E> for Check
33where
34    E: Into<Expr>,
35{
36    fn from(expr: E) -> Self {
37        Self::unnamed(expr)
38    }
39}
40
41impl<I, E> From<(I, E)> for Check
42where
43    I: Into<DynIden>,
44    E: Into<Expr>,
45{
46    fn from((name, expr): (I, E)) -> Self {
47        Self::named(name, expr)
48    }
49}