Struct Error
struct Error<F: ErrorFormatter = DefaultFormatter> { ... }
Command Line Argument Parser Error
See Command::error to create an error.
Implementations
impl<F: ErrorFormatter> Error<F>
fn raw<impl Display: Display>(kind: ErrorKind, message: impl Display) -> SelfCreate an unformatted error
This is for you need to pass the error up to a place that has access to the
Commandat which point you can callError::format.Prefer
Command::errorfor generating errors.fn format(self: Self, cmd: &mut Command) -> SelfFormat the existing message with the Command's context
fn new(kind: ErrorKind) -> SelfCreate an error with a pre-defined message
See also
Example
#fn with_cmd(self: Self, cmd: &Command) -> SelfApply
Command's formatting to the errorGenerally, this is used with
Error::newfn apply<EF: ErrorFormatter>(self: Self) -> Error<EF>Apply an alternative formatter to the error
Example
# use clap_builder as clap; # use Command; # use Arg; # use KindFormatter; let cmd = new .arg; let matches = cmd .try_get_matches_from .map_err .unwrap_or_else;fn kind(self: &Self) -> ErrorKindType of error for programmatic processing
fn context(self: &Self) -> impl Iterator<Item = (ContextKind, &ContextValue)>Additional information to further qualify the error
fn get(self: &Self, kind: ContextKind) -> Option<&ContextValue>Lookup a piece of context
fn insert(self: &mut Self, kind: ContextKind, value: ContextValue) -> Option<ContextValue>Insert a piece of context
fn use_stderr(self: &Self) -> boolShould the message be written to
stdoutor not?fn exit_code(self: &Self) -> i32Returns the exit code that
.exitwill exit the process with.When the error's kind would print to
stderrthis returns2, else it returns0.fn exit(self: &Self) -> neverPrints the error and exits.
Depending on the error kind, this either prints to
stderrand exits with a status of2or prints tostdoutand exits with a status of0.fn print(self: &Self) -> io::Result<()>Prints formatted and colored error to
stdoutorstderraccording to its error kindExample
# use clap_builder as clap; use clap::Command; match Command::new("Command").try_get_matches() { Ok(matches) => { // do_something }, Err(err) => { err.print().expect("Error writing Error"); // do_something }, };fn render(self: &Self) -> StyledStrRender the error message to a
StyledStr.Example
# use clap_builder as clap; use clap::Command; match Command::new("Command").try_get_matches() { Ok(matches) => { // do_something }, Err(err) => { let err = err.render(); println!("{err}"); // do_something }, };
impl<F = RichFormatter> RefUnwindSafe for Error<F>
impl<F = RichFormatter> UnwindSafe for Error<F>
impl<F> Freeze for Error<F>
impl<F> Send for Error<F>
impl<F> Sync for Error<F>
impl<F> Unpin for Error<F>
impl<F: ErrorFormatter> Debug for Error<F>
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result<(), fmt::Error>
impl<F: ErrorFormatter> Display for Error<F>
fn fmt(self: &Self, f: &mut Formatter<'_>) -> fmt::Result
impl<F: ErrorFormatter> Error for Error<F>
fn source(self: &Self) -> Option<&dyn error::Error + 'static>
impl<F: ErrorFormatter> From for Error<F>
fn from(e: io::Error) -> Self
impl<F: ErrorFormatter> From for Error<F>
fn from(e: fmt::Error) -> Self
impl<T> Any for Error<F>
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for Error<F>
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for Error<F>
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> From for Error<F>
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToString for Error<F>
fn to_string(self: &Self) -> String
impl<T, U> Into for Error<F>
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for Error<F>
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for Error<F>
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>