diff --git a/opentelemetry-otlp/src/transform/common.rs b/opentelemetry-otlp/src/transform/common.rs index 34f0793236..c36771581e 100644 --- a/opentelemetry-otlp/src/transform/common.rs +++ b/opentelemetry-otlp/src/transform/common.rs @@ -57,16 +57,13 @@ impl From for AnyValue { } } -fn array_into_proto(vals: Vec>) -> ArrayValue +fn array_into_proto(vals: Vec) -> ArrayValue where Value: From, { let values = RepeatedField::from_vec( vals.into_iter() - .map(|val| match val { - Some(v) => AnyValue::from(Value::from(v)), - None => AnyValue::new(), - }) + .map(|val| AnyValue::from(Value::from(val))) .collect(), ); diff --git a/opentelemetry/src/api/core.rs b/opentelemetry/src/api/core.rs index 6581388f48..cf994b7698 100644 --- a/opentelemetry/src/api/core.rs +++ b/opentelemetry/src/api/core.rs @@ -98,13 +98,13 @@ impl fmt::Display for Key { #[derive(Clone, Debug, PartialEq)] pub enum Array { /// Array of bools - Bool(Vec>), + Bool(Vec), /// Array of integers - I64(Vec>), + I64(Vec), /// Array of floats - F64(Vec>), + F64(Vec), /// Array of strings - String(Vec>>), + String(Vec>), } impl fmt::Display for Array { @@ -119,10 +119,7 @@ impl fmt::Display for Array { if i > 0 { write!(fmt, ",")?; } - match t { - Some(t) => write!(fmt, "{:?}", t)?, - None => write!(fmt, "null")?, - } + write!(fmt, "{:?}", t)?; } write!(fmt, "]") } @@ -130,29 +127,23 @@ impl fmt::Display for Array { } } -fn display_array_str( - slice: &[Option], - fmt: &mut fmt::Formatter<'_>, -) -> fmt::Result { +fn display_array_str(slice: &[T], fmt: &mut fmt::Formatter<'_>) -> fmt::Result { write!(fmt, "[")?; for (i, t) in slice.iter().enumerate() { if i > 0 { write!(fmt, ",")?; } - match t { - Some(t) => write!(fmt, "{}", t)?, - None => write!(fmt, "null")?, - } + write!(fmt, "{}", t)?; } write!(fmt, "]") } macro_rules! into_array { - ($(($t:ty, $val:expr, $src:ident, $convert:expr),)+) => { + ($(($t:ty, $val:expr),)+) => { $( impl From<$t> for Array { - fn from($src: $t) -> Self { - $val($convert) + fn from(t: $t) -> Self { + $val(t) } } )+ @@ -160,14 +151,10 @@ macro_rules! into_array { } into_array!( - (Vec>, Array::Bool, t, t), - (Vec>, Array::I64, t, t), - (Vec>, Array::F64, t, t), - (Vec>>, Array::String, t, t), - (Vec, Array::Bool, t, t.into_iter().map(Some).collect()), - (Vec, Array::I64, t, t.into_iter().map(Some).collect()), - (Vec, Array::F64, t, t.into_iter().map(Some).collect()), - (Vec>, Array::String, t, t.into_iter().map(Some).collect()), + (Vec, Array::Bool), + (Vec, Array::I64), + (Vec, Array::F64), + (Vec>, Array::String), ); /// Value types for use in `KeyValue` pairs. diff --git a/opentelemetry/src/api/labels/mod.rs b/opentelemetry/src/api/labels/mod.rs index 99d9c64222..d13ac7de1a 100644 --- a/opentelemetry/src/api/labels/mod.rs +++ b/opentelemetry/src/api/labels/mod.rs @@ -86,9 +86,7 @@ fn hash_value(state: &mut H, value: &Value) { // recursively hash array values Array::Bool(values) => values.iter().for_each(|v| v.hash(state)), Array::I64(values) => values.iter().for_each(|v| v.hash(state)), - Array::F64(values) => values - .iter() - .for_each(|v| v.map(|f| f.to_bits()).hash(state)), + Array::F64(values) => values.iter().for_each(|v| v.to_bits().hash(state)), Array::String(values) => values.iter().for_each(|v| v.hash(state)), }, }