realm_db_reader/value/
from.rs

1use chrono::{DateTime, Utc};
2
3use crate::table::Row;
4use crate::value::{Backlink, Link, Value};
5
6impl From<i64> for Value {
7    fn from(value: i64) -> Self {
8        Value::Int(value)
9    }
10}
11
12impl From<bool> for Value {
13    fn from(value: bool) -> Self {
14        Value::Bool(value)
15    }
16}
17
18impl From<String> for Value {
19    fn from(value: String) -> Self {
20        Value::String(value)
21    }
22}
23
24impl From<&str> for Value {
25    fn from(value: &str) -> Self {
26        Value::String(value.to_string())
27    }
28}
29
30impl From<chrono::DateTime<Utc>> for Value {
31    fn from(value: DateTime<Utc>) -> Self {
32        Value::Timestamp(value)
33    }
34}
35
36impl From<f32> for Value {
37    fn from(value: f32) -> Self {
38        Value::Float(value)
39    }
40}
41
42impl From<f64> for Value {
43    fn from(value: f64) -> Self {
44        Value::Float(value as f32)
45    }
46}
47
48impl From<Link> for Value {
49    fn from(value: Link) -> Self {
50        Value::Link(value)
51    }
52}
53
54impl From<Vec<Link>> for Value {
55    fn from(value: Vec<Link>) -> Self {
56        Value::LinkList(value)
57    }
58}
59
60impl From<Backlink> for Value {
61    fn from(value: Backlink) -> Self {
62        Value::BackLink(value)
63    }
64}
65
66impl From<Vec<Row<'static>>> for Value {
67    fn from(value: Vec<Row<'static>>) -> Self {
68        Value::Table(value)
69    }
70}
71
72impl<T> From<Option<T>> for Value
73where
74    T: Into<Value>,
75{
76    fn from(value: Option<T>) -> Self {
77        match value {
78            Some(v) => v.into(),
79            None => Value::None,
80        }
81    }
82}