aarty/src/args.rs

46 lines
1.5 KiB
Rust
Raw Normal View History

2022-10-03 14:04:38 +00:00
pub mod args {
use clap::{Parser, arg, ValueEnum, ColorChoice};
#[derive(Parser)]
#[command(author, version, about, long_about=None, color=ColorChoice::Always)]
pub struct Arguments {
/// The art mode to use
#[arg(short, long, default_value="normal-ascii")]
pub mode: Mode,
#[arg(long, default_value="stdout", alias="mo")]
pub output_method: OutputMethod,
/// The image to convert to ASCII art
pub image: String,
2022-10-03 14:22:08 +00:00
/// The character to use for drawing the image (lighter to darker)
/// You can user one character if you uses the color mode
#[arg(short, long, default_value=" .,-~:;=!*#$@")]
pub characters: String,
2022-10-03 14:04:38 +00:00
/// The output file to write to (if output_method is file)
2022-10-03 14:22:08 +00:00
#[arg(short, long, default_value="ascii_image.txt")]
pub output: String,
2022-10-03 14:04:38 +00:00
}
#[derive(Copy, Clone, ValueEnum, Debug, PartialOrd, Eq, PartialEq)]
pub enum Mode {
/// Normal ASCII art
#[clap(alias = "n")]
NormalAscii,
/// Colored ASCII art, the colors are based on the terminal colors
#[clap(alias = "c")]
COLORED,
}
#[derive(Copy, Clone, ValueEnum, Debug, PartialOrd, Eq, PartialEq)]
pub enum OutputMethod {
/// Save the ascii art to a file
#[clap(alias = "f")]
File,
#[clap(alias = "c")]
/// Copy the ascii art to the clipboard
Clipboard,
/// Print the ascii art to the terminal
#[clap(alias = "s")]
Stdout,
}
}