Skip to main content

simple_constraints/
simple_constraints.rs

1/// Example: Simple constraints with comparisons
2///
3/// Tests binary operators in constraints
4
5fn main() -> Result<(), Box<dyn std::error::Error>> {
6    let source = r#"
7        var 1..10: x;
8        var 1..10: y;
9        
10        constraint x < y;
11        constraint x + y < 15;
12        
13        solve satisfy;
14    "#;
15
16    println!("Parsing model with constraints...");
17    let ast = zelen::parse(source)?;
18    
19    println!("Translating to Selen Model...");
20    let model = zelen::translate(&ast)?;
21    
22    println!("Solving...");
23    match model.solve() {
24        Ok(solution) => {
25            println!("\n✓ Solution found!");
26            println!("{:?}", solution);
27        }
28        Err(e) => {
29            println!("No solution found: {:?}", e);
30        }
31    }
32
33    Ok(())
34}