summaryrefslogtreecommitdiff
path: root/include/lib/ArduinoJson/JsonVariantSubscripts.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/lib/ArduinoJson/JsonVariantSubscripts.hpp')
-rw-r--r--include/lib/ArduinoJson/JsonVariantSubscripts.hpp86
1 files changed, 0 insertions, 86 deletions
diff --git a/include/lib/ArduinoJson/JsonVariantSubscripts.hpp b/include/lib/ArduinoJson/JsonVariantSubscripts.hpp
deleted file mode 100644
index 279ee01..0000000
--- a/include/lib/ArduinoJson/JsonVariantSubscripts.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-// ArduinoJson - arduinojson.org
-// Copyright Benoit Blanchon 2014-2018
-// MIT License
-
-#pragma once
-
-#include "Data/JsonVariantAs.hpp"
-#include "Polyfills/attributes.hpp"
-#include "StringTraits/StringTraits.hpp"
-#include "TypeTraits/EnableIf.hpp"
-
-namespace ArduinoJson {
-namespace Internals {
-
-// Forward declarations.
-class JsonArraySubscript;
-template <typename TKey>
-class JsonObjectSubscript;
-
-template <typename TImpl>
-class JsonVariantSubscripts {
- public:
- // Mimics an array or an object.
- // Returns the size of the array or object if the variant has that type.
- // Returns 0 if the variant is neither an array nor an object
- size_t size() const {
- return impl()->template as<JsonArray>().size() +
- impl()->template as<JsonObject>().size();
- }
-
- // Mimics an array.
- // Returns the element at specified index if the variant is an array.
- // Returns JsonVariant::invalid() if the variant is not an array.
- FORCE_INLINE const JsonArraySubscript operator[](size_t index) const;
- FORCE_INLINE JsonArraySubscript operator[](size_t index);
-
- // Mimics an object.
- // Returns the value associated with the specified key if the variant is
- // an object.
- // Return JsonVariant::invalid() if the variant is not an object.
- //
- // const JsonObjectSubscript operator[](TKey) const;
- // TKey = const std::string&, const String&
- template <typename TString>
- FORCE_INLINE
- typename EnableIf<StringTraits<TString>::has_equals,
- const JsonObjectSubscript<const TString &> >::type
- operator[](const TString &key) const {
- return impl()->template as<JsonObject>()[key];
- }
- //
- // const JsonObjectSubscript operator[](TKey) const;
- // TKey = const std::string&, const String&
- template <typename TString>
- FORCE_INLINE typename EnableIf<StringTraits<TString>::has_equals,
- JsonObjectSubscript<const TString &> >::type
- operator[](const TString &key) {
- return impl()->template as<JsonObject>()[key];
- }
- //
- // JsonObjectSubscript operator[](TKey);
- // TKey = const char*, const char[N], const FlashStringHelper*
- template <typename TString>
- FORCE_INLINE typename EnableIf<StringTraits<const TString *>::has_equals,
- JsonObjectSubscript<const TString *> >::type
- operator[](const TString *key) {
- return impl()->template as<JsonObject>()[key];
- }
- //
- // JsonObjectSubscript operator[](TKey);
- // TKey = const char*, const char[N], const FlashStringHelper*
- template <typename TString>
- FORCE_INLINE
- typename EnableIf<StringTraits<TString *>::has_equals,
- const JsonObjectSubscript<const TString *> >::type
- operator[](const TString *key) const {
- return impl()->template as<JsonObject>()[key];
- }
-
- private:
- const TImpl *impl() const {
- return static_cast<const TImpl *>(this);
- }
-};
-}
-}