1use plot::lib::job;
2
3fn main() {
4 println!("=== TEST STEP 2 (ALPHA) ===\n");
5
6 let ws_cfg = job::ValidWorkspaceParse::parse_vec_as_config(["."]);
11 let pt_cfg = job::ValidPatternParse::parse_vec_as_config(Vec::<&str>::new(), None);
12 let part_cfg = job::ValidTablePartParse::parse_vec_as_config(["md", "mf"]);
18 let raw_rows = job::engine_step1_scanner(part_cfg, &ws_cfg, &pt_cfg);
19
20 println!("Skanowanie zakończone. Zabrano wierszy (ValidResultMainRow): {}\n", raw_rows.rows.len());
21
22 let item_cfg =
28 job::ValidColumnItemParse::parse_vec_as_config(["list-tree", "name-show", "ws-show", "icons-lite"]).unwrap();
29
30 let cols_cfg = job::ValidTableColumnsParse::parse_vec_as_config(["date", "time", "size", "item", "path"]);
31
32 let date_cfg = job::ValidColumnDateParse::parse_vec_as_config(["default"]);
33 let time_cfg = job::ValidColumnTimeParse::parse_vec_as_config(["default"]);
34 let size_cfg = job::ValidColumnSizeParse::parse_vec_as_config(["dec"]);
35
36 let formatted_rows =
37 job::engine_step2_data_formater((&item_cfg, &cols_cfg), (&date_cfg, &time_cfg, &size_cfg), &raw_rows);
38
39 let sample_rows: Vec<_> = formatted_rows.into_iter().take(75).collect();
43
44 mock_render(&sample_rows, &cols_cfg);
46}
47
48fn mock_render(rows: &[job::FormattedRow], cols_cfg: &job::ValidTableColumnsConfig) {
52 for row in rows {
53 let mut line = String::new();
54
55 for (col_idx, cell) in row.cells.iter().enumerate() {
56 line.push_str(cell);
57
58 if col_idx < row.cells.len() - 1 {
60 let current_col = cols_cfg.columns.get(col_idx);
62 let next_col = cols_cfg.columns.get(col_idx + 1);
63
64 let is_date_time_pair = match (current_col, next_col) {
66 (Some(job::ValidTableColumnsParse::Date), Some(job::ValidTableColumnsParse::Time)) => true,
67 (Some(job::ValidTableColumnsParse::Time), Some(job::ValidTableColumnsParse::Date)) => true,
68 _ => false,
69 };
70
71 if is_date_time_pair {
72 line.push_str(" "); } else {
74 line.push_str(" | "); }
76 }
77 }
78 println!("{}", line);
79 }
80}