From fb978dc65419341bb4f9111fc9ba7e78c334ef56 Mon Sep 17 00:00:00 2001 From: Lalit Date: Tue, 22 Oct 2024 18:25:55 -0700 Subject: [PATCH 1/2] anyvalue non-exhaustive --- opentelemetry-proto/src/transform/logs.rs | 1 + opentelemetry-stdout/src/common.rs | 1 + opentelemetry/CHANGELOG.md | 1 + opentelemetry/src/logs/record.rs | 1 + 4 files changed, 4 insertions(+) diff --git a/opentelemetry-proto/src/transform/logs.rs b/opentelemetry-proto/src/transform/logs.rs index 4cd2c1617b..48e100c60d 100644 --- a/opentelemetry-proto/src/transform/logs.rs +++ b/opentelemetry-proto/src/transform/logs.rs @@ -51,6 +51,7 @@ pub mod tonic { .collect(), }), LogsAnyValue::Bytes(v) => Value::BytesValue(*v), + _ => unreachable!("Nonexistent value type"), } } } diff --git a/opentelemetry-stdout/src/common.rs b/opentelemetry-stdout/src/common.rs index 236accea7c..1622eeee02 100644 --- a/opentelemetry-stdout/src/common.rs +++ b/opentelemetry-stdout/src/common.rs @@ -169,6 +169,7 @@ impl From for Value { .collect(), ), opentelemetry::logs::AnyValue::Bytes(b) => Value::BytesValue(*b), + _ => unreachable!("Nonexistent value type"), } } } diff --git a/opentelemetry/CHANGELOG.md b/opentelemetry/CHANGELOG.md index 3f55515db4..d5dfe3cfed 100644 --- a/opentelemetry/CHANGELOG.md +++ b/opentelemetry/CHANGELOG.md @@ -8,6 +8,7 @@ - Introduced `SyncInstrument` trait to replace the individual synchronous instrument traits (`SyncCounter`, `SyncGauge`, `SyncHistogram`, `SyncUpDownCounter`) which are meant for SDK implementation. [#2207](https://github.com/open-telemetry/opentelemetry-rust/pull/2207) - Ensured that `observe` method on asynchronous instruments can only be called inside a callback. This was done by removing the implementation of `AsyncInstrument` trait for each of the asynchronous instruments. [#2210](https://github.com/open-telemetry/opentelemetry-rust/pull/2210) - Removed `PartialOrd` and `Ord` implementations for `KeyValue`. [#2215](https://github.com/open-telemetry/opentelemetry-rust/pull/2215) +- - **Breaking change for log exporter authors:** Marked `AnyValue` enum as `non_exhaustive`. ## v0.26.0 Released 2024-Sep-30 diff --git a/opentelemetry/src/logs/record.rs b/opentelemetry/src/logs/record.rs index 5e57b0c51b..91fadbf252 100644 --- a/opentelemetry/src/logs/record.rs +++ b/opentelemetry/src/logs/record.rs @@ -62,6 +62,7 @@ pub trait LogRecord { /// Value types for representing arbitrary values in a log record. #[derive(Debug, Clone, PartialEq)] +#[non_exhaustive] pub enum AnyValue { /// An integer value Int(i64), From ebbfda1eac084c6a35104c5e05f702d9c40b1cd9 Mon Sep 17 00:00:00 2001 From: Lalit Date: Tue, 22 Oct 2024 18:29:05 -0700 Subject: [PATCH 2/2] add changelog --- opentelemetry/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentelemetry/CHANGELOG.md b/opentelemetry/CHANGELOG.md index d5dfe3cfed..f2999dd6db 100644 --- a/opentelemetry/CHANGELOG.md +++ b/opentelemetry/CHANGELOG.md @@ -8,7 +8,7 @@ - Introduced `SyncInstrument` trait to replace the individual synchronous instrument traits (`SyncCounter`, `SyncGauge`, `SyncHistogram`, `SyncUpDownCounter`) which are meant for SDK implementation. [#2207](https://github.com/open-telemetry/opentelemetry-rust/pull/2207) - Ensured that `observe` method on asynchronous instruments can only be called inside a callback. This was done by removing the implementation of `AsyncInstrument` trait for each of the asynchronous instruments. [#2210](https://github.com/open-telemetry/opentelemetry-rust/pull/2210) - Removed `PartialOrd` and `Ord` implementations for `KeyValue`. [#2215](https://github.com/open-telemetry/opentelemetry-rust/pull/2215) -- - **Breaking change for log exporter authors:** Marked `AnyValue` enum as `non_exhaustive`. +- - **Breaking change for log exporter authors:** Marked `AnyValue` enum as `non_exhaustive`. [#2230](https://github.com/open-telemetry/opentelemetry-rust/pull/2230) ## v0.26.0 Released 2024-Sep-30