wp-model-core 0.8.7

Typed data model crate providing Value, Field, and Record primitives for the Warp PASE stack.
Documentation
#[macro_export]
macro_rules! value_match {
    ($obj:expr,$what :expr) => {
        match $obj {
            $crate::model::Value::Bool(x) => $what(x),
            $crate::model::Value::Chars(x) => $what(x),
            $crate::model::Value::Symbol(x) => $what(x.to_string()),
            $crate::model::Value::Digit(x) => $what(x),
            $crate::model::Value::Time(x) => $what(x),
            $crate::model::Value::Hex(x) => $what(x),
            $crate::model::Value::Float(x) => $what(x),
            $crate::model::Value::IpNet(x) => $what(x),
            $crate::model::Value::IpAddr(x) => $what(x),
            $crate::model::Value::Ignore(x) => $what(x),
            $crate::model::Value::Obj(x) => $what(x),
            $crate::model::Value::Array(x) => $what(x),
            $crate::model::Value::Domain(x) => $what(x),
            $crate::model::Value::Url(x) => $what(x),
            $crate::model::Value::Email(x) => $what(x),
            $crate::model::Value::IdCard(x) => $what(x),
            $crate::model::Value::MobilePhone(x) => $what(x),
        }
    };
    ($obj:expr,$what :expr,$a1:expr) => {
        match $obj {
            $crate::model::Value::Bool(x) => $what(x, $a1),
            $crate::model::Value::Chars(x) => $what(x, $a1),
            $crate::model::Value::Symbol(x) => $what(x.to_string(), $a1),
            $crate::model::Value::Digit(x) => $what(x, $a1),
            $crate::model::Value::Time(x) => $what(x, $a1),
            $crate::model::Value::Hex(x) => $what(x, $a1),
            $crate::model::Value::Float(x) => $what(x, $a1),
            $crate::model::Value::IpNet(x) => $what(x, $a1),
            $crate::model::Value::IpAddr(x) => $what(x, $a1),
            $crate::model::Value::Ignore(x) => $what(x, $a1),
            $crate::model::Value::Obj(x) => $what(x, $a1),
            $crate::model::Value::Array(x) => $what(x, $a1),
            $crate::model::Value::Domain(x) => $what(x, $a1),
            $crate::model::Value::Url(x) => $what(x, $a1),
            $crate::model::Value::Email(x) => $what(x, $a1),
            $crate::model::Value::IdCard(x) => $what(x, $a1),
            $crate::model::Value::MobilePhone(x) => $what(x, $a1),
        }
    };
    ($obj:expr,$what :expr,$a1:expr,$a2:expr) => {
        match $obj {
            $crate::model::Value::Bool(x) => $what(x, $a1, $a2),
            $crate::model::Value::Chars(x) => $what(x, $a1, $a2),
            $crate::model::Value::Symbol(x) => $what(x.to_string(), $a1, $a2),
            $crate::model::Value::Digit(x) => $what(x, $a1, $a2),
            $crate::model::Value::Time(x) => $what(x, $a1, $a2),
            $crate::model::Value::Hex(x) => $what(x, $a1, $a2),
            $crate::model::Value::Float(x) => $what(x, $a1, $a2),
            $crate::model::Value::IpNet(x) => $what(x, $a1, $a2),
            $crate::model::Value::IpAddr(x) => $what(x, $a1, $a2),
            $crate::model::Value::Ignore(x) => $what(x, $a1, $a2),
            $crate::model::Value::Obj(x) => $what(x, $a1, $a2),
            $crate::model::Value::Array(x) => $what(x, $a1, $a2),
            $crate::model::Value::Domain(x) => $what(x, $a1, $a2),
            $crate::model::Value::Url(x) => $what(x, $a1, $a2),
            $crate::model::Value::Email(x) => $what(x, $a1, $a2),
            $crate::model::Value::IdCard(x) => $what(x, $a1, $a2),
            $crate::model::Value::MobilePhone(x) => $what(x, $a1, $a2),
        }
    };
}

#[macro_export]
macro_rules! format_value {
    ($obj:expr,$what : ident ,$a1:expr) => {
        match $obj {
            $crate::model::Value::Bool(x) => $what(x).fmt($a1),
            $crate::model::Value::Chars(x) => $what(x).fmt($a1),
            $crate::model::Value::Symbol(x) => $what(x.to_string()).fmt($a1),
            $crate::model::Value::Digit(x) => $what(x).fmt($a1),
            $crate::model::Value::Time(x) => $what(x).fmt($a1),
            $crate::model::Value::Hex(x) => $what(x).fmt($a1),
            $crate::model::Value::Float(x) => $what(x).fmt($a1),
            $crate::model::Value::IpNet(x) => $what(x).fmt($a1),
            $crate::model::Value::IpAddr(x) => $what(x).fmt($a1),
            $crate::model::Value::Ignore(x) => $what(x).fmt($a1),
            $crate::model::Value::Obj(x) => $what(x).fmt($a1),
            $crate::model::Value::Array(x) => $what(x).fmt($a1),
            $crate::model::Value::Domain(x) => $what(x).fmt($a1),
            $crate::model::Value::Url(x) => $what(x).fmt($a1),
            $crate::model::Value::Email(x) => $what(x).fmt($a1),
            $crate::model::Value::IdCard(x) => $what(x).fmt($a1),
            $crate::model::Value::MobilePhone(x) => $what(x).fmt($a1),
        }
    };
}