pub struct SimpleFnHandler<F, T, R = HandlerResult<T>>{ /* private fields */ }Expand description
A handler wrapper for functions that don’t need CommandContext.
This is the simpler variant of FnHandler for handlers that only need
ArgMatches. The context parameter is accepted but ignored internally.
The closure can return either:
Result<T, E>- automatically wrapped inOutput::RenderHandlerResult<T>- passed through unchanged (forOutput::SilentorOutput::Binary)
§Example
use standout_dispatch::{SimpleFnHandler, Handler, CommandContext, Output};
use clap::ArgMatches;
// Handler that doesn't need context - just uses ArgMatches
let handler = SimpleFnHandler::new(|_m: &ArgMatches| {
Ok::<_, anyhow::Error>("Hello, world!".to_string())
});
// Can still be used via Handler trait (context is ignored)
let ctx = CommandContext::default();
let matches = clap::Command::new("test").get_matches_from(vec!["test"]);
let result = handler.handle(&matches, &ctx);
assert!(matches!(result, Ok(Output::Render(_))));Implementations§
Source§impl<F, T, R> SimpleFnHandler<F, T, R>
impl<F, T, R> SimpleFnHandler<F, T, R>
Trait Implementations§
Source§impl<F, T, R> Handler for SimpleFnHandler<F, T, R>
impl<F, T, R> Handler for SimpleFnHandler<F, T, R>
Source§fn handle(
&self,
matches: &ArgMatches,
_ctx: &CommandContext,
) -> HandlerResult<T>
fn handle( &self, matches: &ArgMatches, _ctx: &CommandContext, ) -> HandlerResult<T>
Execute the handler with the given matches and context.
Auto Trait Implementations§
impl<F, T, R> Freeze for SimpleFnHandler<F, T, R>where
F: Freeze,
impl<F, T, R> RefUnwindSafe for SimpleFnHandler<F, T, R>where
F: RefUnwindSafe,
impl<F, T, R> Send for SimpleFnHandler<F, T, R>where
F: Send,
impl<F, T, R> Sync for SimpleFnHandler<F, T, R>where
F: Sync,
impl<F, T, R> Unpin for SimpleFnHandler<F, T, R>where
F: Unpin,
impl<F, T, R> UnwindSafe for SimpleFnHandler<F, T, R>where
F: UnwindSafe,
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
Mutably borrows from an owned value. Read more