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.