30 lines
643 B
Rust
30 lines
643 B
Rust
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),
|
|
}
|
|
}
|