Enum bpaf::ParseFailure
source · pub enum ParseFailure {
Stdout(Doc, bool),
Completion(String),
Stderr(Doc),
}
Expand description
Unsuccessful command line parsing outcome, use it for unit tests
When OptionParser::run_inner
produces Err(ParseFailure)
it means that the parser couldn’t produce the value it supposed to produce and the program
should terminate.
If you are handling variants manually - Stdout
contains formatted output and you can use any
logging framework to produce the output, Completion
should be printed to stdout unchanged -
shell completion mechanism relies on that. In both cases application should exit with error
code of 0. Stderr
variant indicates a genuinly parsing error which should be printed to
stderr or a logging framework of your choice as an error and the app should exit with error
code of 1. ParseFailure::exit_code
is a helper method that performs printing and produces
the exit code to use.
For purposes of for unit testing for user parsers, you can consume it with
ParseFailure::unwrap_stdout
and ParseFailure::unwrap_stdout
- both of which produce a
an unformatted String
that parser might produce if failure type is correct or panics
otherwise.
Variants§
Stdout(Doc, bool)
Print this to stdout and exit with success code
Completion(String)
This also goes to stdout with exit code of 0, this cannot be Doc because completion needs more control about rendering
Stderr(Doc)
Print this to stderr and exit with failure code
Implementations§
source§impl ParseFailure
impl ParseFailure
sourcepub fn unwrap_stderr(self) -> String
pub fn unwrap_stderr(self) -> String
sourcepub fn unwrap_stdout(self) -> String
pub fn unwrap_stdout(self) -> String
sourcepub fn print_message(&self, max_width: usize)
pub fn print_message(&self, max_width: usize)
Prints a message to stdout
or stderr
appropriate to the failure.
Trait Implementations§
source§impl Clone for ParseFailure
impl Clone for ParseFailure
source§fn clone(&self) -> ParseFailure
fn clone(&self) -> ParseFailure
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for ParseFailure
impl RefUnwindSafe for ParseFailure
impl Send for ParseFailure
impl Sync for ParseFailure
impl Unpin for ParseFailure
impl UnwindSafe for ParseFailure
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)