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}