summaryrefslogtreecommitdiff
path: root/include/lib/ArduinoJson/Array/ArrayShortcuts.hpp
diff options
context:
space:
mode:
authorDaniel Friesel <daniel.friesel@uos.de>2021-05-12 09:12:09 +0200
committerDaniel Friesel <daniel.friesel@uos.de>2021-05-12 09:12:09 +0200
commit39895a677e5d370824e702cfe90ebc67737b8482 (patch)
treeff5b4cc9e373d33a795d50d9333e05549bd9f2b8 /include/lib/ArduinoJson/Array/ArrayShortcuts.hpp
parent42e7fdf01c3a5701bb51e93ad6c650c3dbbc5450 (diff)
import ArduinoJson 6.18.0
Diffstat (limited to 'include/lib/ArduinoJson/Array/ArrayShortcuts.hpp')
-rw-r--r--include/lib/ArduinoJson/Array/ArrayShortcuts.hpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/include/lib/ArduinoJson/Array/ArrayShortcuts.hpp b/include/lib/ArduinoJson/Array/ArrayShortcuts.hpp
new file mode 100644
index 0000000..fd26d04
--- /dev/null
+++ b/include/lib/ArduinoJson/Array/ArrayShortcuts.hpp
@@ -0,0 +1,49 @@
+// ArduinoJson - https://arduinojson.org
+// Copyright Benoit Blanchon 2014-2021
+// MIT License
+
+#pragma once
+
+#include <ArduinoJson/Polyfills/attributes.hpp>
+#include <ArduinoJson/Polyfills/type_traits.hpp>
+
+namespace ARDUINOJSON_NAMESPACE {
+// Forward declarations.
+class ArrayRef;
+class ObjectRef;
+template <typename>
+class ElementProxy;
+
+template <typename TArray>
+class ArrayShortcuts {
+ public:
+ // Returns the element at specified index if the variant is an array.
+ FORCE_INLINE ElementProxy<TArray> operator[](size_t index) const;
+
+ FORCE_INLINE ObjectRef createNestedObject() const;
+
+ FORCE_INLINE ArrayRef createNestedArray() const;
+
+ // Adds the specified value at the end of the array.
+ //
+ // bool add(TValue);
+ // TValue = bool, long, int, short, float, double, serialized, VariantRef,
+ // std::string, String, ObjectRef
+ template <typename T>
+ FORCE_INLINE bool add(const T &value) const {
+ return impl()->addElement().set(value);
+ }
+ //
+ // bool add(TValue);
+ // TValue = char*, const char*, const __FlashStringHelper*
+ template <typename T>
+ FORCE_INLINE bool add(T *value) const {
+ return impl()->addElement().set(value);
+ }
+
+ private:
+ const TArray *impl() const {
+ return static_cast<const TArray *>(this);
+ }
+};
+} // namespace ARDUINOJSON_NAMESPACE