From dbd3ecb74cdad68d1efe3f0024cc3551f502a4c3 Mon Sep 17 00:00:00 2001 From: Duncan Harvey Date: Tue, 28 Apr 2026 10:27:02 -0400 Subject: [PATCH 1/2] add hash trait to tracer metadata --- libdd-library-config/src/tracer_metadata.rs | 30 ++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/libdd-library-config/src/tracer_metadata.rs b/libdd-library-config/src/tracer_metadata.rs index f84cb24478..5b76536685 100644 --- a/libdd-library-config/src/tracer_metadata.rs +++ b/libdd-library-config/src/tracer_metadata.rs @@ -4,7 +4,7 @@ use libdd_trace_protobuf::opentelemetry::proto as otel_proto; use std::default::Default; /// This struct MUST be backward compatible. -#[derive(serde::Serialize, Debug, PartialEq, Eq)] +#[derive(serde::Serialize, Debug, PartialEq, Eq, Hash)] pub struct TracerMetadata { /// Version of the schema. pub schema_version: u8, @@ -247,6 +247,34 @@ mod tests { .as_ref() } + #[test] + fn tracer_metadata_hash() { + use std::collections::hash_map::DefaultHasher; + use std::hash::{Hash, Hasher}; + + fn hash(m: &TracerMetadata) -> u64 { + let mut h = DefaultHasher::new(); + m.hash(&mut h); + h.finish() + } + + let a = TracerMetadata { + tracer_language: "python".into(), + ..Default::default() + }; + let b = TracerMetadata { + tracer_language: "python".into(), + ..Default::default() + }; + let c = TracerMetadata { + tracer_language: "ruby".into(), + ..Default::default() + }; + + assert_eq!(hash(&a), hash(&b)); + assert_ne!(hash(&a), hash(&c)); + } + #[test] fn tracer_metadata_equality() { let a = TracerMetadata { From b04a4bb50e5b29ae3dbddd6cce0c571024cbe029 Mon Sep 17 00:00:00 2001 From: Duncan Harvey <35278470+duncanpharvey@users.noreply.github.com> Date: Tue, 28 Apr 2026 11:50:48 -0400 Subject: [PATCH 2/2] remove hash test from TracerMetadata Co-authored-by: Yann Hamdaoui --- libdd-library-config/src/tracer_metadata.rs | 28 --------------------- 1 file changed, 28 deletions(-) diff --git a/libdd-library-config/src/tracer_metadata.rs b/libdd-library-config/src/tracer_metadata.rs index 5b76536685..03d0ae9b4c 100644 --- a/libdd-library-config/src/tracer_metadata.rs +++ b/libdd-library-config/src/tracer_metadata.rs @@ -247,34 +247,6 @@ mod tests { .as_ref() } - #[test] - fn tracer_metadata_hash() { - use std::collections::hash_map::DefaultHasher; - use std::hash::{Hash, Hasher}; - - fn hash(m: &TracerMetadata) -> u64 { - let mut h = DefaultHasher::new(); - m.hash(&mut h); - h.finish() - } - - let a = TracerMetadata { - tracer_language: "python".into(), - ..Default::default() - }; - let b = TracerMetadata { - tracer_language: "python".into(), - ..Default::default() - }; - let c = TracerMetadata { - tracer_language: "ruby".into(), - ..Default::default() - }; - - assert_eq!(hash(&a), hash(&b)); - assert_ne!(hash(&a), hash(&c)); - } - #[test] fn tracer_metadata_equality() { let a = TracerMetadata {