Interceptor

Trait Interceptor 

Source
pub trait Interceptor {
    // Required methods
    fn on_request(
        &self,
        headers: &mut MetadataMap,
        extensions: &mut Extensions,
    ) -> Option<Status>;
    fn on_response(
        &self,
        status: Code,
        _headers: &mut HeaderMap,
        _extensions: &Extensions,
    );
}
Expand description

Tonic interceptor

Required Methods§

Source

fn on_request( &self, headers: &mut MetadataMap, extensions: &mut Extensions, ) -> Option<Status>

Callback on incoming request, allowing you to modify headers or extensions

Note that under the hood tonic types are the same as http types so even though it is http::Extensions, it is in fact the same shit

Returning status will preempt request handling and immediately returns status

Source

fn on_response( &self, status: Code, _headers: &mut HeaderMap, _extensions: &Extensions, )

Callback when response is being returned

Implementations on Foreign Types§

Source§

impl<I: Interceptor> Interceptor for Arc<I>

Source§

fn on_request( &self, headers: &mut MetadataMap, extensions: &mut Extensions, ) -> Option<Status>

Source§

fn on_response( &self, status: Code, headers: &mut HeaderMap, extensions: &Extensions, )

Implementors§

Source§

impl<OnReq: Fn(&mut MetadataMap, &mut Extensions) -> Option<Status>, OnResp: Fn(Code, &mut HeaderMap, &Extensions)> Interceptor for InterceptorFn<OnReq, OnResp>