use crate::prelude::*;
#[cfg_attr(feature = "serde", derive(Deserialize, Serialize))]
#[derive(Debug)]
pub enum Value {
Text(String),
Interger(i64),
Unknown,
}
impl Sql for Value {
fn sql(&self, mut s: String, _ctx: &Context) -> Result<String> {
match self {
Value::Text(text) => {
s.push_str(text);
Ok(s)
}
Value::Interger(num) => {
s.push_str(&num.to_string());
Ok(s)
}
Value::Unknown => Err(SqlGenError::ParseFailed(
"Was not able to parse Value".into(),
)),
}
}
}
impl From<&str> for Value {
fn from(value: &str) -> Self {
if let Ok(i) = value.parse() {
Value::Interger(i)
} else {
Value::Text(value.into())
}
}
}