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.