pub struct StepOutcome {
pub done: bool,
pub stage_complete: bool,
pub steps_taken: u32,
pub load_factor: f64,
pub error: Option<AnalysisErrorDetail>,
pub continuation: Option<ContinuationDetail>,
pub recorder_batches: Vec<RecorderBatch>,
}Expand description
advance’s result — { done, stageComplete, stepsTaken, progressSnapshot, recorderBatch? }, minus the parts that
are the worker/JS boundary’s job (progressSnapshot’s throttling,
recorderBatch’s response_blocks byte layout): load_factor here is
the raw signal those would be built from — for a Static stage the
integrator’s load factor, for a Transient stage the elapsed time
(TransientAnalysis::time), and for a Modal stage always 0.0 (a
single eigensolve has no comparable incremental progress scalar; read
Mode::frequency from a ModeShape recorder’s batch instead). error,
once set, is sticky — later stages are not attempted, matching “a
stage’s AnalysisError stops the sequence”.
Fields§
§done: bool§stage_complete: bool§steps_taken: u32§load_factor: f64§error: Option<AnalysisErrorDetail>§continuation: Option<ContinuationDetail>Diagnostics of the last accepted arc-length step this call took
(radius, retries, solves, chord length, determinant sign, stop
criterion), or None when it took none. With arc length the load
factor can decrease and repeat, so samples are ordered by their
sample index, never by load factor.
recorder_batches: Vec<RecorderBatch>Only the samples this advance() call produced, one entry per recorder that recorded
at least one sample this call (every recorder samples every step today, so in practice
this is either empty — no step taken — or has one entry per recorder). This is the
results-storage plan’s (docs/results-storage-indexeddb.md) recorderBatch, restated in
field names that match pysees’s frozen ResultBlock protocol type
(src/app/types/resultsStorage.ts); the caller assigns blockIndex and packs data,
since neither concept exists on this side of the wasm boundary.
Trait Implementations§
Source§impl Clone for StepOutcome
impl Clone for StepOutcome
Source§fn clone(&self) -> StepOutcome
fn clone(&self) -> StepOutcome
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StepOutcome
impl Debug for StepOutcome
Source§impl PartialEq for StepOutcome
impl PartialEq for StepOutcome
Source§impl Serialize for StepOutcome
impl Serialize for StepOutcome
impl StructuralPartialEq for StepOutcome
Source§impl Tsify for StepOutcome
impl Tsify for StepOutcome
const DECL: &'static str = "/**\n * `advance`\'s result \u{2014} `{ done, stageComplete, stepsTaken,\n * progressSnapshot, recorderBatch? }`, minus the parts that\n * are the worker/JS boundary\'s job (`progressSnapshot`\'s throttling,\n * `recorderBatch`\'s `response_blocks` byte layout): `load_factor` here is\n * the raw signal those would be built from \u{2014} for a `Static` stage the\n * integrator\'s load factor, for a `Transient` stage the elapsed time\n * (`TransientAnalysis::time`), and for a `Modal` stage always `0.0` (a\n * single eigensolve has no comparable incremental progress scalar; read\n * `Mode::frequency` from a `ModeShape` recorder\'s batch instead). `error`,\n * once set, is sticky \u{2014} later stages are not attempted, matching \"a\n * stage\'s `AnalysisError` stops the sequence\".\n */\nexport interface StepOutcome {\n done: boolean;\n stageComplete: boolean;\n stepsTaken: number;\n loadFactor: number;\n error: AnalysisErrorDetail | undefined;\n /**\n * Diagnostics of the last accepted arc-length step this call took\n * (radius, retries, solves, chord length, determinant sign, stop\n * criterion), or `None` when it took none. With arc length the load\n * factor can decrease and repeat, so samples are ordered by their\n * sample index, never by load factor.\n */\n continuation: ContinuationDetail | undefined;\n /**\n * Only the samples *this* `advance()` call produced, one entry per recorder that recorded\n * at least one sample this call (every recorder samples every step today, so in practice\n * this is either empty \u{2014} no step taken \u{2014} or has one entry per recorder). This is the\n * results-storage plan\'s (docs/results-storage-indexeddb.md) `recorderBatch`, restated in\n * field names that match pysees\'s frozen `ResultBlock` protocol type\n * (`src/app/types/resultsStorage.ts`); the caller assigns `blockIndex` and packs `data`,\n * since neither concept exists on this side of the wasm boundary.\n */\n recorderBatches: RecorderBatch[];\n}"
const SERIALIZATION_CONFIG: SerializationConfig
Source§type JsType = JsType
type JsType = JsType
#[wasm_bindgen] extern "C" { .. }.
[Ts<T>] is #[repr(transparent)] over this and passes it across the
ABI as a plain JS handle, which any other representation would break.fn into_js(&self) -> Result<Self::JsType, Error>where
Self: Serialize,
Auto Trait Implementations§
impl Freeze for StepOutcome
impl RefUnwindSafe for StepOutcome
impl Send for StepOutcome
impl Sync for StepOutcome
impl Unpin for StepOutcome
impl UnsafeUnpin for StepOutcome
impl UnwindSafe for StepOutcome
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T, U> Imply<T> for U
impl<T> Scalar for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§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).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.