pub struct TimerId(/* private fields */);Expand description
Handle to a durable timer that wakes at a persisted instant, surviving process restarts.
§Examples
use zeph_durable::TimerId;
let id = TimerId::new();
assert_ne!(id, TimerId::new());Implementations§
Source§impl TimerId
impl TimerId
Sourcepub fn derive(execution_id: ExecutionId, step_id: StepId) -> Self
pub fn derive(execution_id: ExecutionId, step_id: StepId) -> Self
Derive the deterministic timer id for a (execution_id, step_id) position.
As with PromiseId::derive, a resumed sleep_until at the same program point re-derives
the same id and re-attaches to the journaled durable_timers row, so a timer that fired
during downtime is recognized on replay rather than re-armed afresh (FR-DE-06).
§Examples
use zeph_durable::{ExecutionId, StepId, TimerId};
let exec = ExecutionId::new();
assert_eq!(
TimerId::derive(exec, StepId::new(1)),
TimerId::derive(exec, StepId::new(1)),
);Trait Implementations§
impl Copy for TimerId
Source§impl<'de> Deserialize<'de> for TimerId
impl<'de> Deserialize<'de> for TimerId
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for TimerId
impl StructuralPartialEq for TimerId
Auto Trait Implementations§
impl Freeze for TimerId
impl RefUnwindSafe for TimerId
impl Send for TimerId
impl Sync for TimerId
impl Unpin for TimerId
impl UnsafeUnpin for TimerId
impl UnwindSafe for TimerId
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more