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 text: String = String::new();
87 $(
88 text.push_str(&$data.to_string());
89 )*
90 let mut lines_iter = text.lines().peekable();
91 while let Some(line) = lines_iter.next() {
92 let mut output_list_builder = OutputListBuilder::new();
93 output_list_builder.add(time_output.clone());
94 let text_output: Output<'_> = text_output_builder
95 .text(&line)
96 .blod(true)
97 .color($color)
98 .endl(false)
99 .build();
100 output_list_builder.add(text_output);
101 if lines_iter.peek().is_some() || $endl {
102 output_list_builder.add(text_endl_output.clone());
103 }
104 output_list_builder.run();
105 }
106 }};
107}
108
109#[macro_export]
110macro_rules! print_success {
111 ($($data:expr),*) => {
112 crate::print_message_common_handler!("success", ColorType::Rgb(0,255,0), ColorType::Rgb(0,255,0), false, $($data),*);
113 };
114}
115
116#[macro_export]
117macro_rules! print_warning {
118 ($($data:expr),*) => {
119 crate::print_message_common_handler!("warning", ColorType::Rgb(255, 255, 0), ColorType::Rgb(255, 255, 0), false, $($data),*);
120 };
121}
122
123#[macro_export]
124macro_rules! print_error {
125 ($($data:expr),*) => {
126 crate::print_message_common_handler!("error", ColorType::Rgb(255,0,0), ColorType::Rgb(255,0,0), false, $($data),*);
127 };
128}
129
130#[macro_export]
131macro_rules! println_success {
132 ($($data:expr),*) => {
133 crate::print_message_common_handler!("success", ColorType::Rgb(0,255,0), ColorType::Rgb(0,255,0), true, $($data),*);
134 };
135}
136
137#[macro_export]
138macro_rules! println_warning {
139 ($($data:expr),*) => {
140 crate::print_message_common_handler!("warning", ColorType::Rgb(255, 255, 0), ColorType::Rgb(255, 255, 0), true, $($data),*);
141 };
142}
143
144#[macro_export]
145macro_rules! println_error {
146 ($($data:expr),*) => {
147 crate::print_message_common_handler!("error", ColorType::Rgb(255,0,0), ColorType::Rgb(255,0,0), true, $($data),*);
148 };
149}