typestar

Macros derive en Rust

Los derives que vale la pena usar, y qué te compra cada uno.

use std::collections::HashSet;

#[derive(Debug, Clone, PartialEq, Eq, Hash, Default, PartialOrd, Ord)]
struct StepId {
    tour: String,
    idx: u32,
}

fn main() {
    let a = StepId { tour: "traits".to_string(), idx: 0 };
    let b = a.clone();
    println!("{:?} == {:?}: {}", a, b, a == b);

    let mut seen = HashSet::new();
    seen.insert(a);
    seen.insert(b);
    println!("{} unique", seen.len());
    println!("{:?}", StepId::default());
}

Cómo funciona

  1. Debug da {:?}, Clone da .clone().
  2. PartialEq habilita ==; Hash y Eq permiten claves de mapa.
  3. Default llena un struct con el valor por defecto de cada campo.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
413
Tokens
123
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 67 segundos.

Escribe este fragmento

Paso 1 de 3 en Macros; paso 7 de 12 en Módulos, pruebas y macros.

← Anterior Siguiente →