# appentry


A minimalist command-line argument parsing library
# Usage
```shell
cargo add appentry
```
Hello World:
```rust
#[appentry::appentry]
fn add(x: i32, y: i32) -> anyhow::Result<()> {
println!("{}", x + y);
Ok(())
}
fn main() -> anyhow::Result<()> {
appentry::dispatch(true)?;
Ok(())
}
/*
$ myapp --help
Usage: appentry.exe [Options]
Options:
-x|--x <i32>
-y|--y <i32>
$ myapp -x 1 -y 2
3
*/
```
Multiple methods & async & docs:
```rust
/// Print the application version
///
/// # Arguments
///
/// This function takes no arguments
#[appentry::appentry]
fn version() {
println!(
"{} {}",
std::env!("CARGO_PKG_NAME"),
std::env!("CARGO_PKG_VERSION")
);
}
/// Add two numbers
///
/// # Arguments
///
/// * `x` - The first number to add
/// * `y` - The second number to add
#[appentry::appentry]
async fn add(x: i32, y: i32) -> anyhow::Result<()> {
println!("{}", x + y);
Ok(())
}
#[tokio::main]
async fn main() -> anyhow::Result<()> {
appentry::dispatch_async(true).await?;
Ok(())
}
/*
$ myapp --help
Desc: Add two numbers
-x|--x <i32> The first number to add
-y|--y <i32> The second number to add
Desc: Print the application version
$ myapp --version
myapp 0.1.0
*/
```