Struct RecordingScheduler
pub struct RecordingScheduler { /* private fields */ }Expand description
A [Scheduler] decorator that records the pauses and resumes of the scheduler
it wraps, delegating every decision (and its persisted state) unchanged.
The transparency is the point: it must not alter a single decision, only observe it, so the oracle asserts what the real scheduler did.
Implementations§
§impl RecordingScheduler
impl RecordingScheduler
pub fn log(&self) -> Result<DecisionLog>
pub fn log(&self) -> Result<DecisionLog>
A snapshot of the decisions observed so far.
§Errors
Returns [Error::Scheduler] if the recording log mutex is poisoned.
Trait Implementations§
§impl Debug for RecordingScheduler
impl Debug for RecordingScheduler
§impl Scheduler for RecordingScheduler
impl Scheduler for RecordingScheduler
§fn on_report(
&self,
study: &StudyView,
trial: &TrialMeta,
step: u64,
values: &[f64],
) -> Result<Decision>
fn on_report( &self, study: &StudyView, trial: &TrialMeta, step: u64, values: &[f64], ) -> Result<Decision>
Called on every intermediate report. Read more
§fn on_trial_end(
&self,
study: &StudyView,
trial: &FrozenTrial,
) -> Result<Vec<Command>>
fn on_trial_end( &self, study: &StudyView, trial: &FrozenTrial, ) -> Result<Vec<Command>>
Called once a trial reaches a terminal state. Read more
§fn resume_candidates(&self, study: &StudyView) -> Result<Vec<Command>>
fn resume_candidates(&self, study: &StudyView) -> Result<Vec<Command>>
Paused trials worth waking on a freed work slot, in priority order. Read more
§fn state(&self) -> Result<Option<StateBlob>>
fn state(&self) -> Result<Option<StateBlob>>
The scheduler’s persistable state, if it has any. Read more
§fn restore_state(&self, blob: &StateBlob) -> Result<()>
fn restore_state(&self, blob: &StateBlob) -> Result<()>
§fn scripted_capability(&self) -> ScriptedSchedulerCapability
fn scripted_capability(&self) -> ScriptedSchedulerCapability
§fn fan_report_mode(&self) -> FanReportMode
fn fan_report_mode(&self) -> FanReportMode
Declares whether this scheduler accepts aligned aggregate fan reports. Read more
§fn population_report_mode(&self) -> PopulationReportMode
fn population_report_mode(&self) -> PopulationReportMode
Declares whether this scheduler accepts one shared report batch from
several population members. This is distinct from fanned replicate
reports. The default is fail-closed.
§fn on_population_report(
&self,
study: &StudyView,
reports: &[PopulationReport],
) -> Result<Vec<PopulationDecision>, Error>
fn on_population_report( &self, study: &StudyView, reports: &[PopulationReport], ) -> Result<Vec<PopulationDecision>, Error>
Decides all members at one population boundary from the same snapshot. Read more
Auto Trait Implementations§
impl !Freeze for RecordingScheduler
impl !RefUnwindSafe for RecordingScheduler
impl !UnwindSafe for RecordingScheduler
impl Send for RecordingScheduler
impl Sync for RecordingScheduler
impl Unpin for RecordingScheduler
impl UnsafeUnpin for RecordingScheduler
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T, U> Imply<T> for U
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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