ltpp_output/macro/proc_macro.rs
1/// Output macro
2///
3/// [Official Documentation](https://docs.ltpp.vip/LTPP-RUST-OUTPUT/),
4///
5/// # Parameters
6/// - `Output`: The output struct
7///
8/// # Code Example
9///
10/// ## Using the Struct
11///
12/// ```rust
13/// use ltpp_output::*;
14/// output_macro!(Output {
15/// text: "test_proc_macro",
16/// text_color: ColorType::default(),
17/// text_bg_color: ColorType::Use(Color::Yellow),
18/// show_time: true,
19/// time_text_color: ColorType::Use(Color::Green),
20/// time_bg_color: ColorType::Color256(0xffffff),
21/// split: " => ",
22/// split_color: ColorType::Use(Color::Cyan),
23/// split_bg_color: ColorType::Use(Color::Yellow),
24/// endl: true,
25/// ..Default::default()
26/// });
27/// ```
28///
29/// ## Using the Constructor
30///
31/// ```rust
32/// use ltpp_output::*;
33/// output_macro!(OutputBuilder::new()
34/// .set_text("test_output_builder")
35/// .set_text_color(ColorType::Use(Color::Cyan))
36/// .set_time_text_color(ColorType::Use(Color::Blue))
37/// .set_text_blod(true)
38/// .set_time_text_blod(true)
39/// .set_show_time(true)
40/// .set_endl(true)
41/// .build());
42/// ```
43///
44/// ## Multiple Inputs
45///
46/// ```rust
47/// use ltpp_output::*;
48/// output_macro!(
49/// Output {
50/// text: "test_proc_macro",
51/// text_color: ColorType::default(),
52/// text_bg_color: ColorType::Use(Color::Yellow),
53/// show_time: true,
54/// time_text_color: ColorType::Use(Color::Green),
55/// time_bg_color: ColorType::Color256(0xffffff),
56/// split: " => ",
57/// split_color: ColorType::Use(Color::Cyan),
58/// split_bg_color: ColorType::Use(Color::Yellow),
59/// endl: true,
60/// ..Default::default()
61/// },
62/// OutputBuilder::new()
63/// .set_text("test_output_builder1")
64/// .set_text_color(ColorType::Color256(0xffffff))
65/// .set_time_text_color(ColorType::Rgb(255, 200, 255))
66/// .set_text_blod(true)
67/// .set_time_text_blod(true)
68/// .set_show_time(true)
69/// .set_endl(true)
70/// .build(),
71/// OutputBuilder::new()
72/// .set_text("test_output_builder2")
73/// .set_text_color(ColorType::Color256(0xffffff))
74/// .set_time_text_color(ColorType::Rgb(255, 200, 255))
75/// .set_text_blod(true)
76/// .set_time_text_blod(true)
77/// .set_show_time(true)
78/// .set_endl(true)
79/// .build()
80/// );
81/// ```
82#[macro_export]
83macro_rules! output_macro {
84 ($($output:expr),*) => {
85 $(
86 $output.output();
87 )*
88 };
89}