Elm:
Travailler avec TOML
Comment faire :
Elm n’a pas de parser TOML intégré, mais vous pouvez interagir avec JavaScript ou utiliser un package de la communauté. Voici comment vous pourriez analyser TOML en utilisant un package hypothétique elm-toml
:
import Toml
configToml : String
configToml =
"""
[server]
port = 8080
"""
parseResult : Result Toml.Decode.Error Toml.Value
parseResult =
Toml.decodeString configToml
Pour décoder des valeurs spécifiques :
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
Un exemple de sortie pour port
pourrait être Ok 8080
si le décodage réussit.
Plongée Profonde
TOML a été créé par Tom Preston-Werner, co-fondateur de GitHub, comme un langage simple pour les fichiers de configuration. Il est en compétition avec YAML et JSON ; la syntaxe de TOML vise le meilleur des deux mondes avec un accent sur la facilité de lecture et d’écriture par les humains.
Dans Elm, pour manipuler TOML, vous devez généralement passer par l’interopérabilité avec JavaScript, ce qui peut être un peu compliqué. Heureusement, la communauté Elm est ingénieuse, et plusieurs packages tiers existent. Le package hypothétique elm-toml
utiliserait probablement le Port
d’Elm pour communiquer avec un parser TOML JavaScript ou implémenterait le parsing directement en Elm.
Le principal obstacle dans Elm est qu’il tape tout statiquement, donc vous aurez besoin d’écrire des decodeurs personnalisés pour gérer différentes structures de données au sein de TOML, ce qui peut être un peu verbeux mais ajoute de la sécurité.
Voir Aussi
Pour les spécifications et plus d’informations sur TOML lui-même, consultez TOML. Si vous cherchez une approche pratique de l’interopérabilité Elm et JavaScript, commencez par le guide officiel : Elm Ports. Pour les packages de la communauté ou pour contribuer, parcourez Elm Packages.