diesel/pg/types/
json_function_enum.rs

1use std::error::Error;
2use std::io::Write;
3
4use crate::pg::Pg;
5use crate::serialize::{self, IsNull, Output, ToSql};
6use crate::sql_types::*;
7
8#[cfg(feature = "postgres_backend")]
9impl ToSql<NullValueTreatmentEnum, Pg> for NullValueTreatment {
10    fn to_sql<'b>(&'b self, out: &mut Output<'b, '_, Pg>) -> serialize::Result {
11        let literal = match self {
12            Self::RaiseException => "raise_exxception",
13            Self::UseJsonNull => "use_json_null",
14            Self::DeleteKey => "delete_key",
15            Self::ReturnTarget => "return_target",
16        };
17        out.write_all(literal.as_bytes())
18            .map(|_| IsNull::No)
19            .map_err(|e| Box::new(e) as Box<dyn Error + Send + Sync>)
20    }
21}