Skip to main content

Driver

Struct Driver 

Source
pub struct Driver { /* private fields */ }
Expand description

Drives origin lifecycle work and cache expiration with caller-supplied time.

Returned by Producer::new. Poll on external activity or at the deadline it returns, supplying nondecreasing instants. Route changes, track serving, linger, failover, and teardown run here; the route table and announce cursors update synchronously when a route is announced or retracted.

It holds no Producer clone, so it never keeps the origin alive. Dropping it aborts active fronts, rejects pending requests, ends announcements, and makes subsequent producer mutations fail with Error::Closed. moq_tokio::origin::spawn handles construction and driving for Tokio callers.

Implementations§

Source§

impl Driver

Source

pub fn poll( &mut self, now: Instant, waiter: &Waiter, ) -> Result<Option<Instant>, Error>

Process ready origin work using caller-supplied monotonic time.

See crate::time::Driver for the contract. Finishes with Error::Closed once every producer handle has dropped and the remaining lifecycle work has drained.

Trait Implementations§

Source§

impl Driver for Driver

Source§

fn poll( &mut self, now: Instant, waiter: &Waiter, ) -> Result<Option<Instant>, Error>

Advance to now and process ready work.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Driver

§

impl !Sync for Driver

§

impl !UnwindSafe for Driver

§

impl Freeze for Driver

§

impl Send for Driver

§

impl Unpin for Driver

§

impl UnsafeUnpin for Driver

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> MaybeSend for T
where T: Send,

Source§

impl<T> MaybeSend for T
where T: Send + ?Sized,

Source§

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

Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more