polars_core/utils/
any_value.rs1use crate::prelude::*;
2use crate::utils::dtypes_to_supertype;
3
4pub fn any_values_to_supertype<'a, I>(values: I) -> PolarsResult<DataType>
8where
9 I: IntoIterator<Item = &'a AnyValue<'a>>,
10{
11 let dtypes = any_values_to_dtype_set(values);
12 dtypes_to_supertype(&dtypes)
13}
14
15pub fn any_values_to_supertype_and_n_dtypes<'a, I>(values: I) -> PolarsResult<(DataType, usize)>
19where
20 I: IntoIterator<Item = &'a AnyValue<'a>>,
21{
22 let dtypes = any_values_to_dtype_set(values);
23 let supertype = dtypes_to_supertype(&dtypes)?;
24 let n_dtypes = dtypes.len();
25 Ok((supertype, n_dtypes))
26}
27
28fn any_values_to_dtype_set<'a, I>(values: I) -> PlIndexSet<DataType>
33where
34 I: IntoIterator<Item = &'a AnyValue<'a>>,
35{
36 values.into_iter().map(|av| av.into()).collect()
37}