use crate::utils::error::*;
use polars::frame::DataFrame;
pub fn i32(df: &DataFrame, column: &str) -> Result<Vec<i32>, Error> {
let i32_col = map_err(
map_err(
df.column(column),
&format!("Could not find column {}", column),
)?
.i32(),
"Could not convert column to 32 bits integers",
)?;
Ok(i32_col.into_no_null_iter().collect())
}
pub fn u32(df: &DataFrame, column: &str) -> Result<Vec<u32>, Error> {
let u32_col = map_err(
map_err(
df.column(column),
&format!("Could not find column {}", column),
)?
.u32(),
"Could not convert column to 32 bits unsigned integers",
)?;
Ok(u32_col.into_no_null_iter().collect())
}
pub fn has_column(df: &DataFrame, column: &str) -> bool {
df.get_column_names()
.iter()
.map(|s| s.as_str())
.collect::<Vec<&str>>()
.contains(&column)
}