settings: hide kv_store from the public header

More concise foreach, generic template code also no longer expands down to ::_read_kv
Also helps with needless inlining happening with recent gcc versions
This commit is contained in:
Maxim Prokhorov
2021-06-18 17:19:05 +03:00
parent c51b6e99f1
commit 1600fcc133
8 changed files with 76 additions and 33 deletions

View File

@@ -15,8 +15,7 @@ Copyright (C) 2016-2019 by Xose Pérez <xose dot perez at gmail dot com>
void delSettingPrefix(const std::initializer_list<const char*>& prefixes) {
std::vector<String> to_purge;
using namespace settings;
kv_store.foreach([&](kvs_type::KeyValueResult&& kv) {
settings::internal::foreach([&](settings::kvs_type::KeyValueResult&& kv) {
auto key = kv.key.read();
for (const auto* prefix : prefixes) {
if (key.startsWith(prefix)) {