expressions/
expressions.rs1use pklrust::{EvaluatorManager, EvaluatorOptions, ModuleSource};
3
4fn main() -> Result<(), Box<dyn std::error::Error>> {
5 let mut manager = EvaluatorManager::new()?;
6 let evaluator = manager.new_evaluator(EvaluatorOptions::preconfigured())?;
7
8 let source = ModuleSource::text(
9 r#"
10 name = "my-app"
11 port = 8080
12 url = "http://localhost:\(port)"
13 hosts = new Listing { "web-1"; "web-2"; "web-3" }
14 "#,
15 );
16
17 let full = manager.evaluate_module(&evaluator, source.clone())?;
19 println!("Full module:\n{full:#?}\n");
20
21 let name = manager.evaluate_expression(&evaluator, source.clone(), Some("name"))?;
23 println!("name = {name:?}");
24
25 let url = manager.evaluate_expression(&evaluator, source.clone(), Some("url"))?;
26 println!("url = {url:?}");
27
28 let hosts = manager.evaluate_expression(&evaluator, source, Some("hosts"))?;
29 println!("hosts = {hosts:?}");
30
31 manager.close_evaluator(&evaluator)?;
32 Ok(())
33}