use std::borrow::Cow;
use polars_core::datatypes::DataType;
use polars_core::prelude::{JoinType, TimeUnit};
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
#[derive(Clone, PartialEq, Debug, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct StrpTimeOptions {
pub date_dtype: DataType,
pub fmt: Option<String>,
pub strict: bool,
pub exact: bool,
pub cache: bool,
pub tz_aware: bool,
}
impl Default for StrpTimeOptions {
fn default() -> Self {
StrpTimeOptions {
date_dtype: DataType::Datetime(TimeUnit::Microseconds, None),
fmt: None,
strict: false,
exact: false,
cache: true,
tz_aware: false,
}
}
}
#[derive(Clone, Debug, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct JoinOptions {
pub allow_parallel: bool,
pub force_parallel: bool,
pub how: JoinType,
pub suffix: Cow<'static, str>,
pub slice: Option<(i64, usize)>,
pub rows_left: (Option<usize>, usize),
pub rows_right: (Option<usize>, usize),
}
impl Default for JoinOptions {
fn default() -> Self {
JoinOptions {
allow_parallel: true,
force_parallel: false,
how: JoinType::Left,
suffix: "_right".into(),
slice: None,
rows_left: (None, usize::MAX),
rows_right: (None, usize::MAX),
}
}
}