joker_query 1.0.0

The joker_query is most sugared query builder of Rust
Documentation
use std::fmt::Display;

use super::{condition::Case, select::Select};




pub enum Value<'a> {
    I32(i32),
    I64(i64),
    U32(u32),
    U64(u64),
    F32(f32),
    F64(f64),
    String(String),
    Str(&'a str),
    Bool(bool),
    Raw(String),
}

impl<'a> Display for Value<'a> {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        match self {
            Value::I32(v) => write!(f, "{}", v),
            Value::I64(v) => write!(f, "{}", v),
            Value::U32(v) => write!(f, "{}", v),
            Value::U64(v) => write!(f, "{}", v),
            Value::F32(v) => write!(f, "{}", v),
            Value::F64(v) => write!(f, "{}", v),
            Value::Raw(v) => write!(f, "{}", v),
            Value::String(v) => write!(f, "'{}'", v),
            Value::Str(v) => write!(f, "'{}'", v),
            Value::Bool(v) => match v {
                true => write!(f, "TRUE"),
                false => write!(f, "FALSE"),
            }
        }
    }
}


impl<'a> Into<Value<'a>> for &'a str {
    fn into(self) -> Value<'a> {
        Value::Str(self)
    }
}
impl<'a> Into<Value<'a>> for String {
    fn into(self) -> Value<'a> {
        Value::String(self)
    }
}
impl<'a> Into<Value<'a>> for i32 {
    fn into(self) -> Value<'a> {
        Value::I32(self)
    }
}
impl<'a> Into<Value<'a>> for i64 {
    fn into(self) -> Value<'a> {
        Value::I64(self)
    }
}
impl<'a> Into<Value<'a>> for f32 {
    fn into(self) -> Value<'a> {
        Value::F32(self)
    }
}
impl<'a> Into<Value<'a>> for f64 {
    fn into(self) -> Value<'a> {
        Value::F64(self)
    }
}
impl<'a> Into<Value<'a>> for bool {
    fn into(self) -> Value<'a> {
        Value::Bool(self)
    }
}
impl<'a> Into<Value<'a>> for Case<'a> {
    fn into(self) -> Value<'a> {
        Value::Raw(format!("{}", self))
    }
}

impl<'a> Into<Value<'a>> for Select<'a> {
    fn into(self) -> Value<'a> {
        Value::Raw(format!("(\n {} \n)", self))
    }
}