typestar

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

  1. #[derive(Debug)] te da {:?} gratis.
  2. Display se escribe a mano y habilita {} y to_string.
  3. {:#?} imprime bonita la forma Debug derivada.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 4 en Traits estándar; paso 9 de 19 en Traits y genéricos.

← Anterior Siguiente →