Elixir:
Trabalhando com TOML

Como fazer:

Primeiramente, adicione um analisador TOML às suas dependências do mix. Este exemplo utiliza o toml-elixir:

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

Leia um arquivo TOML:

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

Para converter dados de Elixir para TOML:

data = %{title: "Exemplo TOML", owner: %{name: "Tom Preston-Werner"}}
toml_string = TomlElixir.encode(data)

Saída de exemplo:

"title = \"Exemplo TOML\"\n\n[owner]\nname = \"Tom Preston-Werner\"\n"

Aprofundamento

TOML foi criado por Tom Preston-Werner, co-fundador do GitHub, para uso em arquivos de configuração. Ele é projetado para ser mais direto que o XML e mais conciso que o YAML, mantendo a consistência.

Alternativas incluem arquivos JSON, YAML e INI, cada um com suas compensações em legibilidade humana e compatibilidade de estrutura de dados. TOML se destaca por representar claramente dados tabulares e o agrupamento aninhado de dados.

Em Elixir, o tratamento TOML depende de bibliotecas de decodificação e codificação, que transformam strings TOML em mapas Elixir e vice-versa. A análise funciona combinando as regras de sintaxe do TOML e convertendo-as para os tipos de dados do Elixir. A codificação faz o oposto mapeando os tipos de dados do Elixir de volta para a sintaxe TOML válida.

Veja Também