1use cel_core::{CelType, Env, MapActivation, Value};
6
7fn main() {
8 let env = Env::with_standard_library().with_variable("numbers", CelType::list(CelType::Int));
9
10 let mut activation = MapActivation::new();
11 activation.insert("numbers", Value::list([1, 5, 3, 8, 2]));
12
13 let ast = env.compile("numbers.filter(x, x > 3)").unwrap();
15 let program = env.program(&ast).unwrap();
16 let result = program.eval(&activation);
17 println!("filter(x, x > 3): {}", result);
18
19 let ast = env.compile("numbers.map(x, x * 2)").unwrap();
21 let program = env.program(&ast).unwrap();
22 let result = program.eval(&activation);
23 println!("map(x, x * 2): {}", result);
24
25 let ast = env.compile("numbers.exists(x, x > 7)").unwrap();
27 let program = env.program(&ast).unwrap();
28 let result = program.eval(&activation);
29 println!("exists(x, x > 7): {}", result);
30
31 let ast = env.compile("numbers.all(x, x > 0)").unwrap();
33 let program = env.program(&ast).unwrap();
34 let result = program.eval(&activation);
35 println!("all(x, x > 0): {}", result);
36
37 let ast = env.compile("numbers.size()").unwrap();
39 let program = env.program(&ast).unwrap();
40 let result = program.eval(&activation);
41 println!("size(): {}", result);
42
43 let ast = env.compile("5 in numbers").unwrap();
45 let program = env.program(&ast).unwrap();
46 let result = program.eval(&activation);
47 println!("5 in numbers: {}", result);
48}