pub trait Lockable: Sized {
    type Deadline: Sized + Codec + Clone;

    fn deadline(&self) -> Self::Deadline;
    fn has_expired(deadline: &Self::Deadline) -> bool;

    fn snooze(_deadline: &Self::Deadline) { ... }
}
Expand description

Lockable item for use with a persisted storage lock.

Bound for an item that has a stateful ordered meaning without explicitly requiring Ord trait in general.

Required Associated Types§

An instant type specifying i.e. a point in time.

Required Methods§

Calculate the deadline based on a current state such as time or block number and derives the deadline.

Verify the deadline has not expired compared to the current state, i.e. time or block number.

Provided Methods§

Snooze at least until deadline is reached.

Note that deadline is only passed to allow optimizations for Lockables which have a time based component.

Implementors§