Skip to main content

PocketIcDiagnosticsExt

Trait PocketIcDiagnosticsExt 

Source
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, CanisterDiagnosticsBatchContractError> { ... }
}
Expand description

Reusable structured PocketIC failure diagnostics.

Required Methods§

Source

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§

Source

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.

Source

fn collect_canister_diagnostics_batch( &self, requests: &[LabeledCanisterDiagnosticsRequest], ) -> Result<CanisterDiagnosticsBatchReport, CanisterDiagnosticsBatchContractError>

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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§