#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub enum Newline {
Lf,
#[default]
CrLf,
}
impl Newline {
pub fn as_str(self) -> &'static str {
match self {
Newline::Lf => "\n",
Newline::CrLf => "\r\n",
}
}
}
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub enum Quoting {
#[default]
Always,
Minimal,
}
#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub enum MissingText {
#[default]
Error,
Text(Box<str>),
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct CsvOptions {
pub delimiter: char,
pub newline: Newline,
pub header: bool,
pub null_text: Box<str>,
pub missing: MissingText,
pub quoting: Quoting,
}
impl Default for CsvOptions {
fn default() -> Self {
CsvOptions {
delimiter: ',',
newline: Newline::CrLf,
header: true,
null_text: "".into(),
missing: MissingText::Error,
quoting: Quoting::Always,
}
}
}