Rust:
Werken met TOML

Hoe te:

// 1. Voeg de 'toml' crate toe aan je Cargo.toml
// [dependencies]
// toml = "0.5"

// 2. Deserializeer TOML naar een struct in Rust
use toml::Value;

fn main() {
    let toml_content = r#"
        [server]
        host = "localhost"
        port = 8080
    "#;

    let value = toml_content.parse::<Value>().unwrap();
    let host = value.get("server").unwrap().get("host").unwrap();
    let port = value.get("server").unwrap().get("port").unwrap();
    
    println!("De server draait op {}:{}", host, port);
    // Uitvoer: De server draait op "localhost":8080
}

Diepere Duik

TOML, dat staat voor Tom’s Obvious, Minimal Language, is gecreëerd door Tom Preston-Werner in 2013. Het doel is om leesbaarder te zijn dan JSON of YAML voor config bestanden. TOML’s ontwerp richt zich op ondubbelzinnige syntaxis, minimalisme, en eenvoudige mapping naar datatypes.

Alternatieven voor TOML omvatten JSON, YAML, en XML, maar TOML wint in scenario’s waar menselijke leesbaarheid en het bewerken van bestanden door niet-programmeurs cruciaal is. Bij het werken met TOML in Rust biedt serde een sterke basis voor serialisatie en deserialisatie, door gebruik te maken van traits om TOML moeiteloos op Rust’s structs te mappen.

Een uitdaging bij het werken met TOML is de striktheid op types en structuur. De programmeur moet een goed gestructureerd Rust typesysteem definiëren dat de schema van de TOML data weerspiegelt om TOML effectief in Rust te kunnen gebruiken.

Zie Ook