Module seamless::handler[][src]

Expand description

This module provides traits and structs that relate to the handler functions that we can pass to API routes.

Re-exports

pub use body::HandlerBody;
pub use response::HandlerResponse;

Modules

This contains the HandlerBody trait, which you can implement on a type in order to allow it to be used at a parameter in a handler function which can extract data from the request body. A couple of convenience types (body::FromJson and body::FromBinary) are exposed which implement this trait.

This contains helpers around the body that you’ll need to provide as part of an http::Request, mainly geared around allowing requests to be streamed in if desired. This module provides some functionality for creating a valid request body to send to Seamless as part of an http::Request. Essentially, anything implementing AsyncRead + Send + Unpin can be provided as a request body, but this module provides a Bytes struct which can easily convert a Vec<u8> or [futures::Stream] into such a body.

This contains the HandlerResponse trait, which determines how to form an HTTP response given some type. Implement this for types that you wish to be able to return from handler functions.

Traits

Implement this for anything that you want to be able to pass into a request handler that doesn’t want to consume the body of the request. This is useful for implementing request guards which prevent the handler from being called unless specific conditions are met (for instance a user is logged in).