use cirious_codex_result::{codex_ensure, codex_ok, Result};
fn process_order(id: u32, amount: f64) -> Result<String> {
codex_ensure!(id > 0, "INVALID_ID", "Order ID must be positive", "id" => id.to_string());
codex_ensure!(amount > 0.0, "INVALID_AMOUNT", "Amount must be > 0", "amount" => amount.to_string());
codex_ok!(format!("Order {} processed", id), "status" => "complete")
}
fn main() {
match process_order(101, 50.5) {
Ok(res) => println!("✅ {}", res.value),
Err(e) => println!("❌ Error: {}", e.cause()),
}
}