Rust:
การทำงานร่วมกับ TOML

วิธีการ:

// 1. รวม 'toml' crate ใน Cargo.toml ของคุณ
// [dependencies]
// toml = "0.5"

// 2. Deserialize TOML เข้าสู่ struct ใน 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!("เซิร์ฟเวอร์กำลังทำงานบน {}:{}", host, port);
    // ผลลัพธ์: เซิร์ฟเวอร์กำลังทำงานบน "localhost":8080
}

ลงลึก

TOML ซึ่งย่อมาจาก Tom’s Obvious, Minimal Language ถูกสร้างโดย Tom Preston-Werner ในปี 2013 มุ่งเป้าหมายที่จะมีความสามารถอ่านได้ง่ายกว่า JSON หรือ YAML สำหรับไฟล์การตั้งค่า TOML มีจุดเน้นอยู่ที่ไวยากรณ์ที่ไม่ก่อให้เกิดความเข้าใจผิด การเรียบง่าย และการแมปไปยังชนิดข้อมูลได้อย่างง่ายดาย

ทางเลือกอื่นๆ สำหรับ TOML ประกอบด้วย JSON, YAML, และ XML แต่ TOML ชนะในสถานการณ์ที่การอ่านได้และการแก้ไขไฟล์โดยผู้ไม่ใช่โปรแกรมเมอร์มีความสำคัญ เมื่อทำงานกับ TOML ใน Rust, serde ให้พื้นฐานที่แข็งแกร่งสำหรับการ serialization และ deserialization โดยใช้ traits ในการแมป TOML ไปยัง struct ของ Rust ได้โดยไม่มีความยากลำบาก

ความท้าทายขณะทำงานกับ TOML คือความเข้มงวดเกี่ยวกับชนิดและโครงสร้าง โปรแกรมเมอร์ต้องกำหนดระบบชนิดข้อมูล Rust ที่มีโครงสร้างเป็นอย่างดีซึ่งสะท้อนถึงสคีมาของข้อมูล TOML เพื่อใช้ประโยชน์จาก TOML ใน Rust ได้อย่างมีประสิทธิภาพ

ดูเพิ่มเติม