1pub use tracing::*;
2
3pub trait TracingSpan {
4 fn link_span(&mut self, span: &Span);
5}
6
7impl<N> TracingSpan for N {
8 default fn link_span(&mut self, _span: &Span) {}
9}
10
11#[cfg(feature = "tracing_opentelemetry")]
12impl<T: tracing_opentelemetry::OpenTelemetrySpanExt> TracingSpan for T {
13 fn link_span(&mut self, span: &Span) {
14 self.add_link(
15 opentelemetry::trace::TraceContextExt::span(
16 &tracing_opentelemetry::OpenTelemetrySpanExt::context(span),
17 )
18 .span_context()
19 .clone(),
20 );
21 }
22}