use clap::{Args, Parser, Subcommand};
use clio::*;
#[derive(Parser, Debug)]
#[command(
author,
version,
about = "Encode or decode given data with base64 encoding",
long_about = None,
)]
#[command(propagate_version = true)]
pub(crate) struct CliArgs {
#[clap(subcommand)]
pub(crate) command: EncodeOption,
}
#[derive(Subcommand, Debug)]
pub(crate) enum EncodeOption {
Encode(IOArgs),
Decode(IOArgs),
}
#[derive(Args, Debug)]
pub(crate) struct IOArgs {
#[clap(long, short, value_parser)]
pub(crate) r#in: Input,
#[clap(long, short, value_parser, default_value = "-")]
pub(crate) out: Output,
#[clap(long, short, value_parser, default_value_t = false)]
pub(crate) no_padding: bool,
#[clap(long, short, value_parser, default_value_t = false)]
pub(crate) urlsafe: bool,
}