Elm:
Робота з TOML
Як це зробити:
В Elm немає вбудованого парсера TOML, але ви можете взаємодіяти з JavaScript або використати пакет спільноти. Ось як ви можете парсити TOML за допомогою уявного пакета elm-toml
:
import Toml
configToml : String
configToml =
"""
[server]
port = 8080
"""
parseResult : Result Toml.Decode.Error Toml.Value
parseResult =
Toml.decodeString configToml
Для декодування конкретних значень:
portDecoder : Toml.Decode.Decoder Int
portDecoder =
Toml.Decode.field "server" (Toml.Decode.field "port" Toml.Decode.int)
port : Result String Int
port =
Toml.decodeString portDecoder configToml
Приклад виводу для port
може бути Ok 8080
, якщо декодування пройде успішно.
Поглиблене вивчення
TOML була створена Томом Престон-Вернером, співзасновником GitHub, як проста мова для конфігураційних файлів. Вона конкурує з YAML і JSON; синтаксис TOML прагне поєднати найкраще з обох світів, зосередившись на простоті читання та написання для людей.
У Elm, для роботи з TOML, вам зазвичай потрібно звернутися до взаємодії з JavaScript, що може бути досить важким. На щастя, спільнота Elm ресурсна, і існує кілька сторонніх пакетів. Уявний пакет elm-toml
ймовірно використовував би Port
Elm для спілкування з парсером TOML на JavaScript або реалізовував би парсинг безпосередньо в Elm.
Основною перешкодою в Elm є те, що він статично типізує все, тому вам потрібно написати спеціальні декодери для обробки різних структур даних у TOML, що може бути трохи громіздко, але додає безпеки.
Див. також
Для специфікацій та більш детальної інформації про сам TOML відвідайте TOML. Якщо ви шукаєте практичний підхід до взаємодії Elm і JavaScript, почніть з офіційного посібника: Elm Ports. Для перегляду спільнотних пакетів або щоб зробити внесок, перегляньте Elm Packages.