Skip to main content

LocalSimpleFnHandler

Struct LocalSimpleFnHandler 

Source
pub struct LocalSimpleFnHandler<F, T, R = HandlerResult<T>>
where T: Serialize,
{ /* private fields */ }
Expand description

A local handler wrapper for functions that don’t need CommandContext.

This is the simpler variant of LocalFnHandler for handlers that only need ArgMatches. The context parameter is accepted but ignored internally.

Similar to SimpleFnHandler, but:

  • Does NOT require Send + Sync
  • Takes FnMut instead of Fn (allows mutation)

§Example

use standout_dispatch::{LocalSimpleFnHandler, LocalHandler, CommandContext};
use clap::ArgMatches;

let mut call_count = 0;
let mut handler = LocalSimpleFnHandler::new(|m: &ArgMatches| {
    call_count += 1;
    Ok::<_, anyhow::Error>(format!("Call #{}", call_count))
});

Implementations§

Source§

impl<F, T, R> LocalSimpleFnHandler<F, T, R>
where F: FnMut(&ArgMatches) -> R, R: IntoHandlerResult<T>, T: Serialize,

Source

pub fn new(f: F) -> Self

Creates a new LocalSimpleFnHandler wrapping the given FnMut closure.

Trait Implementations§

Source§

impl<F, T, R> LocalHandler for LocalSimpleFnHandler<F, T, R>
where F: FnMut(&ArgMatches) -> R, R: IntoHandlerResult<T>, T: Serialize,

Source§

type Output = T

The output type produced by this handler (must be serializable)
Source§

fn handle( &mut 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 LocalSimpleFnHandler<F, T, R>
where F: Freeze,

§

impl<F, T, R> RefUnwindSafe for LocalSimpleFnHandler<F, T, R>
where F: RefUnwindSafe,

§

impl<F, T, R> Send for LocalSimpleFnHandler<F, T, R>
where F: Send,

§

impl<F, T, R> Sync for LocalSimpleFnHandler<F, T, R>
where F: Sync,

§

impl<F, T, R> Unpin for LocalSimpleFnHandler<F, T, R>
where F: Unpin,

§

impl<F, T, R> UnwindSafe for LocalSimpleFnHandler<F, T, R>
where F: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.