teo_runtime/value/convert/into/
update.rs1use 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}