Консоли обычно управляются распечаткой «управляющих символов». Но что это такое, зависит от платформы и типа терминала. Вы, вероятно, не хотите заново изобретать колесо, чтобы сделать это.
Вы можете использовать сквозной ящик , чтобы получить этот вид управления консоли. Простой пример:
use std::{thread, time};
use std::io::{Write, stdout};
use crossterm::{QueueableCommand, cursor};
fn main() {
let mut stdout = stdout();
for i in 1..10 {
stdout.queue(cursor::SavePosition);
stdout.write(format!("Here!!! {}", i).as_bytes());
stdout.queue(cursor::RestorePosition);
stdout.flush();
thread::sleep(time::Duration::from_millis(500));
}
println!("Hello, world!");
}