std.yaml
YAML-Parser für die gebräuchlichsten YAML-Strukturen (Scalare: null, bool, int, float, string; Sequenzen und Maps). Pfad-basierter Zugriff (GetString(doc, „database.host“, „localhost“)), typisierte Getter (String, Int, Float, Bool, Array, Object), Datei-Load/Save, Schlüssel-Iteration (GetKeys), Typ-Abfrage und YAML-Escape/Unescape.
Einsatzbereiche: Kubernetes/Docker-Konfigurationen, Anwendungs-Configs (einfacher als XML, lesbarer als JSON), CI/CD-Pipelines, Infrastructure-as-Code.
Autor: Andreas Röne
Copyright: 2024-2025 Andreas Röne
Imports
Konstanten
| Name | Typ | Wert | Sichtbarkeit |
|---|
Funktionen
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
ParseString(input: pchar): int64 | pub | YAML-String in Dokumentstruktur parsen |
GetString(doc: int64, path: pchar, default_val: pchar): pchar | pub | Stringwert per Pfad lesen |
GetInt(doc: int64, path: pchar, default_val: int64): int64 | pub | Ganzzahlwert per Pfad lesen |
GetFloat(doc: int64, path: pchar, default_val: f64): f64 | pub | Fließkommawert per Pfad lesen |
GetBool(doc: int64, path: pchar, default_val: bool): bool | pub | Booleschen Wert per Pfad lesen |
GetArray(doc: int64, path: pchar): int64 | pub | Array-Knoten per Pfad lesen |
GetObject(doc: int64, path: pchar): int64 | pub | Objekt-Knoten per Pfad lesen |
WriteString(doc: int64, output: pchar, max_len: int64): int64 | pub | Dokument als YAML-String serialisieren |
WriteFile(doc: int64, path: pchar): bool | pub | Dokument in YAML-Datei schreiben |
SetString(doc: int64, path: pchar, value: pchar): void { } | pub | Stringwert per Pfad setzen |
SetInt(doc: int64, path: pchar, value: int64): void { } | pub | Ganzzahlwert per Pfad setzen |
SetFloat(doc: int64, path: pchar, value: f64): void { } | pub | Fließkommawert per Pfad setzen |
SetBool(doc: int64, path: pchar, value: bool): void { } | pub | Booleschen Wert per Pfad setzen |
SetArray(doc: int64, path: pchar, values: pchar, count: int64): void { } | pub | Array-Werte per Pfad setzen |
SetObject(doc: int64, path: pchar, keys: pchar, values: pchar, count: int64): void { } | pub | Objekt-Schlüssel und -Werte setzen |
DeleteKey(doc: int64, path: pchar): bool | pub | Schlüssel per Pfad löschen |
LoadFile(path: pchar): int64 | pub | YAML-Datei laden und parsen |
SaveFile(doc: int64, path: pchar): bool | pub | Dokument als YAML-Datei speichern |
HasPath(doc: int64, path: pchar): bool | pub | Prüft ob Pfad im Dokument existiert |
GetType(doc: int64, path: pchar): int64 | pub | Datentyp eines Pfadwerts ermitteln |
GetKeys(doc: int64, path: pchar, output: pchar, max_count: int64): int64 | pub | Alle Schlüssel eines Objekts liefern |
GetArrayLen(doc: int64, path: pchar): int64 | pub | Länge eines Arrays per Pfad lesen |
EscapeString(input: pchar, output: pchar): int64 | pub | YAML-Sonderzeichen in String escapen |
UnescapeString(input: pchar, output: pchar): int64 | pub | YAML-Escape-Sequenzen auflösen |
ParseYamlInt(s: pchar): int64 | pub | YAML-Ganzzahlwert aus String parsen |
ParseYamlBool(s: pchar): bool | pub | YAML-Booleschen Wert aus String parsen |
ParseYamlFloat(s: pchar): f64 | pub | YAML-Fließkommawert aus String parsen |
IsValidKey(s: pchar): bool | pub | Prüft ob String ein gültiger YAML-Schlüssel |
NeedsQuoting(s: pchar): bool | pub | Prüft ob String in YAML gequotet werden muss |
SetArrayundSetObjectsind nicht umgesetzt und brechen ab. Beide melden seit lyxc 1.0.15Gstd.yaml: SetArray ist nicht umgesetzt (#1244)bzw.… SetObject …und beenden das Programm — vorher liefen sie still ins Leere und ließen das Dokument unverändert. Für Arrays und Objekte den YAML-Text selbst zusammensetzen.
Verschachtelte Pfade arbeiten, mit zwei Resten: Ein Punktpfad liest (GetString(doc, „server.host“c, …)) und ändert vorhandene Werte (SetInt(doc, „server.port“c, …)) korrekt. Ein neuer Schlüssel unter einem vorhandenen Knoten hängt jedoch einen zweiten gleichnamigen Block an das Dateiende, undGetTypeliefert für einen Knoten weiterhin0.
(Issue #1312)
