PeriodicLayer

Struct PeriodicLayer 

Source
pub struct PeriodicLayer<T> { /* private fields */ }
Available on crate feature periodic only.
Expand description

Layer that spawns a worker task that periodically sends a request to the service at a given interval and then passes through the wrapped service.. Spawns a worker task with a clone of the inner service that periodically makes a request to the inner service.

The default Tokio executor is used to run the given service, which means that this layer can only be used on the Tokio runtime.

See the module documentation for more details.

Implementations§

Source§

impl<T> PeriodicLayer<T>

Source

pub fn new(make_request: T, period: Duration) -> Self

Creates a new PeriodicLayer with the provided make_request closure and period.

make_request returns a request to be called on the inner service. period gives with interval with which to send the request from make_request.

Trait Implementations§

Source§

impl<S, T, F, Request> Layer<S> for PeriodicLayer<T>
where S: Service<Request, Future = F> + Clone + Send + 'static, T: Fn() -> Request + Clone + Send + Sync + 'static, F: Future<Output = Result<S::Response, S::Error>> + Send + 'static, Request: Send,

Source§

type Service = S

The wrapped service
Source§

fn layer(&self, inner: S) -> Self::Service

Wrap the given service with the middleware, returning a new service that has been decorated with the middleware.

Auto Trait Implementations§

§

impl<T> Freeze for PeriodicLayer<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for PeriodicLayer<T>
where T: RefUnwindSafe,

§

impl<T> Send for PeriodicLayer<T>
where T: Send,

§

impl<T> Sync for PeriodicLayer<T>
where T: Sync,

§

impl<T> Unpin for PeriodicLayer<T>
where T: Unpin,

§

impl<T> UnwindSafe for PeriodicLayer<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.