Skip to main content

d1_orm_query/
value.rs

1#[derive(Clone, Debug, PartialEq)]
2pub enum Value {
3    Str(String),
4    I64(i64),
5    F64(f64),
6    Bool(bool),
7    Null,
8}
9
10impl From<&str> for Value {
11    fn from(s: &str) -> Self { Value::Str(s.to_string()) }
12}
13
14impl From<String> for Value {
15    fn from(s: String) -> Self { Value::Str(s) }
16}
17
18impl From<i32> for Value {
19    fn from(n: i32) -> Self { Value::I64(n as i64) }
20}
21
22impl From<i64> for Value {
23    fn from(n: i64) -> Self { Value::I64(n) }
24}
25
26impl From<u32> for Value {
27    fn from(n: u32) -> Self { Value::I64(n as i64) }
28}
29
30impl From<u64> for Value {
31    fn from(n: u64) -> Self { Value::I64(n as i64) }
32}
33
34impl From<f64> for Value {
35    fn from(n: f64) -> Self { Value::F64(n) }
36}
37
38impl From<f32> for Value {
39    fn from(n: f32) -> Self { Value::F64(n as f64) }
40}
41
42impl From<bool> for Value {
43    fn from(b: bool) -> Self { Value::Bool(b) }
44}
45
46pub fn opt_val<T: Into<Value>>(val: Option<T>) -> Value {
47    val.map(Into::into).unwrap_or(Value::Null)
48}