diff --git a/libraries/arrow-convert/src/from_impls.rs b/libraries/arrow-convert/src/from_impls.rs index 01e8a951..eb586473 100644 --- a/libraries/arrow-convert/src/from_impls.rs +++ b/libraries/arrow-convert/src/from_impls.rs @@ -107,6 +107,25 @@ impl TryFrom<&ArrowData> for i64 { } } +impl TryFrom<&ArrowData> for f32 { + type Error = eyre::Report; + fn try_from(value: &ArrowData) -> Result { + let array = value + .as_primitive_opt::() + .context("not a primitive Float32Type array")?; + extract_single_primitive(array) + } +} +impl TryFrom<&ArrowData> for f64 { + type Error = eyre::Report; + fn try_from(value: &ArrowData) -> Result { + let array = value + .as_primitive_opt::() + .context("not a primitive Float64Type array")?; + extract_single_primitive(array) + } +} + impl<'a> TryFrom<&'a ArrowData> for &'a str { type Error = eyre::Report; fn try_from(value: &'a ArrowData) -> Result {