use polars::prelude::AnyValue;
pub trait AnyValueConverter {
fn unwrap_float64(self) -> f64;
fn unwrap_uint32(self) -> u32;
fn unwrap_int64(self) -> i64;
fn unwrap_utf8(self) -> String;
}
impl AnyValueConverter for &AnyValue<'_> {
fn unwrap_float64(self) -> f64 {
match self {
AnyValue::Float64(x) => *x,
AnyValue::Null => panic!("Matching against NULL value"),
_ => panic!("Matching against wrong value"),
}
}
fn unwrap_uint32(self) -> u32 {
match self {
AnyValue::UInt32(x) => *x,
AnyValue::Null => panic!("Matching against NULL value"),
_ => panic!("Matching against wrong value"),
}
}
fn unwrap_int64(self) -> i64 {
match self {
AnyValue::Int64(x) => *x,
AnyValue::Null => panic!("Matching against NULL value"),
_ => panic!("Matching against wrong value"),
}
}
fn unwrap_utf8(self) -> String {
match self {
AnyValue::Utf8(x) => x.to_string(),
AnyValue::Null => panic!("Matching against NULL value"),
_ => panic!("Matching against wrong value"),
}
}
}