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}