use super::Timeout; | |
use std::time::Duration; | |
use tower_layer::Layer; | |
/// Applies a timeout to requests via the supplied inner service. | |
#[derive(Debug, Clone)] | |
pub struct TimeoutLayer { | |
timeout: Duration, | |
} | |
impl TimeoutLayer { | |
/// Create a timeout from a duration | |
pub fn new(timeout: Duration) -> Self { | |
TimeoutLayer { timeout } | |
} | |
} | |
impl<S> Layer<S> for TimeoutLayer { | |
type Service = Timeout<S>; | |
fn layer(&self, service: S) -> Self::Service { | |
Timeout::new(service, self.timeout) | |
} | |
} |