Elm:
Työskentely TOML:n kanssa

Kuinka:

Elmissä ei ole sisäänrakennettua TOML-jäsentäjää, mutta voit tehdä yhteistyötä JavaScriptin kanssa tai käyttää yhteisön pakettia. Näin saatat jäsentää TOML-tietoja käyttäen hypoteettista elm-toml pakettia:

import Toml

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

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

Tiettyjen arvojen dekoodaukseen:

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

Esimerkkituloste port-arvolle voisi olla Ok 8080, jos dekoodaus onnistuu.

Syväsukellus

Tom Preston-Werner, GitHubin perustajajäsen, loi TOML:n yksinkertaiseksi kieleksi konfiguraatiotiedostoille. Se kilpailee YAML:n ja JSON:n kanssa; TOML:n syntaksi tähtää molempien maailmojen parhaisiin puoliin keskittyen siihen, että ihmiset voivat helposti lukea ja kirjoittaa sitä.

Elmissä TOML:n käsittelyyn tarvitaan yleensä JavaScript-yhteistyötä, mikä voi olla hieman hankalaa. Onneksi Elm-yhteisö on kekseliäs, ja olemassa on useita kolmannen osapuolen paketteja. Hypoteettinen elm-toml paketti käyttäisi todennäköisesti Elmin Port-toimintoa puhuakseen JavaScriptin TOML-jäsentäjälle tai toteuttaisi jäsentämisen suoraan Elmssä.

Suurin este Elmssä on, että se tyypittää kaiken staattisesti, joten sinun on kirjoitettava räätälöityjä dekoodereita käsittelemään erilaisia tietorakenteita TOML:ssä, mikä voi olla hieman sanallista mutta lisää turvallisuutta.

Katso Myös

Saat tietoja ja lisätietoja itse TOML:stä, tutustu TOML. Jos etsit käytännönläheistä lähestymistapaa Elmiin ja JavaScript-yhteistyöhön, aloita virallisesta oppaasta: Elm Ports. Yhteisöpaketit tai osallistumisen osalta selaa Elm Packages.