vegafusion_runtime/expression/compiler/
array.rs1use crate::expression::compiler::{compile, config::CompilationConfig};
2use datafusion_expr::Expr;
3use datafusion_functions_nested::expr_fn::make_array;
4use vegafusion_common::datafusion_common::DFSchema;
5use vegafusion_core::error::Result;
6use vegafusion_core::proto::gen::expression::ArrayExpression;
7
8pub fn compile_array(
9 node: &ArrayExpression,
10 config: &CompilationConfig,
11 schema: &DFSchema,
12) -> Result<Expr> {
13 let mut elements: Vec<Expr> = Vec::new();
14 for el in &node.elements {
15 let phys_expr = compile(el, config, Some(schema))?;
16 elements.push(phys_expr);
17 }
18 Ok(make_array(elements))
19}