use crate::errors::ShellError; use crate::object::Value; use crate::prelude::*; use derive_new::new; #[derive(new)] pub struct ToArrayBlueprint; impl crate::CommandBlueprint for ToArrayBlueprint { fn create( &self, _args: Vec, _host: &dyn Host, _env: &mut Environment, ) -> Result, ShellError> { Ok(Box::new(ToArray)) } } #[derive(new)] pub struct ToArray; impl crate::Command for ToArray { fn run(&mut self, stream: VecDeque) -> Result, ShellError> { let out = stream.into_iter().collect(); Ok(ReturnValue::single(Value::List(out))) } } crate fn to_array(stream: VecDeque) -> VecDeque { let out = Value::List(stream.into_iter().collect()); let mut stream = VecDeque::new(); stream.push_back(out); stream }