use clap::Parser;
use std::io::Write;
#[derive(Parser)]
#[command(version, about)]
struct Cli {}
fn run(cli: Cli, mut out: impl Write) -> anyhow::Result<()> {
let _ = cli;
writeln!(out, "hello premise-clap-cli!")?;
Ok(())
}
fn main() -> anyhow::Result<()> {
let cli = Cli::parse();
run(cli, std::io::stdout())
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn prints_the_exact_greeting() {
let cli = Cli::parse_from(["premise-clap-cli"]);
let mut out = Vec::new();
run(cli, &mut out).unwrap();
assert_eq!(String::from_utf8(out).unwrap(), "hello premise-clap-cli!\n");
}
}