Crate tower_pipeline[−][src]
A Tower Service
combinator that "pipelines" two services.
A Pipeline
is a Service
consisting of two other Service
s where the response of the
first is the request of the second. This is analagous to function composition but for
services.
use tower_pipeline::PipelineExt; use tower::{service_fn, BoxError, ServiceExt}; // service that returns the length of a string let length_svc = service_fn(|input: &'static str| async move { Ok::<_, BoxError>(input.len()) }); // service that doubles its input let double_svc = service_fn(|input: usize| async move { Ok::<_, BoxError>(input * 2) }); // combine our two services let combined = length_svc.pipeline(double_svc); // call the service let result = combined.oneshot("rust").await.unwrap(); assert_eq!(result, 8);
Structs
Pipeline | Two services combined where the response of the first is the request of the second. |
ResponseFuture | Response future of |
Traits
PipelineExt | An extension trait for easily pipelining |