Rust:
TOMLを扱う方法
方法:
// 1. Cargo.tomlに'toml'クレートを含める
// [依存性]
// toml = "0.5"
// 2. TOMLを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!("The server is running on {}:{}", host, port);
// 出力:The server is running on "localhost":8080
}
詳細解説
TOMLは、Tom’s Obvious, Minimal Languageの略であり、Tom Preston-Wernerによって2013年に作られました。それは、設定ファイルにおいてJSONやYAMLよりも読みやすいことを目指しています。TOMLの設計は、曖昧さのない構文、最小主義、そしてデータ型への容易なマッピングに焦点を当てています。
TOMLの代替にはJSON、YAML、XMLがありますが、非プログラマーによるファイル編集と人間の可読性が重要なシナリオではTOMLが優勢です。RustでTOMLを扱う場合、serdeはシリアライゼーションとデシリアライゼーションのための強固な基盤を提供し、Rustの構造体にTOMLを努力なくマッピングするためのトレイトを使用します。
TOMLをRustで効果的に利用するためには、TOMLデータのスキーマを反映した整ったRustタイプシステムをプログラマーが定義する必要があります。これがTOMLを扱う際の挑戦の一つです。