1use cel_cxx::*;
4
5type Result<T, E = Error> = std::result::Result<T, E>;
6
7fn main() -> Result<(), Error> {
8 println!("š CEL-CXX Basic Example\n");
9
10 let env = Env::builder()
12 .declare_variable::<String>("name")?
13 .declare_variable::<i64>("age")?
14 .register_global_function("greet", |name: &str| format!("Hello, {}!", name))?
15 .register_global_function("is_adult", |age: i64| age >= 18)?
16 .build()?;
17
18 let expressions = vec![
20 "greet(name)",
21 "is_adult(age)",
22 "'Name: ' + name + ', Age: ' + string(age)",
23 "age >= 18 ? 'adult' : 'minor'",
24 ];
25
26 let activation = Activation::new()
27 .bind_variable("name", "Alice")?
28 .bind_variable("age", 25i64)?;
29
30 for expr in expressions {
31 let program = env.compile(expr)?;
32 let result = program.evaluate(&activation)?;
33 println!("{} = {}", expr, result);
34 }
35
36 println!("\nā
Basic example completed!");
37 Ok(())
38}