Я пытаюсь заменить все вхождения данной строки на раскрашенную версию:
extern crate colored; // 1.6.1
use colored::Colorize;
fn print_found_line(x: &i32, line: &String, found: &str) {
let mut line_to_print: String = line.clone();
println!("{}", found.red()); // work
line_to_print = line_to_print.replace(found, found.red().as_ref());
println!("[{}] {}", x.to_string().blue(), line_to_print); // the found string replaced is not red
}
fn main() {}
Первый println!
работает так, как задумано, и печатает текст красным, а второй println!
не работает должным образом и печатает текст в цвете по умолчанию.
Кажется, что строковый литерал теряет информацию о цвете.Я хочу найти эквивалент replace
, который печатает текст так, как я хочу.