sqlgen/parts/
value.rs

1use crate::prelude::*;
2
3#[cfg_attr(feature = "serde", derive(Deserialize, Serialize))]
4#[derive(Debug)]
5pub enum Value {
6    Text(String),
7    Interger(i64),
8    Unknown,
9}
10
11impl Sql for Value {
12    fn sql(&self, mut s: String, _ctx: &Context) -> Result<String> {
13        match self {
14            Value::Text(text) => {
15                s.push_str(text);
16                Ok(s)
17            }
18            Value::Interger(num) => {
19                s.push_str(&num.to_string());
20                Ok(s)
21            }
22            Value::Unknown => Err(SqlGenError::ParseFailed(
23                "Was not able to parse Value".into(),
24            )),
25        }
26    }
27}
28
29impl From<&str> for Value {
30    fn from(value: &str) -> Self {
31        if let Ok(i) = value.parse() {
32            Value::Interger(i)
33        } else {
34            Value::Text(value.into())
35        }
36    }
37}