mysql_connector/model/active_model/
active_value.rs1use {
2 super::NamedValue,
3 crate::{error::SerializeError, types::Value},
4};
5
6#[derive(Debug)]
7pub enum ActiveValue<T> {
8 Set(T),
9 Unset,
10}
11
12impl<T> ActiveValue<T>
13where
14 T: TryInto<Value>,
15 <T as TryInto<Value>>::Error: Into<SerializeError>,
16{
17 pub fn insert_named_value(
18 self,
19 vec: &mut Vec<NamedValue>,
20 name: &'static str,
21 ) -> Result<(), SerializeError> {
22 match self {
23 Self::Set(value) => vec.push(NamedValue(name, value.try_into().map_err(Into::into)?)),
24 Self::Unset => (),
25 }
26 Ok(())
27 }
28}
29
30impl<T> Default for ActiveValue<T> {
31 fn default() -> Self {
32 Self::Unset
33 }
34}