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"),
}
}
}