Elm:
Lavorare con TOML

Come fare:

Elm non dispone di un parser TOML integrato, ma è possibile interagire con JavaScript o utilizzare un pacchetto della comunità. Ecco come si potrebbe analizzare TOML usando un ipotetico pacchetto elm-toml:

import Toml

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

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

Per decodificare valori specifici:

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

L’output di esempio per port potrebbe essere Ok 8080 se la decodifica ha successo.

Approfondimento

TOML è stato creato da Tom Preston-Werner, cofondatore di GitHub, come un linguaggio semplice per i file di configurazione. Compete con YAML e JSON; la sintassi di TOML mira al meglio di entrambi i mondi con un focus sulla facilità di lettura e scrittura da parte degli umani.

In Elm, per gestire TOML, di solito è necessario passare attraverso l’interop con JavaScript, il che può essere un po’ complicato. Fortunatamente, la comunità Elm è piena di risorse e esistono diversi pacchetti di terze parti. L’ipotetico pacchetto elm-toml probabilmente utilizzerebbe il Port di Elm per comunicare con un parser TOML in JavaScript o implementerebbe direttamente l’analisi in Elm.

L’ostacolo principale in Elm è che tutto è tipizzato staticamente, quindi sarà necessario scrivere decodificatori personalizzati per gestire diverse strutture di dati all’interno di TOML, il che può essere un po’ verboso ma aggiunge sicurezza.

Vedi Anche

Per le specifiche e più informazioni su TOML stesso, consulta TOML. Se stai cercando un approccio pratico all’interopabilità tra Elm e JavaScript, inizia con la guida ufficiale: Porte di Elm. Per i pacchetti della comunità o per contribuire, sfoglia Pacchetti Elm.