mysql_connector/model/active_model/
active_value.rs

1use {
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}