pub struct RefinementRuntime<C = ()> { /* private fields */ }Expand description
Stateful method-independent refinement boundary guard.
Implementations§
Source§impl<C> RefinementRuntime<C>
impl<C> RefinementRuntime<C>
Sourcepub fn new(
limits: RefinementLimits,
cancellation: Option<CancellationToken>,
) -> Result<Self, RuntimeError>
pub fn new( limits: RefinementLimits, cancellation: Option<CancellationToken>, ) -> Result<Self, RuntimeError>
Construct a runtime with a process-local monotonic clock.
§Errors
Returns RuntimeError::InvalidClock if the clock origin is invalid.
Sourcepub fn with_clock(
limits: RefinementLimits,
cancellation: Option<CancellationToken>,
clock: Arc<dyn RuntimeClock>,
) -> Result<Self, RuntimeError>
pub fn with_clock( limits: RefinementLimits, cancellation: Option<CancellationToken>, clock: Arc<dyn RuntimeClock>, ) -> Result<Self, RuntimeError>
Construct a runtime with an injectable thread-safe clock.
§Errors
Returns RuntimeError::InvalidClock if the first timestamp is non-finite.
Sourcepub fn set_event_sink(&mut self, sink: impl RefinementEventSink + 'static)
pub fn set_event_sink(&mut self, sink: impl RefinementEventSink + 'static)
Attach a synchronous event sink. Sink failures are isolated and recorded.
Sourcepub fn set_checkpoint_sink(&mut self, sink: impl CheckpointSink<C> + 'static)
pub fn set_checkpoint_sink(&mut self, sink: impl CheckpointSink<C> + 'static)
Attach an application-owned typed checkpoint sink.
Sourcepub fn resume_accepted(
&mut self,
completed_iterations: usize,
) -> Result<(), RuntimeError>
pub fn resume_accepted( &mut self, completed_iterations: usize, ) -> Result<(), RuntimeError>
Restore accepted/attempted counters from a validated checkpoint.
Evaluation and rejection budgets restart for the continuation call.
§Errors
Returns RuntimeError::InvalidResume if work already began or the
completed count exceeds the iteration budget.
Sourcepub fn elapsed_seconds(&self) -> Result<f64, RuntimeError>
pub fn elapsed_seconds(&self) -> Result<f64, RuntimeError>
Return finite non-negative elapsed seconds.
§Errors
Returns RuntimeError::InvalidClock for non-finite or backward time.
Sourcepub fn emit(
&mut self,
kind: RefinementEventKind,
stage: impl Into<String>,
message: impl Into<String>,
diagnostics: Vec<(String, DiagnosticValue)>,
) -> Result<RefinementEvent, RuntimeError>
pub fn emit( &mut self, kind: RefinementEventKind, stage: impl Into<String>, message: impl Into<String>, diagnostics: Vec<(String, DiagnosticValue)>, ) -> Result<RefinementEvent, RuntimeError>
Emit one validated event and isolate a failing event sink.
§Errors
Returns RuntimeError for clock or event validation failures. A sink
failure does not invalidate numerical state and is stored separately.
Sourcepub fn check_boundary(&self) -> Result<(), RuntimeError>
pub fn check_boundary(&self) -> Result<(), RuntimeError>
Stop at a safe boundary for cancellation, time, or evaluation budget.
§Errors
Returns RuntimeError::Stopped for a normal bounded stop, or a clock/
cancellation-state error.
Sourcepub fn begin_iteration(
&mut self,
attempted_iteration: usize,
) -> Result<(), RuntimeError>
pub fn begin_iteration( &mut self, attempted_iteration: usize, ) -> Result<(), RuntimeError>
Begin one strictly increasing attempted iteration.
§Errors
Returns RuntimeError for order violations or a normal bounded stop.
Sourcepub fn begin_evaluation(&mut self) -> Result<(), RuntimeError>
pub fn begin_evaluation(&mut self) -> Result<(), RuntimeError>
Reserve one model evaluation after checking every safe-boundary budget.
§Errors
Returns RuntimeError for a normal bounded stop or invalid clock/token.
Sourcepub fn accept_step(
&mut self,
checkpoint: Option<&C>,
) -> Result<(), RuntimeError>
pub fn accept_step( &mut self, checkpoint: Option<&C>, ) -> Result<(), RuntimeError>
Accept at most one step in the current attempted iteration.
State becomes accepted before the optional checkpoint sink is called, so a sink failure never rolls numerical state backward.
§Errors
Returns RuntimeError for acceptance-order, counter, checkpoint, event,
or clock failures.
Sourcepub fn reject_step(&mut self) -> Result<(), RuntimeError>
pub fn reject_step(&mut self) -> Result<(), RuntimeError>
Record a rejection and enforce its consecutive budget.
§Errors
Returns RuntimeError::Stopped when the rejection limit is reached.
Sourcepub const fn attempted_iteration(&self) -> usize
pub const fn attempted_iteration(&self) -> usize
Return the attempted iteration counter.
Sourcepub const fn accepted_iterations(&self) -> usize
pub const fn accepted_iterations(&self) -> usize
Return the accepted iteration counter.
Sourcepub const fn evaluations(&self) -> usize
pub const fn evaluations(&self) -> usize
Return the model-evaluation counter.
Sourcepub const fn consecutive_rejections(&self) -> usize
pub const fn consecutive_rejections(&self) -> usize
Return consecutive rejected steps since the last acceptance.
Sourcepub fn event_sink_error(&self) -> Option<&str>
pub fn event_sink_error(&self) -> Option<&str>
Borrow the isolated event-sink error, if any.
Sourcepub const fn has_event_sink(&self) -> bool
pub const fn has_event_sink(&self) -> bool
Return whether an event sink remains attached.
Auto Trait Implementations§
impl<C = ()> !RefUnwindSafe for RefinementRuntime<C>
impl<C = ()> !Sync for RefinementRuntime<C>
impl<C = ()> !UnwindSafe for RefinementRuntime<C>
impl<C> Freeze for RefinementRuntime<C>
impl<C> Send for RefinementRuntime<C>
impl<C> Unpin for RefinementRuntime<C>
impl<C> UnsafeUnpin for RefinementRuntime<C>
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
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> ⓘ
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> ⓘ
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.