pub fn service_fn<T>(f: T) -> ServiceFn<T>
Expand description

Returns a new ServiceFn with the given closure.

This lets you build a Service from an async function that returns a Result.


use tower::{service_fn, Service, ServiceExt, BoxError};

async fn handle(request: Request) -> Result<Response, BoxError> {
    let response = Response::new("Hello, World!");

let mut service = service_fn(handle);

let response = service

assert_eq!("Hello, World!", response.into_body());