Elm:
עבודה עם TOML

איך לעשות:

ל-Elm אין מפענח TOML מובנה, אבל אתה יכול לעבוד עם JavaScript או להשתמש בחבילה מהקהילה. הנה איך תוכל לפענח TOML באמצעות חבילה היפותטית בשם elm-toml:

import Toml

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

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

לפענוח ערכים ספציפיים:

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

דוגמה לפלט עבור port עשויה להיות Ok 8080 אם הפענוח מצליח.

עיון מעמיק

TOML נוצרה על ידי תום פרסטון-ורנר, שותף מייסד של GitHub, כשפה פשוטה לקובצי תצורה. היא מתחרה עם YAML ו-JSON; תחביר TOML מכוון לשילוב הטוב ביותר משני העולמות עם מיקוד בכך שיהיה קל לקריאה ולכתיבה עבור בני אדם.

ב-Elm, כדי להתמודד עם TOML, בדרך כלל יש לעבור דרך אינטראופ של JavaScript, שיכול להיות מעט מסורבל. לשמחתנו, הקהילה של Elm משאבית, וקיימות מספר חבילות של צד שלישי. החבילה ההיפותטית elm-toml כנראה הייתה משתמשת בPort של Elm כדי לתקשר עם מפענח TOML של JavaScript או לממש את הפענוח ישירות ב-Elm.

המחסום העיקרי ב-Elm הוא שהיא מדויקת סטטית את הכל, כך שיהיה עליך לכתוב מפענחים מותאמים אישית כדי להתמודד עם מבני נתונים שונים בתוך TOML, שיכול להיות מעט ארוך מידי אך מוסיף בטיחות.

ראה גם

למפרטים ומידע נוסף על TOML עצמה, בקר בTOML. אם אתה מחפש גישה מעשית לאינטראופ של Elm ו-JavaScript, התחל עם המדריך הרשמי: Elm Ports. לחבילות של הקהילה או כדי לתרום, עיין בחבילות Elm.