Module tsukuyomi::modifier[][src]

Modifier and supplemental components.

The purpose of Modifier is to insert some processes before and after applying Handler in a certain scope.

Examples

use std::sync::atomic::{AtomicUsize, Ordering};
use tsukuyomi::{App, Input, handler};
use tsukuyomi::modifier::{Modifier, BeforeHandle, AfterHandle};

#[derive(Default)]
struct RequestCounter(AtomicUsize);

impl Modifier for RequestCounter {
    fn before_handle(&self, _: &mut Input) -> BeforeHandle {
       self.0.fetch_add(1, Ordering::SeqCst);
       BeforeHandle::ready(Ok(None))
    }
}

let app = App::builder()
    .route(("/", handler::wrap_ready(|_| "Hello")))
    .modifier(RequestCounter::default())
    .finish()?;

Structs

AfterHandle

The type representing a return value from Modifier::after_handle.

BeforeHandle

The type representing a return value from Modifier::before_handle.

Traits

Modifier

A trait representing a Modifier.