pub trait PocketIcDiagnosticsExt {
// Required method
fn collect_canister_diagnostics(
&self,
request: CanisterDiagnosticsRequest,
) -> CanisterDiagnosticsReport;
// Provided methods
fn write_canister_diagnostics(
&self,
request: CanisterDiagnosticsRequest,
context: &str,
writer: &mut dyn Write,
) -> Result<()> { ... }
fn collect_canister_diagnostics_batch(
&self,
requests: &[LabeledCanisterDiagnosticsRequest],
) -> Result<CanisterDiagnosticsBatchReport, BatchLabelError> { ... }
}Expand description
Reusable structured PocketIC failure diagnostics.
Required Methods§
Sourcefn collect_canister_diagnostics(
&self,
request: CanisterDiagnosticsRequest,
) -> CanisterDiagnosticsReport
fn collect_canister_diagnostics( &self, request: CanisterDiagnosticsRequest, ) -> CanisterDiagnosticsReport
Collect status and bounded logs using the request’s exact senders.
Both calls are attempted independently. PocketIC transport panics are
captured so diagnostics can remain subordinate to the original failure.
Provided Methods§
Sourcefn write_canister_diagnostics(
&self,
request: CanisterDiagnosticsRequest,
context: &str,
writer: &mut dyn Write,
) -> Result<()>
fn write_canister_diagnostics( &self, request: CanisterDiagnosticsRequest, context: &str, writer: &mut dyn Write, ) -> Result<()>
Explicitly collect and write one contextual diagnostic report.
Uses the request’s exact senders and log limits, with no retry or output
destination selected implicitly. Collection, formatting and writer panics
are captured as an IO error retaining super::PocketIcOperationError.
Ordinary writer errors are returned unchanged. Status/log failures remain
in the written report; successful output does not mean those calls passed.
Callers keep their primary failure authoritative and decide whether to
retain or ignore this secondary reporting result.
§Errors
Returns the writer’s I/O error when diagnostics cannot be written.
Sourcefn collect_canister_diagnostics_batch(
&self,
requests: &[LabeledCanisterDiagnosticsRequest],
) -> Result<CanisterDiagnosticsBatchReport, BatchLabelError>
fn collect_canister_diagnostics_batch( &self, requests: &[LabeledCanisterDiagnosticsRequest], ) -> Result<CanisterDiagnosticsBatchReport, BatchLabelError>
Collect every labeled request sequentially in its supplied order.
Every target is attempted even when an earlier entry fails or panics.
Each entry preserves its exact request and independent status/log
outcomes; no anonymous retry or fallback is performed.
Invalid labels return Host’s BatchLabelError before collection starts.
§Errors
Rejects invalid or duplicate labels before collecting diagnostics.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".