try/try.rs
1//use plot::lib::{job, job::ParseFromFlags};
2use plot::lib::job;
3fn main() {
4 let mode_is_job_from_toml: bool = true;
5 // =========================================================================
6 // ZBIERANIE USTAWIEŃ (Wszystkie dostępne parametry z Valid<NAZWA>Config)
7 // =========================================================================
8 let j: job::ValidPreparedJobConfig = if !mode_is_job_from_toml {
9 //let blank: Vec<&str> = Vec::<&str>::new();
10 //job::ValidPreparedJobConfig {
11 // // 0. Execution Config (Domyślnie: Debug: true, SaveAs: true, CliColor: true)
12 // exec: job::ValidExecutionParse::parse_vec_as_config(&blank),
13 // // 1. Workspace (Domyślnie ".")
14 // work: job::ValidWorkspaceParse::parse_vec_as_config(["."]),
15 // // 2. Patterns (Domyślnie zbiór filtrów zdefiniowany w config.rs)
16 // patt: job::ValidPatternParse::parse_vec_as_config(&blank),
17 // // 3. Table Parts (Domyślnie md + mf)
18 // part: job::ValidTablePartParse::parse_vec_as_config(&blank),
19 // // 4. Column Item (Domyślnie Tree, IconsLite, Name: false, Align: false)
20 // item: job::ValidColumnItemParse::parse_vec_as_config(["list-tree", "name-show", "ws-show", "icons-lite"]),
21 // // 5. Table Columns (Domyślnie Date, Time, Size, Item, Path)
22 // cols: job::ValidTableColumnsParse::parse_vec_as_config(&blank),
23 // // 6. Column Date (Domyślnie "%Y W%V %u-%a")
24 // date: job::ValidColumnDateParse::parse_vec_as_config(&blank),
25 // // 7. Column Time (Domyślnie "%H:%M:%S.%3f")
26 // time: job::ValidColumnTimeParse::parse_vec_as_config(&blank),
27 // // 8. Column Size (Domyślnie Decimal / SI)
28 // size: job::ValidColumnSizeParse::parse_vec_as_config(&blank),
29 // // 9. Sort By (Domyślnie Name, [Spec][Num][AZaz], Reverse: false)
30 // sort: job::ValidSortByParse::parse_vec_as_config(&blank),
31 // // 10. Save As (Domyślnie "./target/.cargo-plot/", "Project Snapshot", SOTC/COTS names)
32 // save: job::ValidSaveAsParse::parse_vec_as_config(&blank),
33 //}
34 job::ValidPreparedJobConfig::default()
35 } else {
36 job::ValidPreparedJobConfig::from_toml(None).unwrap()
37 };
38
39 // =========================================================================
40 // STEP 0: Inicjalizacja
41 // =========================================================================
42 // =========================================================================
43 // STEP 1: Skanowanie i pobranie metadanych z dysku
44 // =========================================================================
45 let step1 = job::engine_step1_scanner(&j);
46
47 println!("Skanowanie zakończone. Zabrano wierszy (ValidResultMainRow): {}\n", step1.rows.len());
48
49 // =========================================================================
50 // STEP 2: Formatowanie komórek
51 // =========================================================================
52 let step2: Vec<job::FormattedRow> = job::engine_step2_data_formater(&j, &step1);
53
54 // =========================================================================
55 // STEP 6: ZAPISYWANIE
56 // =========================================================================
57 if j.exec.save_as && !j.exec.only_dry {
58 job::engine_step6_data_save(&j, &step2).unwrap();
59 }
60 // =========================================================================
61 // STEP 7: PODGLĄD
62 // =========================================================================
63 if !j.exec.mute {
64 let limit = step2.len().min(75);
65 println!("{}", job::gens::mock_render(&step2[..limit], &j.cols));
66 }
67 // =========================================================================
68 println!("\n=== KONIEC ===\n");
69}