-
Notifications
You must be signed in to change notification settings - Fork 216
/
sql_ext.rs
39 lines (37 loc) 路 1.88 KB
/
sql_ext.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use crate::PrismaValue;
use quaint::ast::ParameterizedValue;
impl<'a> From<ParameterizedValue<'a>> for PrismaValue {
fn from(pv: ParameterizedValue<'a>) -> Self {
match pv {
ParameterizedValue::Null => PrismaValue::Null,
ParameterizedValue::Integer(i) => PrismaValue::Int(i),
ParameterizedValue::Real(d) => PrismaValue::Float(d),
ParameterizedValue::Text(s) => PrismaValue::String(s.into_owned()),
ParameterizedValue::Enum(s) => PrismaValue::Enum(s.into_owned()),
ParameterizedValue::Boolean(b) => PrismaValue::Boolean(b),
ParameterizedValue::Array(v) => PrismaValue::List(v.into_iter().map(PrismaValue::from).collect()),
ParameterizedValue::Json(val) => PrismaValue::String(val.to_string()),
ParameterizedValue::Uuid(uuid) => PrismaValue::Uuid(uuid),
ParameterizedValue::DateTime(dt) => PrismaValue::DateTime(dt),
ParameterizedValue::Char(c) => PrismaValue::String(c.to_string()),
ParameterizedValue::Bytes(bytes) => PrismaValue::String(
String::from_utf8(bytes.into_owned()).expect("PrismaValue::String from ParameterizedValue::Bytes"),
),
}
}
}
impl<'a> From<PrismaValue> for ParameterizedValue<'a> {
fn from(pv: PrismaValue) -> Self {
match pv {
PrismaValue::String(s) => s.into(),
PrismaValue::Float(f) => f.into(),
PrismaValue::Boolean(b) => b.into(),
PrismaValue::DateTime(d) => d.into(),
PrismaValue::Enum(e) => ParameterizedValue::Enum(e.into()),
PrismaValue::Int(i) => (i as i64).into(),
PrismaValue::Null => ParameterizedValue::Null,
PrismaValue::Uuid(u) => u.to_string().into(),
PrismaValue::List(l) => ParameterizedValue::Array(l.into_iter().map(|x| x.into()).collect()),
}
}
}