#![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 {
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> {
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>()
);
}