Mercurial > minori
annotate src/core/json.cc @ 187:9613d72b097e
*: multiple performance improvements
like marking `static const` when it makes sense...
date: change old stupid heap-based method to a structure which should
make copying the thing actually make a copy.
also many performance-based changes, like removing the std::tie
dependency and forward-declaring nlohmann json
*: replace every instance of QString::fromUtf8 to Strings::ToQString.
the main difference is that our function will always convert exactly
what is in the string, while some other times it would only convert
up to the nearest NUL byte
| author | Paper <mrpapersonic@gmail.com> |
|---|---|
| date | Wed, 06 Dec 2023 13:43:54 -0500 |
| parents | 9b10175be389 |
| children | 47c9f8502269 |
| rev | line source |
|---|---|
| 9 | 1 #include "core/json.h" |
| 175 | 2 #include "json/json.hpp" |
| 2 | 3 |
| 4 namespace JSON { | |
| 5 | |
|
174
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
6 nlohmann::json GetValue(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr) { |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
7 if (json.contains(ptr)) |
|
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
8 return json.at(ptr); |
| 9 | 9 else |
|
174
f88eda79c60a
anime/db: add some more json functionality, still doesn't compile :/
Paper <mrpapersonic@gmail.com>
parents:
83
diff
changeset
|
10 return nlohmann::json(); |
| 2 | 11 } |
| 12 | |
| 83 | 13 bool GetBoolean(const nlohmann::json& json, const nlohmann::json::json_pointer& ptr, bool def) { |
|
6
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
2
diff
changeset
|
14 if (json.contains(ptr) && json[ptr].is_boolean()) |
|
1d82f6e04d7d
Update: add first parts to the settings dialog
Paper <mrpapersonic@gmail.com>
parents:
2
diff
changeset
|
15 return json[ptr].get<bool>(); |
| 9 | 16 else |
| 17 return def; | |
| 2 | 18 } |
| 19 | |
| 9 | 20 } // namespace JSON |
