rsv_lib/csv_lib/
size.rs

1use crate::args::Size;
2use crate::utils::return_result::{CliResultData, ResultData};
3use std::fs::File;
4
5impl Size {
6    #[allow(dead_code)]
7    pub fn csv_run_lib(&self) -> CliResultData {
8        let mut out = ResultData::new();
9
10        let file = File::open(self.path())?;
11        let filesize_bytes = file.metadata()?.len() as f64;
12
13        let filesize_kb = filesize_bytes / 1024.0;
14        let filesize_mb = filesize_bytes / (1024.0 * 1024.0);
15        let filesize_gb = filesize_bytes / (1024.0 * 1024.0 * 1024.0);
16
17        let size = if filesize_gb >= 1.0 {
18            format!("{:.2} GB", filesize_gb)
19        } else if filesize_mb >= 1.0 {
20            format!("File Size: {:.2} MB", filesize_mb)
21        } else {
22            format!("File Size: {:.2} KB", filesize_kb)
23        };
24
25        out.insert_header(vec!["size".to_string()]);
26        out.insert_record(vec![size]);
27
28        Ok(Some(out))
29    }
30}