JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
JsonDocument.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include <cstddef>
7#include <filesystem>
8#include <string>
9#include <string_view>
10
11#include <nlohmann/json.hpp>
12
17
18namespace core {
19
35
43 int line = 0;
44 int column = 0;
45};
46
54 nlohmann::json root;
56 std::string message;
58 int version = 0;
59
61 [[nodiscard]] bool ok() const {
62 return error == JsonReadError::None;
63 }
64};
65
72[[nodiscard]] TextPosition positionOf(std::string_view text, std::size_t byteOffset);
73
91[[nodiscard]] JsonDocument readJsonObject(std::string_view json, int supportedVersion,
92 std::string_view origin = {},
93 std::string_view versionField = "version");
94
107[[nodiscard]] JsonDocument readJsonObjectFromFile(const std::filesystem::path& path,
108 int supportedVersion,
109 std::string_view versionField = "version");
110
111} // namespace core
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
JsonReadError
Catégorie d'échec de lecture d'un document JSON.
Definition JsonDocument.h:28
@ UnsupportedVersion
Numéro de version supérieur à celui que le lecteur sait lire.
Definition JsonDocument.h:32
@ FileNotFound
Fichier absent ou illisible.
Definition JsonDocument.h:30
@ None
Pas d'erreur.
Definition JsonDocument.h:29
@ MalformedStructure
Structure inattendue (champ absent, type incorrect…).
Definition JsonDocument.h:33
@ ParseError
JSON malformé, ou racine qui n'est pas un objet.
Definition JsonDocument.h:31
JsonDocument readJsonObjectFromFile(const std::filesystem::path &path, int supportedVersion, std::string_view versionField)
Comme readJsonObject, en lisant d'abord le fichier.
Definition JsonDocument.cpp:107
TextPosition positionOf(std::string_view text, std::size_t byteOffset)
Convertit un décalage en octets en ligne et colonne.
Definition JsonDocument.cpp:44
JsonDocument readJsonObject(std::string_view json, int supportedVersion, std::string_view origin, std::string_view versionField)
Lit l'enveloppe commune d'un catalogue : JSON bien formé, racine objet, garde de version.
Definition JsonDocument.cpp:63
Résultat de la lecture de l'enveloppe commune d'un document JSON.
Definition JsonDocument.h:53
std::string message
Description lisible, vide si succès.
Definition JsonDocument.h:56
TextPosition position
Position de l'erreur, si connue.
Definition JsonDocument.h:57
int version
Version lue dans le document.
Definition JsonDocument.h:58
JsonReadError error
Catégorie d'échec.
Definition JsonDocument.h:55
nlohmann::json root
L'arbre parsé. Vide si error != None.
Definition JsonDocument.h:54
bool ok() const
Vrai si la lecture a abouti.
Definition JsonDocument.h:61
Position d'un octet dans un texte, en ligne et colonne comptées à partir de 1.
Definition JsonDocument.h:42
int line
Ligne, à partir de 1. 0 si inconnue.
Definition JsonDocument.h:43
int column
Colonne, à partir de 1. 0 si inconnue.
Definition JsonDocument.h:44