Skip to main content

ClientWatch

Struct ClientWatch 

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

Tracks how long a host has gone without a client.

Pure bookkeeping, with the clock passed in, so the whole rule is testable without sockets or sleeping. A host calls observe each pass of its loop with the current client count.

Implementations§

Source§

impl ClientWatch

Source

pub const fn new(timeout: ClientTimeout, now: Instant) -> Self

Starts watching, with the clock already running from now.

Source

pub const fn ever_connected(&self) -> bool

Whether any client has connected since the host started.

Source

pub fn observe(&mut self, clients: usize, now: Instant) -> WatchState

Records the current client count and says what to do.

now is passed rather than read so the rule can be tested at any point on the clock without waiting for real time to pass.

Trait Implementations§

Source§

impl Debug for ClientWatch

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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.