macro_rules! constraints {
() => { ... };
($key:tt == $value:expr $(,)*) => { ... };
($key:tt == $value:expr , $($r:tt)*) => { ... };
($key:tt != $value:expr $(,)*) => { ... };
($key:tt != $value:expr , $($r:tt)*) => { ... };
($key:tt < $value:expr $(,)*) => { ... };
($key:tt < $value:expr , $($r:tt)*) => { ... };
($key:tt > $value:expr $(,)*) => { ... };
($key:tt > $value:expr , $($r:tt)*) => { ... };
($key:tt $(,)*) => { ... };
($key:tt , $($r:tt)*) => { ... };
($t:expr $(,)*) => { ... };
($t:expr , $($r:tt)*) => { ... };
}