console_utilities/
output.rs1use crate::color::{RGB, set_text_color, reset_text_color};
2
3pub fn print_rgb(prompt: &str, color: RGB) {
4 set_text_color(color);
5 print!("{}", prompt);
6 reset_text_color();
7}
8
9pub fn print_gradient(text: &str, start_color: RGB, end_color: RGB) {
10 let step = 1.0 / (text.len() - 1) as f64;
11
12 for (i, ch) in text.chars().enumerate() {
13 let current_r = (start_color.r as f64 * (1.0 - step * i as f64) + end_color.r as f64 * (step * i as f64)) as u8;
14 let current_g = (start_color.g as f64 * (1.0 - step * i as f64) + end_color.g as f64 * (step * i as f64)) as u8;
15 let current_b = (start_color.b as f64 * (1.0 - step * i as f64) + end_color.b as f64 * (step * i as f64)) as u8;
16
17 let current_color = RGB::new(current_r, current_g, current_b);
18 set_text_color(current_color);
19 print!("{}", ch);
20 }
21
22 reset_text_color();
23}