Function option_layer

fn option_layer<L>(layer: Option<L>) -> Either<L, crate::layer::util::Identity>

Convert an Option<Layer> into a Layer.

# use std::time::Duration;
# use tower::Service;
# use tower::builder::ServiceBuilder;
use tower::util::option_layer;
# use tower::timeout::TimeoutLayer;
# async fn wrap<S>(svc: S) where S: Service<(), Error = &'static str> + 'static + Send, S::Future: Send {
# let timeout = Some(Duration::new(10, 0));
// Layer to apply a timeout if configured
let maybe_timeout = option_layer(timeout.map(TimeoutLayer::new));

ServiceBuilder::new()
    .layer(maybe_timeout)
    .service(svc);
# }