Elixir:
Работа с TOML

Как это сделать:

Сначала добавьте парсер TOML в зависимости своего проекта mix. В этом примере используется toml-elixir:

def deps do
  [
    {:toml_elixir, "~> 2.0"}
  ]
end

Чтение файла TOML:

{:ok, toml_data} = File.read("config.toml")
{:ok, parsed_data} = TomlElixir.parse(toml_data)

Для преобразования данных Elixir в TOML:

data = %{title: "Пример TOML", owner: %{name: "Том Престон-Вернер"}}
toml_string = TomlElixir.encode(data)

Пример вывода:

"title = \"Пример TOML\"\n\n[owner]\nname = \"Том Престон-Вернер\"\n"

Подробный анализ

TOML был создан Томом Престон-Вернером, сооснователем GitHub, для использования в конфигурационных файлах. Он разработан, чтобы быть более простым, чем XML и более кратким, чем YAML, сохраняя при этом последовательность.

Альтернативы включают файлы JSON, YAML и INI, каждый из которых имеет свои компромиссы в понятности для человека и совместимости структуры данных. TOML преуспевает в четком представлении табличных данных и вложенной группировке данных.

В Elixir работа с TOML зависит от библиотек кодирования и декодирования, которые преобразуют строки TOML в карты Elixir и обратно. Разбор работает путем сопоставления с правилами синтаксиса TOML и их преобразования в типы данных Elixir. Кодирование делает обратное, сопоставляя типы данных Elixir с допустимым синтаксисом TOML.

Смотрите также