use polars_core::frame::DataFrame;
pub struct DfWithOffset {
df: DataFrame,
offset: usize,
}
impl DfWithOffset {
pub fn new(df: DataFrame) -> Self {
Self { df, offset: 0 }
}
pub fn split_off_front(&mut self, n_rows: usize) -> DataFrame {
let ret = self.df.slice(self.offset as i64, n_rows);
self.offset += n_rows;
assert!(self.offset <= self.df.height());
ret
}
pub fn into_df(self) -> DataFrame {
self.df
.slice(self.offset as i64, self.df.height() - self.offset)
}
pub fn height(&self) -> usize {
self.df.height() - self.offset
}
}