Rust:
Trabajando con TOML
Cómo hacerlo:
// 1. Incluir la crate 'toml' en tu Cargo.toml
// [dependencies]
// toml = "0.5"
// 2. Deserializar TOML en una estructura en Rust
use toml::Value;
fn main() {
let contenido_toml = r#"
[server]
host = "localhost"
port = 8080
"#;
let valor = contenido_toml.parse::<Value>().unwrap();
let host = valor.get("server").unwrap().get("host").unwrap();
let port = valor.get("server").unwrap().get("port").unwrap();
println!("El servidor está corriendo en {}:{}", host, port);
// Salida: El servidor está corriendo en "localhost":8080
}
Profundización
TOML, que significa Lenguaje Mínimo y Obvio de Tom, fue creado por Tom Preston-Werner en 2013. Su objetivo es ser más legible que JSON o YAML para archivos de configuración. El diseño de TOML se enfoca en una sintaxis no ambigua, minimalismo y mapeo sencillo a tipos de datos.
Alternativas a TOML incluyen JSON, YAML y XML, pero TOML gana en escenarios donde la legibilidad humana y la edición de archivos por no programadores es crucial. Al trabajar con TOML en Rust, serde proporciona una base sólida para la serialización y deserialización, usando rasgos para mapear TOML en las estructuras de Rust sin esfuerzo.
Un desafío al trabajar con TOML es su estricta tipificación y estructura. El programador debe definir un sistema de tipos Rust bien estructurado que refleje el esquema de los datos TOML para utilizar efectivamente TOML en Rust.