sui_http/middleware/callback/
mod.rs

1// Copyright (c) Mysten Labs, Inc.
2// SPDX-License-Identifier: Apache-2.0
3
4use http::HeaderMap;
5use http::request;
6use http::response;
7
8mod body;
9mod future;
10mod layer;
11mod service;
12
13pub use self::body::ResponseBody;
14pub use self::future::ResponseFuture;
15pub use self::layer::CallbackLayer;
16pub use self::service::Callback;
17
18pub trait MakeCallbackHandler {
19    type Handler: ResponseHandler;
20
21    fn make_handler(&self, request: &request::Parts) -> Self::Handler;
22}
23
24pub trait ResponseHandler {
25    fn on_response(&mut self, response: &response::Parts);
26    fn on_error<E>(&mut self, error: &E)
27    where
28        E: std::fmt::Display + 'static;
29
30    fn on_body_chunk<B>(&mut self, _chunk: &B)
31    where
32        B: bytes::Buf,
33    {
34        // do nothing
35    }
36
37    fn on_end_of_stream(&mut self, _trailers: Option<&HeaderMap>) {
38        // do nothing
39    }
40}