1use plot::lib::job;
2
3fn main() {
4 println!("=== TEST STEP 2 (ALPHA) ===\n");
5
6 let ws_cfg = job::ValidWorkspace::parse_vec_as_config(["."]);
11 let pt_cfg = job::ValidPattern::parse_vec_as_config(Vec::<&str>::new(), None);
12 let part_cfg = job::ValidTablePart::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 (RawRow): {}\n", raw_rows.rows.len());
21
22 let item_cfg =
28 job::ValidColumnItem::parse_vec_as_config(["list-tree", "name-show", "ws-show", "icons-lite"]).unwrap();
29
30 let cols_cfg = job::ValidTableColumns::parse_vec_as_config(["date", "time", "size", "item", "path"]);
31
32 let date_cfg = job::ValidColumnDate::parse_vec_as_config(["default"]);
33 let time_cfg = job::ValidColumnTime::parse_vec_as_config(["default"]);
34 let size_cfg = job::ValidColumnSize::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[col_idx];
61 let next_col = &cols_cfg.columns[col_idx + 1];
62
63 let is_date_time_pair = (current_col == &job::ValidTableColumns::Date
66 && next_col == &job::ValidTableColumns::Time)
67 || (current_col == &job::ValidTableColumns::Time && next_col == &job::ValidTableColumns::Date);
68
69 if is_date_time_pair {
70 line.push_str(" "); } else {
72 line.push_str(" | "); }
74 }
75 }
76 println!("{}", line);
77 }
78}