sqlgen 0.1.6

A library to generate SQL Statements.
Documentation
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())
        }
    }
}