aboutsummaryrefslogtreecommitdiff
path: root/src/database/database-files.cpp
diff options
context:
space:
mode:
authorJude Melton-Houghton <jwmhjwmh@gmail.com>2022-11-15 10:45:12 -0500
committerGitHub <noreply@github.com>2022-11-15 16:45:12 +0100
commitcd8a7fe47298be12620cab62be8cf0816fabb095 (patch)
treed667a204294e382cdf1d08ce8a77096778fc7fdd /src/database/database-files.cpp
parent1a045da0dd7f086a6ca689620aeb0fa28a1f6ce6 (diff)
downloadminetest-cd8a7fe47298be12620cab62be8cf0816fabb095.tar.xz
Add MetaDataRef:get_keys (#12841)
Diffstat (limited to 'src/database/database-files.cpp')
-rw-r--r--src/database/database-files.cpp15
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)
{