From 283e0b5ccd3b8ef5ae8ee939a6ba6c11d1a178e1 Mon Sep 17 00:00:00 2001 From: Alexander Lyon Date: Sat, 28 Nov 2020 13:19:40 +0000 Subject: [PATCH 1/2] Add warning about assigning the uninstaller to '_' It is common rust convention to use _ to signify an unused variable. Because we _are_ using this (until the end of the block) it is helpful to explain the intent. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 50dfdc15c6..02eda2cf05 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,9 @@ use opentelemetry::{exporter::trace::stdout, trace::Tracer}; fn main() -> Result<(), Box> { // Create a new instrumentation pipeline + // Note: uninstalling the tracer happens when the _uninstall + // variable is dropped. Assigning it to _ will immediately + // drop it and uninstall the tracer let (tracer, _uninstall) = stdout::new_pipeline().install(); tracer.in_span("doing_work", |cx| { From 941f6e794c3cf57224b90c4b45528d3b9d77748f Mon Sep 17 00:00:00 2001 From: Alexander Lyon Date: Tue, 1 Dec 2020 23:41:43 +0100 Subject: [PATCH 2/2] Add must_use attributes to the Uninstall structs --- opentelemetry-contrib/src/trace/exporter/datadog/mod.rs | 1 + opentelemetry-jaeger/src/lib.rs | 1 + opentelemetry-otlp/src/lib.rs | 1 + opentelemetry-zipkin/src/lib.rs | 1 + opentelemetry/src/exporter/trace/stdout.rs | 1 + 5 files changed, 5 insertions(+) diff --git a/opentelemetry-contrib/src/trace/exporter/datadog/mod.rs b/opentelemetry-contrib/src/trace/exporter/datadog/mod.rs index 5107649005..b5bb2c9f9b 100644 --- a/opentelemetry-contrib/src/trace/exporter/datadog/mod.rs +++ b/opentelemetry-contrib/src/trace/exporter/datadog/mod.rs @@ -290,5 +290,6 @@ impl trace::SpanExporter for DatadogExporter { } /// Uninstalls the Datadog pipeline on drop +#[must_use] #[derive(Debug)] pub struct Uninstall(global::TracerProviderGuard); diff --git a/opentelemetry-jaeger/src/lib.rs b/opentelemetry-jaeger/src/lib.rs index d9f00acb2c..514c61c8c8 100644 --- a/opentelemetry-jaeger/src/lib.rs +++ b/opentelemetry-jaeger/src/lib.rs @@ -225,6 +225,7 @@ pub fn new_pipeline() -> PipelineBuilder { } /// Guard that uninstalls the Jaeger trace pipeline when dropped +#[must_use] #[derive(Debug)] pub struct Uninstall(global::TracerProviderGuard); diff --git a/opentelemetry-otlp/src/lib.rs b/opentelemetry-otlp/src/lib.rs index 307ed2a8e2..9cb377b2ba 100644 --- a/opentelemetry-otlp/src/lib.rs +++ b/opentelemetry-otlp/src/lib.rs @@ -233,5 +233,6 @@ impl OtlpPipelineBuilder { } /// Uninstalls the OTLP pipeline on drop +#[must_use] #[derive(Debug)] pub struct Uninstall(global::TracerProviderGuard); diff --git a/opentelemetry-zipkin/src/lib.rs b/opentelemetry-zipkin/src/lib.rs index 0538e8e57a..6e8593cee8 100644 --- a/opentelemetry-zipkin/src/lib.rs +++ b/opentelemetry-zipkin/src/lib.rs @@ -320,5 +320,6 @@ impl trace::SpanExporter for Exporter { } /// Uninstalls the Zipkin pipeline on drop. +#[must_use] #[derive(Debug)] pub struct Uninstall(global::TracerProviderGuard); diff --git a/opentelemetry/src/exporter/trace/stdout.rs b/opentelemetry/src/exporter/trace/stdout.rs index 1b257e8382..69af282a77 100644 --- a/opentelemetry/src/exporter/trace/stdout.rs +++ b/opentelemetry/src/exporter/trace/stdout.rs @@ -141,5 +141,6 @@ where } /// Uninstalls the stdout pipeline on drop. +#[must_use] #[derive(Debug)] pub struct Uninstall(global::TracerProviderGuard);