Skip to main content

PolicyCell

Struct PolicyCell 

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

The run policy in force for one run (crates/runtime/spec/PolicyTake.lean §8-62, runtime D28).

One writer and many readers. A change that reaches the run at any safe point waits in the cell, and the run’s driver loop puts the last one in force at SafePoint::BeforeWave and nowhere else; the write gates hold a PolicyReader that they ask once per write. So every call of one wave is judged under one policy, the one in force when the wave began.

Implementations§

Source§

impl PolicyCell

Source

pub fn new(start: RunPolicy) -> PolicyCell

The cell a run opens with, holding run_started.policy.

Source

pub fn reader(&self) -> PolicyReader

A read-only view of the policy in force, for a write gate.

Trait Implementations§

Source§

impl Debug for PolicyCell

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 = !

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.