summaryrefslogtreecommitdiffhomepage
path: root/vendor/toml++/impl/table.inl
diff options
context:
space:
mode:
authorAmlal <amlal@nekernel.org>2025-08-11 23:31:39 +0200
committerAmlal <amlal@nekernel.org>2025-08-11 23:31:39 +0200
commitd987d62459d59a6d95ffb815d5e6eccd8dbde1dd (patch)
treed91d1351193a9f758daa9dad964e40f5a84ece7f /vendor/toml++/impl/table.inl
parent4c462511485168cfc831a1447267fd76145d5183 (diff)
meta: ran format command.v0.0.3-release
Signed-off-by: Amlal <amlal@nekernel.org>
Diffstat (limited to 'vendor/toml++/impl/table.inl')
-rw-r--r--vendor/toml++/impl/table.inl498
1 files changed, 220 insertions, 278 deletions
diff --git a/vendor/toml++/impl/table.inl b/vendor/toml++/impl/table.inl
index 01cba01..ca7473e 100644
--- a/vendor/toml++/impl/table.inl
+++ b/vendor/toml++/impl/table.inl
@@ -1,317 +1,259 @@
-//# This file is a part of toml++ and is subject to the the terms of the MIT license.
-//# Copyright (c) Mark Gillard <mark.gillard@outlook.com.au>
-//# See https://github.com/marzer/tomlplusplus/blob/master/LICENSE for the full license text.
-// SPDX-License-Identifier: MIT
+// # This file is a part of toml++ and is subject to the the terms of the MIT license.
+// # Copyright (c) Mark Gillard <mark.gillard@outlook.com.au>
+// # See https://github.com/marzer/tomlplusplus/blob/master/LICENSE for the full license text.
+// SPDX-License-Identifier: MIT
#pragma once
-//# {{
+// # {{
#include "preprocessor.hpp"
#if !TOML_IMPLEMENTATION
#error This is an implementation-only header.
#endif
-//# }}
+// # }}
-#include "table.hpp"
-#include "node_view.hpp"
#include "header_start.hpp"
+#include "node_view.hpp"
+#include "table.hpp"
-TOML_NAMESPACE_START
-{
- TOML_EXTERNAL_LINKAGE
- table::table() noexcept
- {
+TOML_NAMESPACE_START {
+ TOML_EXTERNAL_LINKAGE
+ table::table() noexcept {
#if TOML_LIFETIME_HOOKS
- TOML_TABLE_CREATED;
+ TOML_TABLE_CREATED;
#endif
- }
+ }
- TOML_EXTERNAL_LINKAGE
- table::~table() noexcept
- {
+ TOML_EXTERNAL_LINKAGE
+ table::~table() noexcept {
#if TOML_LIFETIME_HOOKS
- TOML_TABLE_DESTROYED;
+ TOML_TABLE_DESTROYED;
#endif
- }
+ }
- TOML_EXTERNAL_LINKAGE
- table::table(const impl::table_init_pair* b, const impl::table_init_pair* e)
- {
+ TOML_EXTERNAL_LINKAGE
+ table::table(const impl::table_init_pair* b, const impl::table_init_pair* e) {
#if TOML_LIFETIME_HOOKS
- TOML_TABLE_CREATED;
+ TOML_TABLE_CREATED;
#endif
- TOML_ASSERT_ASSUME(b);
- TOML_ASSERT_ASSUME(e);
- TOML_ASSERT_ASSUME(b <= e);
+ TOML_ASSERT_ASSUME(b);
+ TOML_ASSERT_ASSUME(e);
+ TOML_ASSERT_ASSUME(b <= e);
- if TOML_UNLIKELY(b == e)
- return;
+ if TOML_UNLIKELY (b == e) return;
- for (; b != e; b++)
- {
- if (!b->value) // empty node_views
- continue;
+ for (; b != e; b++) {
+ if (!b->value) // empty node_views
+ continue;
- map_.insert_or_assign(std::move(b->key), std::move(b->value));
- }
- }
+ map_.insert_or_assign(std::move(b->key), std::move(b->value));
+ }
+ }
- TOML_EXTERNAL_LINKAGE
- table::table(const table& other) //
- : node(other),
- inline_{ other.inline_ }
- {
- for (auto&& [k, v] : other.map_)
- map_.emplace_hint(map_.end(), k, impl::make_node(*v));
+ TOML_EXTERNAL_LINKAGE
+ table::table(const table& other) //
+ : node(other), inline_{other.inline_} {
+ for (auto&& [k, v] : other.map_) map_.emplace_hint(map_.end(), k, impl::make_node(*v));
#if TOML_LIFETIME_HOOKS
- TOML_TABLE_CREATED;
+ TOML_TABLE_CREATED;
#endif
- }
-
- TOML_EXTERNAL_LINKAGE
- table::table(table && other) noexcept //
- : node(std::move(other)),
- map_{ std::move(other.map_) },
- inline_{ other.inline_ }
- {
+ }
+
+ TOML_EXTERNAL_LINKAGE
+ table::table(table && other) noexcept //
+ : node(std::move(other)), map_{std::move(other.map_)}, inline_{other.inline_} {
#if TOML_LIFETIME_HOOKS
- TOML_TABLE_CREATED;
+ TOML_TABLE_CREATED;
#endif
- }
-
- TOML_EXTERNAL_LINKAGE
- table& table::operator=(const table& rhs)
- {
- if (&rhs != this)
- {
- node::operator=(rhs);
- map_.clear();
- for (auto&& [k, v] : rhs.map_)
- map_.emplace_hint(map_.end(), k, impl::make_node(*v));
- inline_ = rhs.inline_;
- }
- return *this;
- }
-
- TOML_EXTERNAL_LINKAGE
- table& table::operator=(table&& rhs) noexcept
- {
- if (&rhs != this)
- {
- node::operator=(std::move(rhs));
- map_ = std::move(rhs.map_);
- inline_ = rhs.inline_;
- }
- return *this;
- }
-
- TOML_PURE_GETTER
- TOML_EXTERNAL_LINKAGE
- bool table::is_homogeneous(node_type ntype) const noexcept
- {
- if (map_.empty())
- return false;
-
- if (ntype == node_type::none)
- ntype = map_.cbegin()->second->type();
-
- for (auto&& [k, v] : map_)
- {
- TOML_UNUSED(k);
- if (v->type() != ntype)
- return false;
- }
-
- return true;
- }
-
- TOML_PURE_GETTER
- TOML_EXTERNAL_LINKAGE
- bool table::is_homogeneous(node_type ntype, node * &first_nonmatch) noexcept
- {
- if (map_.empty())
- {
- first_nonmatch = {};
- return false;
- }
- if (ntype == node_type::none)
- ntype = map_.cbegin()->second->type();
- for (const auto& [k, v] : map_)
- {
- TOML_UNUSED(k);
- if (v->type() != ntype)
- {
- first_nonmatch = v.get();
- return false;
- }
- }
- return true;
- }
-
- TOML_PURE_GETTER
- TOML_EXTERNAL_LINKAGE
- bool table::is_homogeneous(node_type ntype, const node*& first_nonmatch) const noexcept
- {
- node* fnm = nullptr;
- const auto result = const_cast<table&>(*this).is_homogeneous(ntype, fnm);
- first_nonmatch = fnm;
- return result;
- }
-
- TOML_PURE_GETTER
- TOML_EXTERNAL_LINKAGE
- node* table::get(std::string_view key) noexcept
- {
- if (auto it = map_.find(key); it != map_.end())
- return it->second.get();
- return nullptr;
- }
-
- TOML_EXTERNAL_LINKAGE
- node& table::at(std::string_view key)
- {
- auto n = get(key);
+ }
+
+ TOML_EXTERNAL_LINKAGE
+ table& table::operator=(const table& rhs) {
+ if (&rhs != this) {
+ node::operator=(rhs);
+ map_.clear();
+ for (auto&& [k, v] : rhs.map_) map_.emplace_hint(map_.end(), k, impl::make_node(*v));
+ inline_ = rhs.inline_;
+ }
+ return *this;
+ }
+
+ TOML_EXTERNAL_LINKAGE
+ table& table::operator=(table&& rhs) noexcept {
+ if (&rhs != this) {
+ node::operator=(std::move(rhs));
+ map_ = std::move(rhs.map_);
+ inline_ = rhs.inline_;
+ }
+ return *this;
+ }
+
+ TOML_PURE_GETTER
+ TOML_EXTERNAL_LINKAGE
+ bool table::is_homogeneous(node_type ntype) const noexcept {
+ if (map_.empty()) return false;
+
+ if (ntype == node_type::none) ntype = map_.cbegin()->second->type();
+
+ for (auto&& [k, v] : map_) {
+ TOML_UNUSED(k);
+ if (v->type() != ntype) return false;
+ }
+
+ return true;
+ }
+
+ TOML_PURE_GETTER
+ TOML_EXTERNAL_LINKAGE
+ bool table::is_homogeneous(node_type ntype, node * &first_nonmatch) noexcept {
+ if (map_.empty()) {
+ first_nonmatch = {};
+ return false;
+ }
+ if (ntype == node_type::none) ntype = map_.cbegin()->second->type();
+ for (const auto& [k, v] : map_) {
+ TOML_UNUSED(k);
+ if (v->type() != ntype) {
+ first_nonmatch = v.get();
+ return false;
+ }
+ }
+ return true;
+ }
+
+ TOML_PURE_GETTER
+ TOML_EXTERNAL_LINKAGE
+ bool table::is_homogeneous(node_type ntype, const node*& first_nonmatch) const noexcept {
+ node* fnm = nullptr;
+ const auto result = const_cast<table&>(*this).is_homogeneous(ntype, fnm);
+ first_nonmatch = fnm;
+ return result;
+ }
+
+ TOML_PURE_GETTER
+ TOML_EXTERNAL_LINKAGE
+ node* table::get(std::string_view key) noexcept {
+ if (auto it = map_.find(key); it != map_.end()) return it->second.get();
+ return nullptr;
+ }
+
+ TOML_EXTERNAL_LINKAGE
+ node& table::at(std::string_view key) {
+ auto n = get(key);
#if TOML_COMPILER_HAS_EXCEPTIONS
- if (!n)
- {
- auto err = "key '"s;
- err.append(key);
- err.append("' not found in table"sv);
- throw std::out_of_range{ err };
- }
+ if (!n) {
+ auto err = "key '"s;
+ err.append(key);
+ err.append("' not found in table"sv);
+ throw std::out_of_range{err};
+ }
#else
- TOML_ASSERT_ASSUME(n && "key not found in table!");
+ TOML_ASSERT_ASSUME(n && "key not found in table!");
#endif
- return *n;
- }
-
- TOML_PURE_GETTER
- TOML_EXTERNAL_LINKAGE
- table::map_iterator table::get_lower_bound(std::string_view key) noexcept
- {
- return map_.lower_bound(key);
- }
-
- TOML_PURE_GETTER
- TOML_EXTERNAL_LINKAGE
- table::iterator table::find(std::string_view key) noexcept
- {
- return iterator{ map_.find(key) };
- }
-
- TOML_PURE_GETTER
- TOML_EXTERNAL_LINKAGE
- table::const_iterator table::find(std::string_view key) const noexcept
- {
- return const_iterator{ map_.find(key) };
- }
-
- TOML_EXTERNAL_LINKAGE
- table::map_iterator table::erase(const_map_iterator pos) noexcept
- {
- return map_.erase(pos);
- }
-
- TOML_EXTERNAL_LINKAGE
- table::map_iterator table::erase(const_map_iterator begin, const_map_iterator end) noexcept
- {
- return map_.erase(begin, end);
- }
-
- TOML_EXTERNAL_LINKAGE
- size_t table::erase(std::string_view key) noexcept
- {
- if (auto it = map_.find(key); it != map_.end())
- {
- map_.erase(it);
- return size_t{ 1 };
- }
- return size_t{};
- }
-
- TOML_EXTERNAL_LINKAGE
- table& table::prune(bool recursive)& noexcept
- {
- if (map_.empty())
- return *this;
-
- for (auto it = map_.begin(); it != map_.end();)
- {
- if (auto arr = it->second->as_array())
- {
- if (recursive)
- arr->prune(true);
-
- if (arr->empty())
- {
- it = map_.erase(it);
- continue;
- }
- }
- else if (auto tbl = it->second->as_table())
- {
- if (recursive)
- tbl->prune(true);
-
- if (tbl->empty())
- {
- it = map_.erase(it);
- continue;
- }
- }
- it++;
- }
-
- return *this;
- }
-
- TOML_EXTERNAL_LINKAGE
- void table::clear() noexcept
- {
- map_.clear();
- }
-
- TOML_EXTERNAL_LINKAGE
- table::map_iterator table::insert_with_hint(const_iterator hint, key && k, impl::node_ptr && v)
- {
- return map_.emplace_hint(const_map_iterator{ hint }, std::move(k), std::move(v));
- }
-
- TOML_PURE_GETTER
- TOML_EXTERNAL_LINKAGE
- bool TOML_CALLCONV table::equal(const table& lhs, const table& rhs) noexcept
- {
- if (&lhs == &rhs)
- return true;
- if (lhs.map_.size() != rhs.map_.size())
- return false;
-
- for (auto l = lhs.map_.begin(), r = rhs.map_.begin(), e = lhs.map_.end(); l != e; l++, r++)
- {
- if (l->first != r->first)
- return false;
-
- const auto lhs_type = l->second->type();
- const node& rhs_ = *r->second;
- const auto rhs_type = rhs_.type();
- if (lhs_type != rhs_type)
- return false;
-
- const bool equal = l->second->visit(
- [&](const auto& lhs_) noexcept
- { return lhs_ == *reinterpret_cast<std::remove_reference_t<decltype(lhs_)>*>(&rhs_); });
- if (!equal)
- return false;
- }
- return true;
- }
+ return *n;
+ }
+
+ TOML_PURE_GETTER
+ TOML_EXTERNAL_LINKAGE
+ table::map_iterator table::get_lower_bound(std::string_view key) noexcept {
+ return map_.lower_bound(key);
+ }
+
+ TOML_PURE_GETTER
+ TOML_EXTERNAL_LINKAGE
+ table::iterator table::find(std::string_view key) noexcept {
+ return iterator{map_.find(key)};
+ }
+
+ TOML_PURE_GETTER
+ TOML_EXTERNAL_LINKAGE
+ table::const_iterator table::find(std::string_view key) const noexcept {
+ return const_iterator{map_.find(key)};
+ }
+
+ TOML_EXTERNAL_LINKAGE
+ table::map_iterator table::erase(const_map_iterator pos) noexcept {
+ return map_.erase(pos);
+ }
+
+ TOML_EXTERNAL_LINKAGE
+ table::map_iterator table::erase(const_map_iterator begin, const_map_iterator end) noexcept {
+ return map_.erase(begin, end);
+ }
+
+ TOML_EXTERNAL_LINKAGE
+ size_t table::erase(std::string_view key) noexcept {
+ if (auto it = map_.find(key); it != map_.end()) {
+ map_.erase(it);
+ return size_t{1};
+ }
+ return size_t{};
+ }
+
+ TOML_EXTERNAL_LINKAGE
+ table& table::prune(bool recursive)& noexcept {
+ if (map_.empty()) return *this;
+
+ for (auto it = map_.begin(); it != map_.end();) {
+ if (auto arr = it->second->as_array()) {
+ if (recursive) arr->prune(true);
+
+ if (arr->empty()) {
+ it = map_.erase(it);
+ continue;
+ }
+ } else if (auto tbl = it->second->as_table()) {
+ if (recursive) tbl->prune(true);
+
+ if (tbl->empty()) {
+ it = map_.erase(it);
+ continue;
+ }
+ }
+ it++;
+ }
+
+ return *this;
+ }
+
+ TOML_EXTERNAL_LINKAGE
+ void table::clear() noexcept {
+ map_.clear();
+ }
+
+ TOML_EXTERNAL_LINKAGE
+ table::map_iterator table::insert_with_hint(const_iterator hint, key && k, impl::node_ptr && v) {
+ return map_.emplace_hint(const_map_iterator{hint}, std::move(k), std::move(v));
+ }
+
+ TOML_PURE_GETTER
+ TOML_EXTERNAL_LINKAGE
+ bool TOML_CALLCONV table::equal(const table& lhs, const table& rhs) noexcept {
+ if (&lhs == &rhs) return true;
+ if (lhs.map_.size() != rhs.map_.size()) return false;
+
+ for (auto l = lhs.map_.begin(), r = rhs.map_.begin(), e = lhs.map_.end(); l != e; l++, r++) {
+ if (l->first != r->first) return false;
+
+ const auto lhs_type = l->second->type();
+ const node& rhs_ = *r->second;
+ const auto rhs_type = rhs_.type();
+ if (lhs_type != rhs_type) return false;
+
+ const bool equal = l->second->visit([&](const auto& lhs_) noexcept {
+ return lhs_ == *reinterpret_cast<std::remove_reference_t<decltype(lhs_)>*>(&rhs_);
+ });
+ if (!equal) return false;
+ }
+ return true;
+ }
}
TOML_NAMESPACE_END;