rsv_lib/csv/
to.rs

1use crate::args::To;
2use crate::utils::cli_result::CliResult;
3use crate::utils::to::{csv_or_io_to_csv, csv_to_excel, is_valid_excel, is_valid_plain_text};
4
5impl To {
6    pub fn csv_run(&self) -> CliResult {
7        let path = &self.path();
8        let out = self.out.to_lowercase();
9
10        match out.as_str() {
11            v if is_valid_plain_text(v) => csv_or_io_to_csv(Some(path), &out)?,
12            v if is_valid_excel(v) => {
13                csv_to_excel(path, self.sep, self.quote, &out, self.no_header)?
14            }
15            _ => return Err(format!("output file format <{out}> is un-recognized.").into()),
16        };
17
18        Ok(())
19    }
20}