use thiserror::Error;
use crate::model::Nargs;
pub trait CliOption {}
pub trait CliArgument {}
#[doc(hidden)]
pub trait GenericCapturable<'a, T> {
fn matched(&mut self);
fn capture(&mut self, token: &str) -> Result<(), InvalidCapture>;
fn nargs(&self) -> Nargs;
}
#[derive(Debug, Error)]
#[doc(hidden)]
pub enum InvalidCapture {
#[error("cannot convert '{token}' to {type_name}.")]
InvalidConversion {
token: String,
type_name: &'static str,
},
#[error("cannot collect '{token}': {message}.")]
InvalidAdd { token: String, message: String },
}