Elm:
Att arbeta med TOML

Hur man gör:

Elm har ingen inbyggd TOML-tolkare, men du kan samverka med JavaScript eller använda ett community-paket. Så här kan du tolka TOML med hjälp av ett hypotetiskt elm-toml-paket:

import Toml

configToml : String
configToml =
    """
    [server]
    port = 8080
    """

parseResult : Result Toml.Decode.Error Toml.Value
parseResult =
    Toml.decodeString configToml

För att dekoda specifika värden:

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

Ett exempel på utdata för port kan vara Ok 8080 om dekodningen lyckas.

Djupdykning

TOML skapades av Tom Preston-Werner, medgrundare av GitHub, som ett enkelt språk för konfigurationsfiler. Det konkurrerar med YAML och JSON; TOML:s syntax syftar till det bästa av båda världarna med fokus på att vara lätt för människor att läsa och skriva.

I Elm, för att hantera TOML, behöver du vanligtvis gå genom JavaScript-samverkan, vilket kan vara lite av ett krångel. Lyckligtvis är Elm-communityn resursfull, och flera paket från tredje part finns. Det hypotetiska elm-toml-paketet skulle troligen använda Elms Port för att prata med en JavaScript TOML-tolk eller implementera tolkningen direkt i Elm.

Det stora hindret i Elm är att allting är statiskt typat, så du måste skriva anpassade dekodrar för att hantera olika datastrukturer inom TOML, vilket kan vara lite omständligt men tillför säkerhet.

Se även

För specifikationer och mer info om TOML själv, kolla in TOML. Om du letar efter ett praktiskt tillvägagångssätt till Elm och JavaScript-samverkan, börja med den officiella guiden: Elm Ports. För community-paket eller för att bidra, bläddra i Elm Packages.