Skip to content

Commit 5f9750f

Browse files
authored
Add conversion from tuple of key/value references to Label. (#470)
1 parent a143ef6 commit 5f9750f

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

metrics/src/label.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,16 @@ where
5656
}
5757
}
5858

59+
impl<K, V> From<(&K, &V)> for Label
60+
where
61+
K: Into<SharedString> + Clone,
62+
V: Into<SharedString> + Clone,
63+
{
64+
fn from(pair: (&K, &V)) -> Label {
65+
Label::new(pair.0.clone(), pair.1.clone())
66+
}
67+
}
68+
5969
/// A value that can be converted to a vector of [`Label`]s.
6070
pub trait IntoLabels {
6171
/// Consumes this value, turning it into a vector of [`Label`]s.
@@ -99,4 +109,14 @@ mod label_tests {
99109
let expected = vec![Label::new("x", "a"), Label::new("y", "b")];
100110
assert_eq!(from_slice_to_labels(&labels), expected);
101111
}
112+
113+
#[test]
114+
fn btreemap_to_labels() {
115+
use std::collections::BTreeMap;
116+
117+
let labels_btreemap = BTreeMap::from([("customer", "Rust Foundation")]);
118+
119+
let expected = vec![Label::new("customer", "Rust Foundation")];
120+
assert_eq!(labels_btreemap.into_labels(), expected);
121+
}
102122
}

0 commit comments

Comments
 (0)