From 9c4e3787f59dafc6b629e4c3bcd3d0ac372e982e Mon Sep 17 00:00:00 2001 From: utam0k Date: Sun, 12 Jul 2020 18:19:07 +0900 Subject: [PATCH] Allow the calculation of bytes and int. --- crates/nu-cli/src/data/value.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/crates/nu-cli/src/data/value.rs b/crates/nu-cli/src/data/value.rs index fd6e3f2623..0829d772d0 100644 --- a/crates/nu-cli/src/data/value.rs +++ b/crates/nu-cli/src/data/value.rs @@ -55,6 +55,16 @@ pub fn compute_values( }?; Ok(UntaggedValue::Primitive(Primitive::Filesize(result))) } + (Primitive::Filesize(x), Primitive::Int(y)) => match operator { + Operator::Plus => Ok(UntaggedValue::Primitive(Primitive::Int(x + y))), + Operator::Minus => Ok(UntaggedValue::Primitive(Primitive::Int(x - y))), + Operator::Multiply => Ok(UntaggedValue::Primitive(Primitive::Int(x * y))), + Operator::Divide => Ok(UntaggedValue::Primitive(Primitive::Decimal( + bigdecimal::BigDecimal::from(x.clone()) + / bigdecimal::BigDecimal::from(y.clone()), + ))), + _ => Err((left.type_name(), right.type_name())), + }, (Primitive::Int(x), Primitive::Int(y)) => match operator { Operator::Plus => Ok(UntaggedValue::Primitive(Primitive::Int(x + y))), Operator::Minus => Ok(UntaggedValue::Primitive(Primitive::Int(x - y))),