diff --git a/lib/src/fnc/cast.rs b/lib/src/fnc/cast.rs index 4a3b8b11..d8322799 100644 --- a/lib/src/fnc/cast.rs +++ b/lib/src/fnc/cast.rs @@ -3,70 +3,70 @@ use crate::err::Error; use crate::sql::number::Number; use crate::sql::value::Value; -pub fn run(ctx: &Context, name: &str, val: Value) -> Result { +pub fn run(_: &Context, name: &str, val: Value) -> Result { match name { - "bool" => bool(ctx, val), - "int" => int(ctx, val), - "float" => float(ctx, val), - "string" => string(ctx, val), - "number" => number(ctx, val), - "decimal" => decimal(ctx, val), - "datetime" => datetime(ctx, val), - "duration" => duration(ctx, val), + "bool" => bool(val), + "int" => int(val), + "float" => float(val), + "string" => string(val), + "number" => number(val), + "decimal" => decimal(val), + "datetime" => datetime(val), + "duration" => duration(val), _ => Ok(val), } } -pub fn bool(_: &Context, val: Value) -> Result { +pub fn bool(val: Value) -> Result { match val.is_truthy() { true => Ok(Value::True), false => Ok(Value::False), } } -pub fn int(_: &Context, val: Value) -> Result { +pub fn int(val: Value) -> Result { match val { Value::Number(Number::Int(_)) => Ok(val), _ => Ok(Value::Number(Number::Int(val.as_int()))), } } -pub fn float(_: &Context, val: Value) -> Result { +pub fn float(val: Value) -> Result { match val { Value::Number(Number::Float(_)) => Ok(val), _ => Ok(Value::Number(Number::Float(val.as_float()))), } } -pub fn number(_: &Context, val: Value) -> Result { +pub fn number(val: Value) -> Result { match val { Value::Number(Number::Decimal(_)) => Ok(val), _ => Ok(Value::Number(Number::Decimal(val.as_decimal()))), } } -pub fn decimal(_: &Context, val: Value) -> Result { +pub fn decimal(val: Value) -> Result { match val { Value::Number(Number::Decimal(_)) => Ok(val), _ => Ok(Value::Number(Number::Decimal(val.as_decimal()))), } } -pub fn string(_: &Context, val: Value) -> Result { +pub fn string(val: Value) -> Result { match val { Value::Strand(_) => Ok(val), _ => Ok(Value::Strand(val.as_strand())), } } -pub fn datetime(_: &Context, val: Value) -> Result { +pub fn datetime(val: Value) -> Result { match val { Value::Datetime(_) => Ok(val), _ => Ok(Value::Datetime(val.as_datetime())), } } -pub fn duration(_: &Context, val: Value) -> Result { +pub fn duration(val: Value) -> Result { match val { Value::Duration(_) => Ok(val), _ => Ok(Value::Duration(val.as_duration())),