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}