teo_runtime/value/convert/into/
update.rs

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