Mapas y viajes de ida y vuelta en Rust
Serializar un mapa y luego leerlo de vuelta en el mismo tipo.
use serde::{Deserialize, Serialize};
use std::collections::BTreeMap;
#[derive(Debug, Serialize, Deserialize, PartialEq)]
struct Progress {
tours: BTreeMap<String, u32>,
}
fn main() -> Result<(), serde_json::Error> {
let mut tours = BTreeMap::new();
tours.insert("traits".to_string(), 15);
tours.insert("basics".to_string(), 39);
let before = Progress { tours };
let json = serde_json::to_string(&before)?;
println!("{json}");
let after: Progress = serde_json::from_str(&json)?;
println!("equal: {}", before == after);
Ok(())
}
Cómo funciona
- Un
HashMapse vuelve un objeto JSON; las claves deben ser cadenas. BTreeMapmantiene las claves ordenadas en la salida.- Un viaje de ida y vuelta es la prueba más barata de un modelo.
Palabras clave y builtins usados aquí
OkResultStringfnletmutstructu32use
El intento, en números
- Líneas
- 21
- Caracteres a escribir
- 530
- Tokens
- 147
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 88 segundos.
Paso 3 de 3 en Derivar; paso 3 de 11 en Serde y JSON.