use std::borrow::Cow;
use std::path::PathBuf;
#[derive(Debug, Clone)]
#[allow(dead_code)]
pub enum ArgKind {
String,
Bool,
Int,
FilePath,
Choice(Vec<Cow<'static, str>>),
}
#[derive(Debug, Clone)]
pub struct CommandArg {
pub name: Cow<'static, str>,
pub description: Cow<'static, str>,
pub kind: ArgKind,
pub required: bool,
}
impl CommandArg {
#[allow(dead_code)]
pub fn new(
name: impl Into<Cow<'static, str>>,
description: impl Into<Cow<'static, str>>,
kind: ArgKind,
required: bool,
) -> Self {
Self {
name: name.into(),
description: description.into(),
kind,
required,
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum ArgValue {
String(String),
Bool(bool),
Int(i64),
FilePath(PathBuf),
}