use logcall::logcall;
use logforth::append;
use logforth::filter::EnvFilter;
#[logcall]
fn add(a: i32, b: i32) -> i32 {
a + b
}
#[logcall("info")]
fn multiply(a: i32, b: i32) -> i32 {
a * b
}
#[logcall(ok = "info", err = "error")]
fn divide(a: i32, b: i32) -> Result<i32, String> {
if b == 0 {
Err("Division by zero".to_string())
} else {
Ok(a / b)
}
}
#[logcall(err = "error")]
fn divide2(a: usize, b: usize) -> Result<usize, String> {
if b == 0 {
Err("Division by zero".to_string())
} else {
Ok(a / b)
}
}
#[logcall(input = "a = {a:?}, ..")]
fn subtract(a: i32, b: i32) -> i32 {
a - b
}
#[logcall(output = ": {:?}")]
fn negate(a: i32) -> i32 {
-a
}
#[logcall(output = "")]
fn ping(a: i32) -> i32 {
a
}
fn main() {
logforth::builder()
.dispatch(|d| {
d.filter(EnvFilter::from_default_env_or("trace"))
.append(append::Stderr::default())
})
.apply();
add(2, 3);
multiply(2, 3);
divide(2, 0).ok();
divide2(2, 0).ok();
subtract(3, 2);
negate(5);
ping(42);
}