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.