pub struct DiagnosticRecorder { /* private fields */ }Expand description
A cloneable callback whose recorded output remains accessible after a run.
Pass a clone to a runner and retain the original handle:
let recorder = DiagnosticRecorder::new(DiagnosticRecorderConfig::default());
let callback = Box::new(recorder.clone());
// Run with `callback`, then read `recorder.diagnostics()`.Clones share one recorder state and may be read from another thread while a run is active, but they must not be installed in multiple concurrent runs: each run resets the shared state at its start. Recorder state is best-effort diagnostics, so a poisoned mutex is recovered and reset on the next run rather than preventing later diagnostic reads or reuse.
Implementations§
Source§impl DiagnosticRecorder
impl DiagnosticRecorder
pub fn new(config: DiagnosticRecorderConfig) -> Self
pub fn diagnostics(&self) -> ReconstructionDiagnostics
pub fn into_diagnostics(self) -> ReconstructionDiagnostics
pub fn object_snapshots(&self) -> Vec<(usize, Array2<f64>, Array2<f64>)>
pub fn pupil_snapshots(&self) -> Vec<(usize, Array2<f64>, Array2<f64>)>
Trait Implementations§
Source§impl Callback for DiagnosticRecorder
impl Callback for DiagnosticRecorder
Source§fn requires_for(
&self,
hook: CallbackHook,
iteration: usize,
) -> Vec<DiagnosticRequest>
fn requires_for( &self, hook: CallbackHook, iteration: usize, ) -> Vec<DiagnosticRequest>
Requests diagnostics for a specific hook. Built-in periodic callbacks
override this to avoid computing snapshots on inactive iterations.
fn on_start(&mut self, context: &StepContext<'_>) -> Result<CallbackAction>
fn on_iteration_end( &mut self, context: &StepContext<'_>, ) -> Result<CallbackAction>
fn on_finish(&mut self, _result: &ReconstructionResult) -> Result<()>
fn requires(&self) -> Vec<DiagnosticRequest>
Source§fn on_frame_end(&mut self, _context: &StepContext<'_>) -> Result<CallbackAction>
fn on_frame_end(&mut self, _context: &StepContext<'_>) -> Result<CallbackAction>
Runs once for every completed frame when frame callbacks are enabled.
For multi-frame algorithms, all frames in a batch observe the same
post-batch state while
frame_index and natural loss remain per-frame.Source§impl Clone for DiagnosticRecorder
impl Clone for DiagnosticRecorder
Source§fn clone(&self) -> DiagnosticRecorder
fn clone(&self) -> DiagnosticRecorder
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for DiagnosticRecorder
impl RefUnwindSafe for DiagnosticRecorder
impl Send for DiagnosticRecorder
impl Sync for DiagnosticRecorder
impl Unpin for DiagnosticRecorder
impl UnsafeUnpin for DiagnosticRecorder
impl UnwindSafe for DiagnosticRecorder
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