gitignore_template_generator/
printer.rs1use crate::{
2 constant::{help_texts, template_manager},
3 core::{ProgramExit, QualifiedString},
4};
5
6pub enum Data<'a> {
7 QualifiedString(&'a QualifiedString),
8 ProgramExit(&'a ProgramExit),
9 EnvVarReset(&'a str),
10 EnvVarRemovalBefore(),
11 EnvVarRemovalAfter(),
12 Reset(),
13 Removed(),
14 TestContextDropped(),
15 TestContextCreated(),
16 DefaultTimeout(),
17}
18
19pub fn pp(data: &Data) {
20 let value = ppg(data);
21 match data {
22 Data::ProgramExit(_) => eprintln!("{value}"),
23 _ => println!("{value}"),
24 }
25}
26
27pub fn ppg(data: &Data) -> String {
28 match data {
29 Data::QualifiedString(qs) => qs.value.clone(),
30 Data::ProgramExit(pe) => pe.message.clone(),
31 Data::EnvVarReset(ev) => help_texts::ENV_VAR_RESET
32 .replace("{name}", template_manager::HOME_ENV_VAR)
33 .replace("{value}", ev),
34 Data::EnvVarRemovalBefore() => {
35 help_texts::ENV_VAR_REMOVAL_BEFORE.replace("{name}", template_manager::HOME_ENV_VAR)
36 }
37 Data::EnvVarRemovalAfter() => {
38 help_texts::ENV_VAR_REMOVAL_AFTER.replace("{name}", template_manager::HOME_ENV_VAR)
39 }
40 Data::Reset() => help_texts::RESET.to_string(),
41 Data::Removed() => help_texts::REMOVED.to_string(),
42 Data::TestContextDropped() => help_texts::TEST_CXT_DROPPED.to_string(),
43 Data::TestContextCreated() => help_texts::TEST_CTX_CREATED.to_string(),
44 Data::DefaultTimeout() => help_texts::DEFAULT_TIMEOUT
45 .replace("{second}", template_manager::TIMEOUT)
46 .replace("{millis}", template_manager::TIMEOUT_MILLISECOND),
47 }
48}