Struct Error
pub struct Error<F: ErrorFormatter = DefaultFormatter> { /* private fields */ }
Command Line Argument Parser Error
See Command::error to create an error.
Implementations
impl<F: ErrorFormatter> Error<F>
fn raw(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, 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, cmd: &Command) -> SelfApply
Command's formatting to the errorGenerally, this is used with
Error::newfn apply<EF: ErrorFormatter>(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) -> ErrorKindType of error for programmatic processing
fn context(&self) -> impl Iterator<Item = (ContextKind, &ContextValue)>Additional information to further qualify the error
fn get(&self, kind: ContextKind) -> Option<&ContextValue>Lookup a piece of context
fn insert(&mut self, kind: ContextKind, value: ContextValue) -> Option<ContextValue>Insert a piece of context
If this
ContextKindis already present, its value is replaced and the old value is returned.fn remove(&mut self, kind: ContextKind) -> Option<ContextValue>Remove a piece of context, return the old value if any
The context is currently implemented in a vector, so
removetakes linear time.fn use_stderr(&self) -> boolShould the message be written to
stdoutor not?fn exit_code(&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) -> 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) -> 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) -> 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 }, };
Trait Implementations
impl<F: ErrorFormatter> Debug for Error<F>
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
impl<F: ErrorFormatter> Display for Error<F>
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl<F: ErrorFormatter> Error for Error<F>
fn source(&self) -> Option<&dyn Error + 'static>
impl<F: ErrorFormatter> From<Error> for Error<F>
fn from(e: Error) -> Self
impl<F: ErrorFormatter> From<Error> for Error<F>
fn from(e: Error) -> Self
Auto Trait Implementations
impl<F = RichFormatter> !RefUnwindSafe for Error<F>
impl<F = RichFormatter> !UnwindSafe for Error<F>
impl<F> Freeze for Error<F>
where
PhantomData<F>: Freeze,
impl<F> Send for Error<F>
where
PhantomData<F>: Send,
impl<F> Sync for Error<F>
where
PhantomData<F>: Sync,
impl<F> Unpin for Error<F>
where
PhantomData<F>: Unpin,
impl<F> UnsafeUnpin for Error<F>
where
PhantomData<F>: UnsafeUnpin,
Blanket Implementations
impl<T> Any for Error<F>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Error<F>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Error<F>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> From<T> for Error<F>
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToString for Error<F>
where
T: Display + ?Sized,
fn to_string(&self) -> String
impl<T, U> Into<U> for Error<F>
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for Error<F>
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for Error<F>
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>