Skip to main content

miden_node_utils/tracing/
span_ext.rs

1use opentelemetry::trace::Status;
2
3use crate::ErrorReport;
4
5/// Extension helper for marking the current OpenTelemetry span as failed.
6pub trait ErrorSpanExt: private::Sealed {
7    fn set_error(&self, err: &dyn std::error::Error);
8}
9
10impl<S> ErrorSpanExt for S
11where
12    S: tracing_opentelemetry::OpenTelemetrySpanExt,
13{
14    fn set_error(&self, err: &dyn std::error::Error) {
15        tracing_opentelemetry::OpenTelemetrySpanExt::set_status(
16            self,
17            Status::Error { description: err.as_report().into() },
18        );
19    }
20}
21
22mod private {
23    pub trait Sealed {}
24    impl<S> Sealed for S where S: tracing_opentelemetry::OpenTelemetrySpanExt {}
25}