Renombrar campos en Rust
Los nombres en Rust siguen en snake_case y el JSON conserva lo que la API espere.
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
struct Step {
step_index: u32,
tour_slug: String,
#[serde(rename = "tpm3")]
target_tpm: u32,
#[serde(alias = "name")]
title: String,
}
fn main() -> Result<(), serde_json::Error> {
let raw = r#"{"stepIndex":0,"tourSlug":"traits","tpm3":100,
"name":"Trait objects"}"#;
let step: Step = serde_json::from_str(raw)?;
println!("{:?}", step);
println!("{}", serde_json::to_string(&step)?);
Ok(())
}
Cómo funciona
rename_allconvierte todos los campos de una vez.renamemaneja el único campo que rompe el patrón.aliasacepta una clave vieja mientras escribe la nueva.
Palabras clave y builtins usados aquí
OkResultStringfnletstructu32use
El intento, en números
- Líneas
- 21
- Caracteres a escribir
- 506
- Tokens
- 119
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 68 segundos.
Paso 1 de 3 en Atributos de campo; paso 4 de 11 en Serde y JSON.