diff options
Diffstat (limited to 'tvix/eval/src/value/mod.rs')
-rw-r--r-- | tvix/eval/src/value/mod.rs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/tvix/eval/src/value/mod.rs b/tvix/eval/src/value/mod.rs index ea0c89e6b6c4..56f8620d3a58 100644 --- a/tvix/eval/src/value/mod.rs +++ b/tvix/eval/src/value/mod.rs @@ -7,8 +7,8 @@ mod attrs; mod string; use crate::errors::{Error, EvalResult}; -use attrs::NixAttrs; -use string::NixString; +pub use attrs::NixAttrs; +pub use string::NixString; #[derive(Clone, Debug, PartialEq)] pub enum Value { @@ -49,6 +49,16 @@ impl Value { }), } } + + pub fn as_string(self) -> EvalResult<NixString> { + match self { + Value::String(s) => Ok(s), + other => Err(Error::TypeError { + expected: "string", + actual: other.type_of(), + }), + } + } } impl Display for Value { |