derive_sql/structs/filter/
value.rs

1//! Define value properties for use in filter
2// use super::*;
3
4pub enum Value<T>
5where T: std::fmt::Display
6{
7  Escaped(T),
8  Raw(T),
9}
10
11impl<T> std::fmt::Display for Value<T>
12where T: std::fmt::Display
13{
14  fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
15    match self {
16      Value::Escaped(v) => write!(f, "'{v}'"),
17      Value::Raw(v) => write!(f, "{v}"),
18    }
19  }
20}
21
22impl std::convert::From<String> for Value<String> {
23  fn from(v: String) -> Self {
24    Value::Escaped(v)
25  }
26}
27
28impl<'a> std::convert::From<&'a str> for Value<&'a str> {
29  fn from(v: &'a str) -> Self {
30    Value::Escaped(v)
31  }
32}
33
34impl std::convert::From<u32> for Value<u32> {
35  fn from(v: u32) -> Self {
36    Value::Raw(v)
37  }
38}
39
40