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 ได้อย่างมีประสิทธิภาพ