teo_runtime/value/convert/into/
delete.rs

1use teo_result::Error;
2use crate::value::interface_enum_variant::InterfaceEnumVariant;
3use crate::model::relation::delete::Delete;
4use crate::value::Value;
5
6impl TryFrom<&Value> for Delete {
7
8    type Error = Error;
9
10    fn try_from(value: &Value) -> Result<Self, Self::Error> {
11        let interface_enum_variant: InterfaceEnumVariant = value.try_into()?;
12        match interface_enum_variant.value.as_str() {
13            "noAction" => Ok(Delete::NoAction),
14            "nullify" => Ok(Delete::Nullify),
15            "cascade" => Ok(Delete::Cascade),
16            "deny" => Ok(Delete::Deny),
17            "default" => Ok(Delete::Default),
18            _ => Err(Error::new(format!("invalid delete name: {:?}", value)))
19        }
20    }
21}