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
Debugda{:?},Cloneda.clone().PartialEqhabilita==;HashyEqpermiten claves de mapa.Defaultllena un struct con el valor por defecto de cada campo.
Palabras clave y builtins usados aquí
Stringfnletmutstructu32use
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.
Paso 1 de 3 en Macros; paso 7 de 12 en Módulos, pruebas y macros.