typestar

Métodos por defecto en Rust

Un trait puede aportar comportamiento; los implementadores solo escriben lo que difiere.

trait Step {
    fn title(&self) -> String;

    fn lines(&self) -> usize {
        1
    }

    fn label(&self) -> String {
        format!("{} ({} lines)", self.title(), self.lines())
    }
}

struct Snippet;
struct Script;

impl Step for Snippet {
    fn title(&self) -> String {
        "Filter with WHERE".to_string()
    }
}

impl Step for Script {
    fn title(&self) -> String {
        "config_check.rs".to_string()
    }
    fn lines(&self) -> usize {
        84
    }
}

fn main() {
    println!("{}", Snippet.label());
    println!("{}", Script.label());
}

Cómo funciona

  1. Un método por defecto puede llamar a los requeridos.
  2. Los implementadores lo sobrescriben solo si lo necesitan.
  3. Así los traits se mantienen pequeños en el punto de uso.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
34
Caracteres a escribir
476
Tokens
147
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 88 segundos.

Escribe este fragmento

Paso 2 de 3 en Traits; paso 2 de 19 en Traits y genéricos.

← Anterior Siguiente →