From 86e7cacff1b34cb251794974e675c35a76429722 Mon Sep 17 00:00:00 2001 From: m-holger Date: Fri, 21 Feb 2025 20:42:59 +0000 Subject: [PATCH] Make BaseDictionary iterable --- libqpdf/qpdf/QPDFObjectHandle_private.hh | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+), 0 deletions(-) diff --git a/libqpdf/qpdf/QPDFObjectHandle_private.hh b/libqpdf/qpdf/QPDFObjectHandle_private.hh index d55cd78..f4b99ac 100644 --- a/libqpdf/qpdf/QPDFObjectHandle_private.hh +++ b/libqpdf/qpdf/QPDFObjectHandle_private.hh @@ -42,6 +42,84 @@ namespace qpdf class BaseDictionary: public BaseHandle { public: + using iterator = std::map::iterator; + using const_iterator = std::map::const_iterator; + using reverse_iterator = std::map::reverse_iterator; + using const_reverse_iterator = + std::map::const_reverse_iterator; + + iterator + begin() + { + if (auto d = as()) { + return d->items.begin(); + } + return {}; + } + + iterator + end() + { + if (auto d = as()) { + return d->items.end(); + } + return {}; + } + + const_iterator + cbegin() + { + if (auto d = as()) { + return d->items.cbegin(); + } + return {}; + } + + const_iterator + cend() + { + if (auto d = as()) { + return d->items.cend(); + } + return {}; + } + + reverse_iterator + rbegin() + { + if (auto d = as()) { + return d->items.rbegin(); + } + return {}; + } + + reverse_iterator + rend() + { + if (auto d = as()) { + return d->items.rend(); + } + return {}; + } + + const_reverse_iterator + crbegin() + { + if (auto d = as()) { + return d->items.crbegin(); + } + return {}; + } + + const_reverse_iterator + crend() + { + if (auto d = as()) { + return d->items.crend(); + } + return {}; + } + // The following methods are not part of the public API. bool hasKey(std::string const& key) const; QPDFObjectHandle getKey(std::string const& key) const; -- libgit2 0.21.4