bolt_web/
types.rs

1use crate::{request::RequestBody, response::ResponseWriter};
2use async_trait::async_trait;
3
4#[derive(Hash, Eq, PartialEq, Debug, Clone, Copy)]
5pub enum Method {
6    GET,
7    POST,
8    PUT,
9    PATCH,
10    DELETE,
11    OPTIONS,
12    HEAD,
13    TRACE,
14}
15
16#[derive(Eq, PartialEq)]
17#[allow(dead_code)]
18pub enum Mode {
19    Http1,
20    Http2,
21}
22
23#[async_trait]
24pub trait Middleware: Send + Sync {
25    async fn run(&self, req: &mut RequestBody, res: &mut ResponseWriter);
26}
27
28#[async_trait]
29pub trait ErrorHandler: Send + Sync {
30    async fn run(&self, msg: String, res: &mut ResponseWriter);
31}
32
33#[async_trait]
34pub trait Handler: Send + Sync {
35    async fn handle(&self, req: &mut RequestBody, res: &mut ResponseWriter);
36}