feat(tvix/eval): Support builtins.length

Get the length of a list

Change-Id: I41d91e96d833269541a1b3c23b7cc879f96d1e5a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6407
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
William Carroll 2022-08-29 17:33:30 -07:00 committed by tazjin
parent 15e2bc54f1
commit 197fe37dae
5 changed files with 24 additions and 0 deletions

View file

@ -103,6 +103,17 @@ impl Value {
}
}
pub fn as_list(&self) -> EvalResult<&NixList> {
match self {
Value::List(xs) => Ok(xs),
other => Err(ErrorKind::TypeError {
expected: "list",
actual: other.type_of(),
}
.into()),
}
}
pub fn to_string(self) -> EvalResult<NixString> {
match self {
Value::String(s) => Ok(s),