arkham/examples/fib.rs

30 lines
643 B
Rust
Raw Normal View History

2021-06-19 07:20:29 +00:00
use arkham::{App, Context, Opt};
fn main() {
let _ = App::new()
.name("Fibonacci App")
.version("1.0")
.opt(Opt::scalar("count").short("n").long("num"))
.handler(fibonacci_handler)
.run()
.unwrap();
}
fn fibonacci_handler(_app: &App, ctx: &Context, _args: &[String]) {
let v = fibonacci(
ctx.get_string("count")
.unwrap_or("1".to_string())
.parse()
.unwrap_or(1),
);
println!("Value is: {}", v);
}
fn fibonacci(n: u32) -> u32 {
match n {
0 => 1,
1 => 1,
_ => fibonacci(n - 1) + fibonacci(n - 2),
}
}