Accepts

Trait Accepts 

Source
pub trait Accepts<Value> {
    // Required method
    fn accept(&self, value: Value);
}
Expand description

Receives a value and processes it immediately.

The trait abstracts over acceptors: objects that can be invoked with a value without returning any meaningful result. This is useful for sinks, callbacks, or visitor-like APIs where forwarding or side effects are all that is needed.

use accepts::Accepts;

struct Printer;

impl Accepts<&'static str> for Printer {
    fn accept(&self, value: &'static str) {
        println!("{}", value);
    }
}

let printer = Printer;
printer.accept("Hello, world!");

Required Methods§

Source

fn accept(&self, value: Value)

Implementations on Foreign Types§

Source§

impl<T: Accepts<Value> + ?Sized, Value> Accepts<Value> for &T

Source§

fn accept(&self, value: Value)

Source§

impl<T: Accepts<Value> + ?Sized, Value> Accepts<Value> for &mut T

Source§

fn accept(&self, value: Value)

Source§

impl<T: Accepts<Value> + ?Sized, Value> Accepts<Value> for Box<T>

Available on crate feature alloc only.
Source§

fn accept(&self, value: Value)

Source§

impl<T: Accepts<Value> + ?Sized, Value> Accepts<Value> for Rc<T>

Available on crate feature alloc only.
Source§

fn accept(&self, value: Value)

Source§

impl<T: Accepts<Value> + ?Sized, Value> Accepts<Value> for Arc<T>

Available on crate feature alloc only.
Source§

fn accept(&self, value: Value)

Source§

impl<Value> Accepts<Value> for ()

Source§

fn accept(&self, _: Value)

Source§

impl<Value, A: Accepts<Value>> Accepts<Value> for Option<A>

Source§

fn accept(&self, value: Value)

Source§

impl<Value, A: Accepts<Value>> Accepts<Value> for (A,)

Source§

fn accept(&self, value: Value)

Source§

impl<Value, A: Accepts<Value>, B: Accepts<Value>> Accepts<Value> for (A, B)
where Value: Clone,

Source§

fn accept(&self, value: Value)

Source§

impl<Value, A: Accepts<Value>, B: Accepts<Value>, C: Accepts<Value>> Accepts<Value> for (A, B, C)
where Value: Clone,

Source§

fn accept(&self, value: Value)

Source§

impl<Value, A: Accepts<Value>, B: Accepts<Value>, C: Accepts<Value>, D: Accepts<Value>> Accepts<Value> for (A, B, C, D)
where Value: Clone,

Source§

fn accept(&self, value: Value)

Source§

impl<Value, A: Accepts<Value>, B: Accepts<Value>, C: Accepts<Value>, D: Accepts<Value>, E: Accepts<Value>> Accepts<Value> for (A, B, C, D, E)
where Value: Clone,

Source§

fn accept(&self, value: Value)

Source§

impl<Value, A: Accepts<Value>, B: Accepts<Value>, C: Accepts<Value>, D: Accepts<Value>, E: Accepts<Value>, F: Accepts<Value>> Accepts<Value> for (A, B, C, D, E, F)
where Value: Clone,

Source§

fn accept(&self, value: Value)

Source§

impl<Value, A: Accepts<Value>, B: Accepts<Value>, C: Accepts<Value>, D: Accepts<Value>, E: Accepts<Value>, F: Accepts<Value>, G: Accepts<Value>> Accepts<Value> for (A, B, C, D, E, F, G)
where Value: Clone,

Source§

fn accept(&self, value: Value)

Source§

impl<Value, A: Accepts<Value>, B: Accepts<Value>, C: Accepts<Value>, D: Accepts<Value>, E: Accepts<Value>, F: Accepts<Value>, G: Accepts<Value>, H: Accepts<Value>> Accepts<Value> for (A, B, C, D, E, F, G, H)
where Value: Clone,

Source§

fn accept(&self, value: Value)

Source§

impl<Value, A: Accepts<Value>, B: Accepts<Value>, C: Accepts<Value>, D: Accepts<Value>, E: Accepts<Value>, F: Accepts<Value>, G: Accepts<Value>, H: Accepts<Value>, I: Accepts<Value>> Accepts<Value> for (A, B, C, D, E, F, G, H, I)
where Value: Clone,

Source§

fn accept(&self, value: Value)

Source§

impl<Value, A: Accepts<Value>, B: Accepts<Value>, C: Accepts<Value>, D: Accepts<Value>, E: Accepts<Value>, F: Accepts<Value>, G: Accepts<Value>, H: Accepts<Value>, I: Accepts<Value>, J: Accepts<Value>> Accepts<Value> for (A, B, C, D, E, F, G, H, I, J)
where Value: Clone,

Source§

fn accept(&self, value: Value)

Source§

impl<Value, A: Accepts<Value>, B: Accepts<Value>, C: Accepts<Value>, D: Accepts<Value>, E: Accepts<Value>, F: Accepts<Value>, G: Accepts<Value>, H: Accepts<Value>, I: Accepts<Value>, J: Accepts<Value>, K: Accepts<Value>> Accepts<Value> for (A, B, C, D, E, F, G, H, I, J, K)
where Value: Clone,

Source§

fn accept(&self, value: Value)

Source§

impl<Value, A: Accepts<Value>, B: Accepts<Value>, C: Accepts<Value>, D: Accepts<Value>, E: Accepts<Value>, F: Accepts<Value>, G: Accepts<Value>, H: Accepts<Value>, I: Accepts<Value>, J: Accepts<Value>, K: Accepts<Value>, L: Accepts<Value>> Accepts<Value> for (A, B, C, D, E, F, G, H, I, J, K, L)
where Value: Clone,

Source§

fn accept(&self, value: Value)

Source§

impl<Value, A: Accepts<Value>, E> Accepts<Value> for Result<A, E>

Source§

fn accept(&self, value: Value)

Source§

impl<Value: Clone, A: Accepts<Value>> Accepts<Value> for [A]

Source§

fn accept(&self, value: Value)

Source§

impl<Value: Clone, A: Accepts<Value>> Accepts<Value> for VecDeque<A>

Source§

fn accept(&self, value: Value)

Source§

impl<Value: Clone, A: Accepts<Value>> Accepts<Value> for Vec<A>

Source§

fn accept(&self, value: Value)

Source§

impl<Value: Clone, A: Accepts<Value>, const N: usize> Accepts<Value> for [A; N]

Source§

fn accept(&self, value: Value)

Implementors§