saddle-runtime 0.3.24

Saddle managed asynchronous runtime and lifecycle
Documentation
//! Compiles as an external Runtime consumer. No root issuer/physical completion.
#![allow(dead_code)]
use saddle_core::{
    BoundedDiagnostic, Diagnostic, DiagnosticCode, DiagnosticOutcomeAxes, OperationOutcome,
};
use saddle_observability::root_diagnostic::{
    PublicRequestFailure, RootOutcomeFacts, RootRequestEvent,
};
use saddle_observability::{EmergencyDiagnosticHandle, Observer};
use saddle_runtime::request_task::reserved::{
    ReservedActiveStage, ReservedObservationStage, ReservedRequestFailure, ReservedRequestView,
};

fn facts(operation: OperationOutcome) -> RootOutcomeFacts {
    RootOutcomeFacts {
        axes: DiagnosticOutcomeAxes {
            operation,
            ..Default::default()
        },
        ..Default::default()
    }
}
fn database<'a>(
    view: &'a ReservedRequestView,
    observer: &'a Observer,
    output: Option<&'a EmergencyDiagnosticHandle>,
    original: &(dyn std::error::Error + 'static),
    original_facts: BoundedDiagnostic,
    classification: DiagnosticCode,
) -> Result<ReservedRequestFailure, (ReservedActiveStage<'a>, ReservedRequestFailure)> {
    let stage = view.start_stage(observer, output, ReservedObservationStage::Database);
    let failure = view.source_error_with_facts(
        original,
        original_facts,
        classification,
        output,
        RootRequestEvent::Database,
        facts(OperationOutcome::Failed),
    );
    stage
        .finish_failure(failure, facts(OperationOutcome::Failed))
        .map(|(receipt, _)| receipt)
}
fn transport_cancel(
    view: &ReservedRequestView,
    output: Option<&EmergencyDiagnosticHandle>,
    existing: Diagnostic,
    code: DiagnosticCode,
) -> ReservedRequestFailure {
    // Existing ExpectedRejection, occurrence, primary and location are unchanged.
    view.source_existing_description(
        &"outbound cancelled",
        existing,
        code,
        output,
        RootRequestEvent::Outbound,
        facts(OperationOutcome::Cancelled),
    )
}
fn describe_rejection(
    view: &ReservedRequestView,
    output: Option<&EmergencyDiagnosticHandle>,
    original: BoundedDiagnostic,
    code: DiagnosticCode,
) -> ReservedRequestFailure {
    view.source_description(
        &"column shape rejected without driver Error",
        original,
        code,
        output,
        RootRequestEvent::Database,
        facts(OperationOutcome::Rejected),
    )
}
fn existing_error(
    view: &ReservedRequestView,
    output: Option<&EmergencyDiagnosticHandle>,
    original: &(dyn std::error::Error + 'static),
    diagnostic: Diagnostic,
    code: DiagnosticCode,
) -> ReservedRequestFailure {
    view.source_existing_error(
        original,
        diagnostic,
        code,
        output,
        RootRequestEvent::Outbound,
        facts(OperationOutcome::TimedOut),
    )
}
fn response<'a>(
    view: &'a ReservedRequestView,
    observer: &'a Observer,
    output: Option<&'a EmergencyDiagnosticHandle>,
) {
    let _ = view
        .start_stage(observer, output, ReservedObservationStage::Response)
        .finish_nonfailure(facts(OperationOutcome::Succeeded));
}
fn final_projection(
    view: &ReservedRequestView,
    output: Option<&EmergencyDiagnosticHandle>,
    receipt: ReservedRequestFailure,
) -> Result<PublicRequestFailure, ReservedRequestFailure> {
    // Only after actual owner cleanup. Does not repeat the Database stage metric.
    receipt.finish(view, output, RootOutcomeFacts::default())
}
fn main() {
    println!(
        "guarded_stage={} align={} guarded_failure={} view_handle={}; inline consumer layouts must be recomputed; formal wiring NOT_RUN",
        std::mem::size_of::<ReservedActiveStage>(),
        std::mem::align_of::<ReservedActiveStage>(),
        std::mem::size_of::<ReservedRequestFailure>(),
        std::mem::size_of::<ReservedRequestView>()
    );
}