Limpiar la pantalla en Rust

2 min(s) Fecha: 2021-10-11

🦀 muchas maneras, el mismo efecto?

Mientras desarrollamos una aplicación que utiliza la línea de comandos, una de las tareas más triviales y necesaria (en muchos casos) es limpiar la pantalla....

Rust provee un par de opciones para tal fin.

Utilizando std

use std::process;

fn clear_screen() {
    process::Command::new("clear").status().unwrap();    
}

funciona muy bien en sistemas Gnu/Linux y Mac OS.

En sistemas Windows, basta con cambiar "clear" por "cls"

Usando códigos de escape ANSI. Todos los códigos de escape comienzan por los caracteres ESC (carácter ASCII número 27 decimal, 1B en hexadecimal) seguido del carácter [, tienen cero o más parámetros delimitados por ;

fn clear_screen() {
    print!("\x1B[2J");
}

Una variante del anterior, que posiciona el cursor en la fila 0, columna 0.

fn clear_screen() {
    print!("\x1B[2J \x1B[0;0f");
}

Otro ejemplo casteando el número 27 como char.

fn clear_screen() {
    print!("{}[2J", 27 as char);
}

Referencias