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.