From e33eaa2cb59cda63d1ae034d5bb00c3bf1fd435e Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Fri, 12 Aug 2022 17:44:48 +0300 Subject: feat(tvix/eval): add Path representation to Value enum Change-Id: I4827384201912131ea8fc2362188dcd862b94852 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6181 Tested-by: BuildkiteCI Reviewed-by: grfn Reviewed-by: sterni --- tvix/eval/src/value/mod.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tvix/eval/src/value/mod.rs b/tvix/eval/src/value/mod.rs index 3889a79835..5360f0cc7d 100644 --- a/tvix/eval/src/value/mod.rs +++ b/tvix/eval/src/value/mod.rs @@ -1,7 +1,7 @@ //! This module implements the backing representation of runtime //! values in the Nix language. -use std::fmt::Display; use std::rc::Rc; +use std::{fmt::Display, path::PathBuf}; mod attrs; mod list; @@ -19,6 +19,7 @@ pub enum Value { Integer(i64), Float(f64), String(NixString), + Path(PathBuf), Attrs(Rc), List(NixList), @@ -45,6 +46,7 @@ impl Value { Value::Integer(_) => "int", Value::Float(_) => "float", Value::String(_) => "string", + Value::Path(_) => "path", Value::Attrs(_) => "set", Value::List(_) => "list", @@ -106,6 +108,7 @@ impl Display for Value { Value::Bool(false) => f.write_str("false"), Value::Integer(num) => write!(f, "{}", num), Value::String(s) => s.fmt(f), + Value::Path(p) => p.display().fmt(f), Value::Attrs(attrs) => attrs.fmt(f), Value::List(list) => list.fmt(f), -- cgit 1.4.1