#operator #ternary #catch #input

op

a simple library for operator

6 releases

Uses new Rust 2024

new 0.3.0 Mar 15, 2025
0.2.0 Mar 9, 2025
0.1.4 Oct 6, 2024
0.1.3 Feb 22, 2024
0.1.2 Jan 20, 2024

#4 in #catch

Download history 1/week @ 2024-11-20 114/week @ 2025-03-05

114 downloads per month

Unlicense

5KB

a simple library for operator

Example - Ternary

 use op::if_else;
 let n = if_else!(true => 0; 1);
 assert_eq!(n, 0);
 let n = if_else!(false => 0; 1);
 assert_eq!(n, 1);

Example - catch

use op::catch;
type Error = &'static str;
let result1: Result<i32, &'static str> = Ok(1);
let result2: Result<i32, &'static str> = Ok(2);
let result3: Result<i32, &'static str> = Err("Error");
assert_eq!(Ok(3), catch!(Error -> Ok(result1? + result2?)));
assert_eq!(Err("Error"), catch!(Error -> Ok(result2? + result3?)));

let option1: Option<i32> = Some(1);
let option2: Option<i32> = Some(2);
let option3: Option<i32> = None;
assert_eq!(Some(3), catch!(Some(option1? + option2?)));
assert_eq!(None, catch!(Some(option2? + option3?)));

Dependencies

~94KB