Elm:
TOMLを扱う方法

方法:

Elmには組み込みのTOMLパーサーはありませんが、JavaScriptとの相互運用を行うか、コミュニティパッケージを使用できます。これは、仮定のelm-tomlパッケージを使用して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の共同創設者であるTom Preston-Wernerによって、設定ファイル用のシンプルな言語として作られました。TOMLはYAMLやJSONと競合し、両方の世界のベストを目指した構文を持ち、人間が読み書きしやすいことに焦点を当てています。

ElmでTOMLを扱うには、通常、JavaScriptとの相互運用を通じて行う必要があり、これは少し面倒かもしれません。幸いなことに、Elmコミュニティは資源豊富であり、いくつかのサードパーティパッケージが存在します。仮定のelm-tomlパッケージは、ElmのPortを使用してJavaScriptのTOMLパーサーと話をするか、直接Elmで解析を実装するでしょう。

Elmの主な障害は、すべてを静的に型付けすることであり、TOML内の異なるデータ構造を扱うためにカスタムデコーダを書く必要があるため、少し冗長になる可能性がありますが、安全性を追加します。

関連情報

TOML自体の仕様と詳細については、TOMLをご覧ください。 ElmとJavaScriptの相互運用に取り組む場合は、公式ガイドから始めてください:Elm Ports。 コミュニティパッケージを探すか、貢献するには、Elm Packagesを参照してください。