mysten_network/callback/
mod.rs

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