typestar

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

  1. Un HashMap se vuelve un objeto JSON; las claves deben ser cadenas.
  2. BTreeMap mantiene las claves ordenadas en la salida.
  3. Un viaje de ida y vuelta es la prueba más barata de un modelo.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 3 de 3 en Derivar; paso 3 de 11 en Serde y JSON.

← Anterior Siguiente →