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
.
§Example
use tower::{service_fn, Service, ServiceExt, BoxError};
async fn handle(request: Request) -> Result<Response, BoxError> {
let response = Response::new("Hello, World!");
Ok(response)
}
let mut service = service_fn(handle);
let response = service
.ready()
.await?
.call(Request::new())
.await?;
assert_eq!("Hello, World!", response.into_body());