sea_query/table/
constraint.rs1use 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}