Elm:
Praca z TOML

Jak to zrobić:

Elm nie ma wbudowanego parsera TOML, ale można korzystać z interakcji z JavaScriptem lub użyć pakietu społecznościowego. Oto jak można przetworzyć TOML za pomocą hipotetycznego pakietu elm-toml:

import Toml

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

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

Do dekodowania konkretnych wartości:

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

Przykładowy wynik dla port może być Ok 8080, jeśli dekodowanie się powiedzie.

Dogłębne spojrzenie

TOML został stworzony przez Toma Preston-Wernera, współzałożyciela GitHuba, jako prosty język dla plików konfiguracyjnych. Konkuruje z YAML i JSON; składnia TOML ma na celu łączenie najlepszych cech obu światów, skupiając się na łatwości czytania i pisania przez ludzi.

W Elm, aby obsłużyć TOML, zwykle trzeba korzystać z interakcji z JavaScriptem, co może być trochę kłopotliwe. Na szczęście społeczność Elm jest zasobna i istnieje kilka pakietów stron trzecich. Hipotetyczny pakiet elm-toml prawdopodobnie korzystałby z Port Elm do komunikacji z parserem TOML JavaScript lub implementowałby parsowanie bezpośrednio w Elm.

Główną przeszkodą w Elm jest to, że wszystko ma statyczne typy, więc musisz napisać niestandardowe dekodery, aby obsłużyć różne struktury danych w TOML, co może być nieco rozwlekłe, ale dodaje bezpieczeństwa.

Zobacz także

Aby uzyskać specyfikacje i więcej informacji na temat samego TOML, sprawdź TOML. Jeśli szukasz praktycznego podejścia do współpracy Elm i JavaScript, zacznij od oficjalnego przewodnika: Elm Ports. Aby przeglądać pakiety społecznościowe lub przyczynić się, przeglądaj Elm Packages.