diff options
author | Jude Melton-Houghton <jwmhjwmh@gmail.com> | 2022-11-15 10:45:12 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-15 16:45:12 +0100 |
commit | cd8a7fe47298be12620cab62be8cf0816fabb095 (patch) | |
tree | d667a204294e382cdf1d08ce8a77096778fc7fdd /src/database/database-files.cpp | |
parent | 1a045da0dd7f086a6ca689620aeb0fa28a1f6ce6 (diff) | |
download | minetest-cd8a7fe47298be12620cab62be8cf0816fabb095.tar.xz |
Add MetaDataRef:get_keys (#12841)
Diffstat (limited to 'src/database/database-files.cpp')
-rw-r--r-- | src/database/database-files.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/database/database-files.cpp b/src/database/database-files.cpp index eff08de12..0b94b28f2 100644 --- a/src/database/database-files.cpp +++ b/src/database/database-files.cpp @@ -396,6 +396,21 @@ bool ModMetadataDatabaseFiles::getModEntries(const std::string &modname, StringM return true; } +bool ModMetadataDatabaseFiles::getModKeys(const std::string &modname, + std::vector<std::string> *storage) +{ + Json::Value *meta = getOrCreateJson(modname); + if (!meta) + return false; + + std::vector<std::string> keys = meta->getMemberNames(); + storage->reserve(storage->size() + keys.size()); + for (std::string &key : keys) + storage->push_back(std::move(key)); + + return true; +} + bool ModMetadataDatabaseFiles::getModEntry(const std::string &modname, const std::string &key, std::string *value) { |