rgwml 2.0.0

Typed, local-first tabular data library with columnar in-memory storage.
Documentation
use crate::table::DataType;

#[derive(Clone, Debug, PartialEq)]
pub struct NumericStats {
    pub min: Option<f64>,
    pub max: Option<f64>,
    pub mean: Option<f64>,
    pub null_count: usize,
}

#[derive(Clone, Debug, PartialEq, Eq)]
pub struct StringStats {
    pub min_len: Option<usize>,
    pub max_len: Option<usize>,
    pub estimated_cardinality: Option<usize>,
    pub null_count: usize,
}

#[derive(Clone, Debug, PartialEq)]
pub enum ColumnStats {
    Numeric {
        dtype: DataType,
        stats: NumericStats,
    },
    String {
        dtype: DataType,
        stats: StringStats,
    },
    Boolean {
        true_count: usize,
        false_count: usize,
        null_count: usize,
    },
}

#[derive(Clone, Debug, PartialEq)]
pub struct TableStats {
    pub rows: usize,
    pub columns: usize,
    pub per_column: Vec<ColumnStats>,
}