color_output/macro/
proc_macro.rs1#[macro_export]
62macro_rules! output_macro {
63 ($($output:expr),*) => {
64 $(
65 $output.output();
66 )*
67 };
68}
69
70#[macro_export]
71macro_rules! print_message_common_handler {
72 ($level:expr, $color:expr, $bg_color:expr, $endl:expr, $($data:expr),*) => {{
73 use crate::*;
74 use std::fmt::*;
75 let binding: String = format!("[{} => {}]", current_time(), $level);
76 let mut time_output_builder: OutputBuilder<'_> = OutputBuilder::new();
77 let time_output: Output<'_> = time_output_builder
78 .text(&binding)
79 .blod(true)
80 .bg_color($bg_color)
81 .color(ColorType::Color256(0xffffff))
82 .build();
83 let mut text_output_builder: OutputBuilder<'_> = OutputBuilder::new();
84 let mut text_endl_output_builder: OutputBuilder<'_> = OutputBuilder::new();
85 let text_endl_output: Output<'_> = text_endl_output_builder.text("\n").endl(false).build();
86 let mut has_add_time: bool = false;
87 $(
88 let text = $data.to_string();
89 for line in text.lines() {
90 let mut output_list_builder = OutputListBuilder::new();
91 if $endl || !has_add_time {
92 has_add_time = true;
93 output_list_builder.add(time_output.clone());
94 }
95 let text_output: Output<'_> = text_output_builder
96 .text(&line)
97 .blod(true)
98 .color($color)
99 .endl(false)
100 .build();
101 output_list_builder.add(text_output);
102 if $endl {
103 output_list_builder.add(text_endl_output.clone());
104 }
105 output_list_builder.run();
106 }
107 )*
108 }};
109}
110
111#[macro_export]
112macro_rules! print_success {
113 ($($data:expr),*) => {
114 crate::print_message_common_handler!("success", ColorType::Rgb(0,255,0), ColorType::Rgb(0,255,0), false, $($data),*);
115 };
116}
117
118#[macro_export]
119macro_rules! print_warning {
120 ($($data:expr),*) => {
121 crate::print_message_common_handler!("warning", ColorType::Rgb(255, 255, 0), ColorType::Rgb(255, 255, 0), false, $($data),*);
122 };
123}
124
125#[macro_export]
126macro_rules! print_error {
127 ($($data:expr),*) => {
128 crate::print_message_common_handler!("error", ColorType::Rgb(255,0,0), ColorType::Rgb(255,0,0), false, $($data),*);
129 };
130}
131
132#[macro_export]
133macro_rules! println_success {
134 ($($data:expr),*) => {
135 crate::print_message_common_handler!("success", ColorType::Rgb(0,255,0), ColorType::Rgb(0,255,0), true, $($data),*);
136 };
137}
138
139#[macro_export]
140macro_rules! println_warning {
141 ($($data:expr),*) => {
142 crate::print_message_common_handler!("warning", ColorType::Rgb(255, 255, 0), ColorType::Rgb(255, 255, 0), true, $($data),*);
143 };
144}
145
146#[macro_export]
147macro_rules! println_error {
148 ($($data:expr),*) => {
149 crate::print_message_common_handler!("error", ColorType::Rgb(255,0,0), ColorType::Rgb(255,0,0), true, $($data),*);
150 };
151}