aprender_contracts_cli/commands/invariants.rs
1use std::path::Path;
2
3use provable_contracts::invariant_gen::generate_invariants;
4use provable_contracts::schema::parse_contract;
5
6pub fn run(path: &Path) -> Result<(), Box<dyn std::error::Error>> {
7 let contract = parse_contract(path)?;
8 let output = generate_invariants(&contract);
9
10 if output.is_empty() {
11 println!("No type_invariants defined in this contract.");
12 } else {
13 print!("{output}");
14 }
15
16 Ok(())
17}