AsyncEndpoint

Trait AsyncEndpoint 

Source
pub trait AsyncEndpoint<I, O>: EndpointMetadata {
    // Required method
    fn handle(
        &self,
        req: Request<I>,
        response_extensions: &mut Extensions,
    ) -> impl Future<Output = Result<Response<AsyncResponseBody<O>>, Error>> + Send;
}
Expand description

A nonblocking HTTP endpoint.

Required Methods§

Source

fn handle( &self, req: Request<I>, response_extensions: &mut Extensions, ) -> impl Future<Output = Result<Response<AsyncResponseBody<O>>, Error>> + Send

Handles a request to the endpoint.

If the endpoint has path parameters, callers must include a PathParams extension in the request containing the extracted parameters from the URI. The implementation is reponsible for all other request handling, including parsing query parameters, header parameters, and the request body.

The response_extensions will be added to the extensions of the response produced by the endpoint, even if an error is returned.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<T, I, O> AsyncEndpoint<I, O> for Box<T>
where T: ?Sized + AsyncEndpoint<I, O>,

Source§

fn handle( &self, req: Request<I>, response_extensions: &mut Extensions, ) -> impl Future<Output = Result<Response<AsyncResponseBody<O>>, Error>> + Send

Implementors§

Source§

impl<I, O> AsyncEndpoint<I, O> for BoxAsyncEndpoint<'_, I, O>
where I: Send,