diff options
author | Vincent Ambo <mail@tazj.in> | 2022-08-08T14·09+0300 |
---|---|---|
committer | tazjin <tazjin@tvl.su> | 2022-08-13T11·50+0000 |
commit | d26c097d1b5f99ace10e60243280f4687cfc3cb9 (patch) | |
tree | efdad71e542e854e2e42a34e9bf6ad048c235223 /tvix/eval/src/value.rs | |
parent | fab5d23f143095fffcdcf7516e42594ce5c5e041 (diff) |
feat(tvix/eval): add module for string type implementation r/4421
Change-Id: I5e4465acc4a676c10d7374b14f7a09240202b466 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6085 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
Diffstat (limited to 'tvix/eval/src/value.rs')
-rw-r--r-- | tvix/eval/src/value.rs | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/tvix/eval/src/value.rs b/tvix/eval/src/value.rs deleted file mode 100644 index a4656b1b9cb7..000000000000 --- a/tvix/eval/src/value.rs +++ /dev/null @@ -1,55 +0,0 @@ -//! This module implements the backing representation of runtime -//! values in the Nix language. - -use std::fmt::Display; - -use crate::errors::{Error, EvalResult}; - -#[derive(Clone, Copy, Debug, PartialEq)] -pub enum Value { - Null, - Bool(bool), - Integer(i64), - Float(f64), -} - -impl Value { - pub fn is_number(&self) -> bool { - match self { - Value::Integer(_) => true, - Value::Float(_) => true, - _ => false, - } - } - - pub fn type_of(&self) -> &'static str { - match self { - Value::Null => "null", - Value::Bool(_) => "bool", - Value::Integer(_) => "int", - Value::Float(_) => "float", - } - } - - pub fn as_bool(self) -> EvalResult<bool> { - match self { - Value::Bool(b) => Ok(b), - other => Err(Error::TypeError { - expected: "bool", - actual: other.type_of(), - }), - } - } -} - -impl Display for Value { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - Value::Null => f.write_str("null"), - Value::Bool(true) => f.write_str("true"), - Value::Bool(false) => f.write_str("false"), - Value::Integer(num) => f.write_fmt(format_args!("{}", num)), - Value::Float(num) => f.write_fmt(format_args!("{}", num)), - } - } -} |