pub(crate) fn parse_and_execute<E, W: Write>(
    program: &str,
    args: &[String],
    commands: Vec<Command<E>>,
    output_writer: Option<W>,
) -> Result<Option<CommandResult<E>>> {
    parse_and_execute_impl(program, args, commands, output_writer, true, true)
}
/// This function parses the given program parameters, and calls the appropriate
/// command callback. There are essentially three return values:
///
/// - An error, if the process of trying to execute the command resulted in an
///   unexpected error.
///
/// - Ok(None), if the command was not executed, but no error should be surfaced
///   to the caller (e.g., if the process' input flags were invalid in some way,
///   but the error was handled internally by printing program help).
///
/// - The result returned by the actual command, which was executed.
///
/// This is the function which should be used for typical multi-command
/// programs.
This function parses the given program parameters, and calls the appropriate
command callback. There are essentially three return values.

An error, if the process of trying to execute the command resulted in an
unexpected error.

Ok(None), if the command was not executed, but no error should be surfaced
to the caller .

The result returned by the actual command, which was executed.

This is the function which should be used for typical multi-command
programs.
This function parses the given program parameters and calls the appropriate command callback . There are essentially three return values . An error if the process of trying to execute the command resulted in an unexpected error . Ok ( None ) if the command was not executed but no error should be surfaced to the caller . The result returned by the actual command which was executed . This is the function which should be used for typical multi - command programs .
pub(crate) fn parse_and_execute<E, W: Write>(
    program: &str,
    args: &[String],
    commands: Vec<Command<E>>,
    output_writer: Option<W>,
) -> Result<Option<CommandResult<E>>> {
    parse_and_execute_impl(program, args, commands, output_writer, true, true)
}
pub ( crate ) fn parse_and_execute < E , W : Write > ( program : & str , args : & [ String ] , commands : Vec < Command < E > > , output_writer : Option < W > , ) -> Result < Option < CommandResult < E > > > { parse_and_execute_impl ( program , args , commands , output_writer , true , true ) }
This function parses the given program parameters, and calls the appropriate
command callback.
This function parses the given program parameters and calls the appropriate command callback .
program
&str
args
&[String]
commands
Vec<Command<E>>
output_writer
Option<W>
program
&str
args
&[String]
commands
Vec<Command<E>>
output_writer
Option<W>