diff options
Diffstat (limited to 'include/lib/ArduinoJson/Object/ObjectFunctions.hpp')
-rw-r--r-- | include/lib/ArduinoJson/Object/ObjectFunctions.hpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/include/lib/ArduinoJson/Object/ObjectFunctions.hpp b/include/lib/ArduinoJson/Object/ObjectFunctions.hpp new file mode 100644 index 0000000..1b46e84 --- /dev/null +++ b/include/lib/ArduinoJson/Object/ObjectFunctions.hpp @@ -0,0 +1,51 @@ +// ArduinoJson - https://arduinojson.org +// Copyright Benoit Blanchon 2014-2021 +// MIT License + +#pragma once + +#include <ArduinoJson/Collection/CollectionData.hpp> + +namespace ARDUINOJSON_NAMESPACE { + +template <typename TVisitor> +typename TVisitor::result_type objectAccept(const CollectionData *obj, + TVisitor &visitor) { + if (obj) + return visitor.visitObject(*obj); + else + return visitor.visitNull(); +} + +inline bool objectEquals(const CollectionData *lhs, const CollectionData *rhs) { + if (lhs == rhs) + return true; + if (!lhs || !rhs) + return false; + return lhs->equalsObject(*rhs); +} + +template <typename TAdaptedString> +inline VariantData *objectGetMember(const CollectionData *obj, + TAdaptedString key) { + if (!obj) + return 0; + return obj->getMember(key); +} + +template <typename TAdaptedString> +void objectRemove(CollectionData *obj, TAdaptedString key) { + if (!obj) + return; + obj->removeMember(key); +} + +template <typename TAdaptedString> +inline VariantData *objectGetOrAddMember(CollectionData *obj, + TAdaptedString key, MemoryPool *pool) { + if (!obj) + return 0; + + return obj->getOrAddMember(key, pool); +} +} // namespace ARDUINOJSON_NAMESPACE |