pub(crate) struct FakeClock<T> {
    pub(crate) time: Time,
    pub(crate) free_running: Option<Task<()>>,
    pub(crate) pending_events: BinaryHeap<PendingEvent>,
    pub(crate) registered_events: HashMap<Koid, RegisteredEvent>,
    pub(crate) pending_named_deadlines: BinaryHeap<PendingDeadlineExpireEvent>,
    pub(crate) ignored_deadline_ids: HashSet<DeadlineId>,
    pub(crate) registered_stop_points: HashMap<StopPoint, EventPair>,
    pub(crate) observer: T,
}
Expand description

The fake clock implementation. Type parameter T is used to observe events during testing. The empty tuple () implements FakeClockObserver and is meant to be used for production instances.

Fields§

§time: Time§free_running: Option<Task<()>>§pending_events: BinaryHeap<PendingEvent>§registered_events: HashMap<Koid, RegisteredEvent>§pending_named_deadlines: BinaryHeap<PendingDeadlineExpireEvent>§ignored_deadline_ids: HashSet<DeadlineId>§registered_stop_points: HashMap<StopPoint, EventPair>§observer: T

Implementations§

source§

impl<T: FakeClockObserver> FakeClock<T>

source

pub(crate) fn new() -> Self

source

pub(crate) fn is_free_running(&self) -> bool

source

pub(crate) fn check_events(&mut self)

source

pub(crate) fn check_stop_point(&mut self, stop_point: &StopPoint) -> bool

Check if a matching stop point is registered and attempts to signal the matching eventpair if one is registered. Returns true iff a match exists and signaling the event pair succeeds.

source

pub(crate) fn check_stop_points(&mut self) -> bool

Check if any expired stop points are registered and signal any that exist. Returns true iff at least one is expired and has been successfully signaled.

source

pub(crate) fn install_event( &mut self, arc_self: Arc<Mutex<FakeClock<T>>>, time: Time, event: EventPair )

source

pub(crate) fn reschedule_event(&mut self, time: Time, koid: Koid)

source

pub(crate) fn cancel_event(&mut self, koid: Koid)

source

pub(crate) fn set_stop_point( &mut self, stop_point: StopPoint, eventpair: EventPair ) -> Result<(), Status>

Set a stop point at which to stop time and signal the provided eventpair. Returns ZX_ALREADY_BOUND if an identical stop point is already registered.

source

pub(crate) fn add_named_deadline( &mut self, pending_deadline: PendingDeadlineExpireEvent )

source

pub(crate) fn add_ignored_deadline(&mut self, ignored_deadline: DeadlineId)

source

pub(crate) fn increment(&mut self, increment: &Increment)

source

pub(crate) fn stop_free_running(&mut self)

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for FakeClock<T>

§

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

§

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

§

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

§

impl<T> !UnwindSafe for FakeClock<T>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Encode<Ambiguous1> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
§

impl<T> Encode<Ambiguous2> for T

§

unsafe fn encode( self, _encoder: &mut Encoder<'_>, _offset: usize, _depth: Depth ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
source§

impl<T> From<T> for T

const: unstable · 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 Twhere U: From<T>,

const: unstable · 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.

§

impl<T> IntoAny for Twhere T: 'static + Send + Sync,

§

fn into_any(self: Arc<T>) -> Arc<dyn Any + Send + Sync + 'static>

Cast the given object into a dyn std::any::Any.
§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

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