Rust:
Работа с TOML
Как это сделать:
// 1. Добавьте крейт 'toml' в ваш Cargo.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!("Сервер работает на {}:{}", host, port);
// Вывод: Сервер работает на "localhost":8080
}
Погружение в детали
TOML, что означает Tom’s Obvious, Minimal Language, был создан Томом Престон-Вернером в 2013 году. Его целью является повышение читабельности по сравнению с JSON или YAML для файлов конфигурации. Дизайн TOML сосредоточен на однозначном синтаксисе, минимализме и простом сопоставлении с типами данных.
Альтернативы TOML включают JSON, YAML и XML, но TOML выигрывает в сценариях, где критически важны читаемость человеком и редактирование файла не программистами. При работе с TOML в Rust, serde предоставляет прочную основу для сериализации и десериализации, используя трейты для безупречного сопоставления TOML со структурами Rust.
Одна из проблем при работе с TOML заключается в его строгости к типам и структуре. Программист должен определить хорошо структурированную систему типов Rust, отражающую схему данных TOML, чтобы эффективно использовать TOML в Rust.