--- a/crates/jrsonnet-evaluator/src/function/arglike.rs +++ b/crates/jrsonnet-evaluator/src/function/arglike.rs @@ -96,6 +96,34 @@ fn named_names(&self, handler: &mut dyn FnMut(&IStr)); } +impl ArgsLike for Vec { + fn unnamed_len(&self) -> usize { + self.len() + } + fn unnamed_iter( + &self, + _s: State, + _ctx: Context, + _tailstrict: bool, + handler: &mut dyn FnMut(usize, Thunk) -> Result<()>, + ) -> Result<()> { + for (idx, el) in self.iter().enumerate() { + handler(idx, Thunk::evaluated(el.clone()))? + } + Ok(()) + } + fn named_iter( + &self, + _s: State, + _ctx: Context, + _tailstrict: bool, + _handler: &mut dyn FnMut(&IStr, Thunk) -> Result<()>, + ) -> Result<()> { + Ok(()) + } + fn named_names(&self, _handler: &mut dyn FnMut(&IStr)) {} +} + impl ArgsLike for ArgsDesc { fn unnamed_len(&self) -> usize { self.unnamed.len()