Display y Debug en Rust
Debug es para programadores, Display para personas — deriva uno, escribe el otro.
use std::fmt;
#[derive(Debug)]
struct Run {
lang: String,
tpm: u32,
accuracy: f64,
}
impl fmt::Display for Run {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{} at {} tpm ({:.1}%)", self.lang, self.tpm,
self.accuracy)
}
}
fn main() {
let run = Run {
lang: "rust".to_string(),
tpm: 104,
accuracy: 97.5,
};
println!("{run}");
println!("{run:?}");
println!("{}", run.to_string().len());
}
Cómo funciona
#[derive(Debug)]te da{:?}gratis.Displayse escribe a mano y habilita{}yto_string.{:#?}imprime bonita la forma Debug derivada.
Palabras clave y builtins usados aquí
ResultStringf64fnforimplletselfstructu32use
El intento, en números
- Líneas
- 26
- Caracteres a escribir
- 409
- Tokens
- 134
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 77 segundos.
Paso 2 de 4 en Traits estándar; paso 9 de 19 en Traits y genéricos.