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}