rgwml 2.0.0

Typed, local-first tabular data library with columnar in-memory storage.
Documentation
use std::sync::Arc;

use super::ColumnSelector;

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum JoinType {
    Inner,
    Left,
    Right,
    Full,
}

#[derive(Clone, Debug, PartialEq, Eq)]
pub struct JoinKey {
    pub left: ColumnSelector,
    pub right: ColumnSelector,
}

#[derive(Clone, Debug, PartialEq, Eq)]
pub struct JoinOptions {
    pub join_type: JoinType,
    pub keys: Vec<JoinKey>,
    pub left_suffix: Arc<str>,
    pub right_suffix: Arc<str>,
}

impl Default for JoinOptions {
    fn default() -> Self {
        Self {
            join_type: JoinType::Inner,
            keys: Vec::new(),
            left_suffix: Arc::from("_left"),
            right_suffix: Arc::from("_right"),
        }
    }
}