diff --git a/lib/ArduinoJson/ArduinoJson.h b/lib/ArduinoJson/ArduinoJson.h index 7e3afa58a..15c218f48 100644 --- a/lib/ArduinoJson/ArduinoJson.h +++ b/lib/ArduinoJson/ArduinoJson.h @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #include "src/ArduinoJson.h" diff --git a/lib/ArduinoJson/CHANGELOG.md b/lib/ArduinoJson/CHANGELOG.md index dd4945bce..bee743479 100644 --- a/lib/ArduinoJson/CHANGELOG.md +++ b/lib/ArduinoJson/CHANGELOG.md @@ -1,6 +1,13 @@ ArduinoJson: change log ======================= +v6.21.0 (2023-03-14) +------- + +* Drop support for C++98/C++03. Minimum required is C++11. +* Remove `ARDUINOJSON_NAMESPACE`; use `ArduinoJson` instead. +* Make string support generic (issue #1807) + v6.20.1 (2023-02-08) ------- diff --git a/lib/ArduinoJson/LICENSE.txt b/lib/ArduinoJson/LICENSE.txt index e59620d1d..15f1b9fbb 100644 --- a/lib/ArduinoJson/LICENSE.txt +++ b/lib/ArduinoJson/LICENSE.txt @@ -1,7 +1,7 @@ The MIT License (MIT) --------------------- -Copyright © 2014-2022, Benoit BLANCHON +Copyright © 2014-2023, Benoit BLANCHON Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/lib/ArduinoJson/README.md b/lib/ArduinoJson/README.md deleted file mode 100644 index b0f539dd3..000000000 --- a/lib/ArduinoJson/README.md +++ /dev/null @@ -1,160 +0,0 @@ -

- ArduinoJson -

- ---- - -[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/bblanchon/ArduinoJson/ci.yml?branch=6.x&logo=github)](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22+branch%3A6.x) -[![Continuous Integration](https://ci.appveyor.com/api/projects/status/m7s53wav1l0abssg/branch/6.x?svg=true)](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/6.x) -[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/arduinojson.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:arduinojson) -[![Coveralls branch](https://img.shields.io/coveralls/github/bblanchon/ArduinoJson/6.x?logo=coveralls)](https://coveralls.io/github/bblanchon/ArduinoJson?branch=6.x) -[![Arduino Library Manager](https://img.shields.io/static/v1?label=Arduino&message=v6.20.1&logo=arduino&logoColor=white&color=blue)](https://www.ardu-badge.com/ArduinoJson/6.20.1) -[![PlatformIO Registry](https://badges.registry.platformio.org/packages/bblanchon/library/ArduinoJson.svg?version=6.20.1)](https://registry.platformio.org/packages/libraries/bblanchon/ArduinoJson?version=6.20.1) -[![ESP IDF](https://img.shields.io/static/v1?label=ESP+IDF&message=v6.20.1&logo=cpu&logoColor=white&color=blue)](https://components.espressif.com/components/bblanchon/arduinojson) -[![GitHub stars](https://img.shields.io/github/stars/bblanchon/ArduinoJson?style=flat&logo=github&color=orange)](https://github.com/bblanchon/ArduinoJson/stargazers) -[![GitHub Sponsors](https://img.shields.io/github/sponsors/bblanchon?logo=github&color=orange)](https://github.com/sponsors/bblanchon) - -ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things). - -## Features - -* [JSON deserialization](https://arduinojson.org/v6/api/json/deserializejson/) - * [Optionally decodes UTF-16 escape sequences to UTF-8](https://arduinojson.org/v6/api/config/decode_unicode/) - * [Optionally stores links to the input buffer (zero-copy)](https://arduinojson.org/v6/api/json/deserializejson/) - * [Optionally supports comments in the input](https://arduinojson.org/v6/api/config/enable_comments/) - * [Optionally filters the input to keep only desired values](https://arduinojson.org/v6/api/json/deserializejson/#filtering) - * Supports single quotes as a string delimiter - * Compatible with [NDJSON](http://ndjson.org/) and [JSON Lines](https://jsonlines.org/) -* [JSON serialization](https://arduinojson.org/v6/api/json/serializejson/) - * [Can write to a buffer or a stream](https://arduinojson.org/v6/api/json/serializejson/) - * [Optionally indents the document (prettified JSON)](https://arduinojson.org/v6/api/json/serializejsonpretty/) -* [MessagePack serialization](https://arduinojson.org/v6/api/msgpack/serializemsgpack/) -* [MessagePack deserialization](https://arduinojson.org/v6/api/msgpack/deserializemsgpack/) -* Efficient - * [Twice smaller than the "official" Arduino_JSON library](https://arduinojson.org/2019/11/19/arduinojson-vs-arduino_json/) - * [Almost 10% faster than the "official" Arduino_JSON library](https://arduinojson.org/2019/11/19/arduinojson-vs-arduino_json/) - * [Consumes roughly 10% less RAM than the "official" Arduino_JSON library](https://arduinojson.org/2019/11/19/arduinojson-vs-arduino_json/) - * [Fixed memory allocation, no heap fragmentation](https://arduinojson.org/v6/api/jsondocument/) - * [Optionally works without heap memory (zero malloc)](https://arduinojson.org/v6/api/staticjsondocument/) - * [Deduplicates strings](https://arduinojson.org/news/2020/08/01/version-6-16-0/) -* Versatile - * Supports [custom allocators (to use external RAM chip, for example)](https://arduinojson.org/v6/how-to/use-external-ram-on-esp32/) - * Supports [`String`](https://arduinojson.org/v6/api/config/enable_arduino_string/), [`std::string`](https://arduinojson.org/v6/api/config/enable_std_string/), and [`std::string_view`](https://arduinojson.org/v6/api/config/enable_string_view/) - * Supports [`Stream`](https://arduinojson.org/v6/api/config/enable_arduino_stream/) and [`std::istream`/`std::ostream`](https://arduinojson.org/v6/api/config/enable_std_stream/) - * Supports [Flash strings](https://arduinojson.org/v6/api/config/enable_progmem/) - * Supports [custom readers](https://arduinojson.org/v6/api/json/deserializejson/#custom-reader) and [custom writers](https://arduinojson.org/v6/api/json/serializejson/#custom-writer) - * Supports [custom converters](https://arduinojson.org/news/2021/05/04/version-6-18-0/) -* Portable - * Usable on any C++ project (not limited to Arduino) - * Compatible with C++98, C++11, C++14 and C++17 - * Zero warnings with `-Wall -Wextra -pedantic` and `/W4` - * [Header-only library](https://en.wikipedia.org/wiki/Header-only) - * Works with virtually any board - * Arduino boards: [Uno](https://amzn.to/38aL2ik), [Due](https://amzn.to/36YkWi2), [Micro](https://amzn.to/35WkdwG), [Nano](https://amzn.to/2QTvwRX), [Mega](https://amzn.to/36XWhuf), [Yun](https://amzn.to/30odURc), [Leonardo](https://amzn.to/36XWjlR)... - * Espressif chips: [ESP8266](https://amzn.to/36YluV8), [ESP32](https://amzn.to/2G4pRCB) - * Lolin (WeMos) boards: [D1 mini](https://amzn.to/2QUpz7q), [D1 Mini Pro](https://amzn.to/36UsGSs)... - * Teensy boards: [4.0](https://amzn.to/30ljXGq), [3.2](https://amzn.to/2FT0EuC), [2.0](https://amzn.to/2QXUMXj) - * Particle boards: [Argon](https://amzn.to/2FQHa9X), [Boron](https://amzn.to/36WgLUd), [Electron](https://amzn.to/30vEc4k), [Photon](https://amzn.to/387F9Cd)... - * Texas Instruments boards: [MSP430](https://amzn.to/30nJWgg)... - * Soft cores: [Nios II](https://en.wikipedia.org/wiki/Nios_II)... - * Tested on all major development environments - * [Arduino IDE](https://www.arduino.cc/en/Main/Software) - * [Atmel Studio](http://www.atmel.com/microsite/atmel-studio/) - * [Atollic TrueSTUDIO](https://atollic.com/truestudio/) - * [Energia](http://energia.nu/) - * [IAR Embedded Workbench](https://www.iar.com/iar-embedded-workbench/) - * [Keil uVision](http://www.keil.com/) - * [MPLAB X IDE](http://www.microchip.com/mplab/mplab-x-ide) - * [Particle](https://www.particle.io/) - * [PlatformIO](http://platformio.org/) - * [Sloeber plugin for Eclipse](https://eclipse.baeyens.it/) - * [Visual Micro](http://www.visualmicro.com/) - * [Visual Studio](https://www.visualstudio.com/) - * [Even works with online compilers like wandbox.org](https://wandbox.org/permlink/RlZSKy17DjJ6HcdN) - * [CMake friendly](https://arduinojson.org/v6/how-to/use-arduinojson-with-cmake/) -* Well designed - * [Elegant API](http://arduinojson.org/v6/example/) - * [Thread-safe](https://en.wikipedia.org/wiki/Thread_safety) - * Self-contained (no external dependency) - * `const` friendly - * [`for` friendly](https://arduinojson.org/v6/api/jsonobject/begin_end/) - * [TMP friendly](https://en.wikipedia.org/wiki/Template_metaprogramming) - * Handles [integer overflows](https://arduinojson.org/v6/api/jsonvariant/as/#integer-overflows) -* Well tested - * [Unit test coverage close to 100%](https://coveralls.io/github/bblanchon/ArduinoJson?branch=6.x) - * Continuously tested on - * [Visual Studio 2010, 2012, 2013, 2015, 2017, 2019, 2022](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/6.x) - * [GCC 4.4, 4.6, 4.7, 4.8, 4.9, 5, 6, 7, 8, 9, 10, 11](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22) - * [Clang 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 6.0, 7, 8, 9, 10](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22) - * [Continuously fuzzed with Google OSS Fuzz](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:arduinojson) - * Passes all default checks of [clang-tidy](https://releases.llvm.org/10.0.0/tools/clang/tools/extra/docs/clang-tidy/) -* Well documented - * [Tutorials](https://arduinojson.org/v6/doc/deserialization/) - * [Examples](https://arduinojson.org/v6/example/) - * [How-tos](https://arduinojson.org/v6/example/) - * [FAQ](https://arduinojson.org/v6/faq/) - * [Troubleshooter](https://arduinojson.org/v6/troubleshooter/) - * [Book](https://arduinojson.org/book/) - * [Changelog](CHANGELOG.md) -* Vibrant user community - * Most popular of all Arduino libraries on [GitHub](https://github.com/search?o=desc&q=arduino+library&s=stars&type=Repositories) - * [Used in hundreds of projects](https://www.hackster.io/search?i=projects&q=arduinojson) - * [Responsive support](https://github.com/bblanchon/ArduinoJson/issues?q=is%3Aissue+is%3Aclosed) - -## Quickstart - -### Deserialization - -Here is a program that parses a JSON document with ArduinoJson. - -```c++ -char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}"; - -DynamicJsonDocument doc(1024); -deserializeJson(doc, json); - -const char* sensor = doc["sensor"]; -long time = doc["time"]; -double latitude = doc["data"][0]; -double longitude = doc["data"][1]; -``` - -See the [tutorial on arduinojson.org](https://arduinojson.org/v6/doc/deserialization/) - -### Serialization - -Here is a program that generates a JSON document with ArduinoJson: - -```c++ -DynamicJsonDocument doc(1024); - -doc["sensor"] = "gps"; -doc["time"] = 1351824120; -doc["data"][0] = 48.756080; -doc["data"][1] = 2.302038; - -serializeJson(doc, Serial); -// This prints: -// {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]} -``` - -See the [tutorial on arduinojson.org](https://arduinojson.org/v6/doc/serialization/) - -## Sponsors - -ArduinoJson is thankful to its sponsors. Please give them a visit; they deserve it! - -

- - Programming Electronics Academy - -

-

- - 1technophile - -

- -If you run a commercial project that embeds ArduinoJson, think about [sponsoring the library's development](https://github.com/sponsors/bblanchon): it ensures the code that your products rely on stays actively maintained. It can also give your project some exposure to the makers' community. - -If you are an individual user and want to support the development (or give a sign of appreciation), consider purchasing the book [Mastering ArduinoJson](https://arduinojson.org/book/) ❤, or simply [cast a star](https://github.com/bblanchon/ArduinoJson/stargazers) ⭐. diff --git a/lib/ArduinoJson/src/ArduinoJson.h b/lib/ArduinoJson/src/ArduinoJson.h index f79212dbc..c9ac0ca64 100644 --- a/lib/ArduinoJson/src/ArduinoJson.h +++ b/lib/ArduinoJson/src/ArduinoJson.h @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once diff --git a/lib/ArduinoJson/src/ArduinoJson.hpp b/lib/ArduinoJson/src/ArduinoJson.hpp index 3a490f33e..0c8832a1b 100644 --- a/lib/ArduinoJson/src/ArduinoJson.hpp +++ b/lib/ArduinoJson/src/ArduinoJson.hpp @@ -1,9 +1,13 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once +#if __cplusplus < 201103L && (!defined(_MSC_VER) || _MSC_VER < 1910) +# error ArduinoJson requires C++11 or newer. Configure your compiler for C++11 or downgrade ArduinoJson to 6.20. +#endif + #include "ArduinoJson/Configuration.hpp" // Include Arduino.h before stdlib.h to avoid conflict with atexit() @@ -45,36 +49,3 @@ #include "ArduinoJson/MsgPack/MsgPackSerializer.hpp" #include "ArduinoJson/compatibility.hpp" - -namespace ArduinoJson { -using ARDUINOJSON_NAMESPACE::BasicJsonDocument; -using ARDUINOJSON_NAMESPACE::copyArray; -using ARDUINOJSON_NAMESPACE::DeserializationError; -using ARDUINOJSON_NAMESPACE::deserializeJson; -using ARDUINOJSON_NAMESPACE::deserializeMsgPack; -using ARDUINOJSON_NAMESPACE::DynamicJsonDocument; -using ARDUINOJSON_NAMESPACE::JsonArray; -using ARDUINOJSON_NAMESPACE::JsonArrayConst; -using ARDUINOJSON_NAMESPACE::JsonDocument; -using ARDUINOJSON_NAMESPACE::JsonFloat; -using ARDUINOJSON_NAMESPACE::JsonInteger; -using ARDUINOJSON_NAMESPACE::JsonObject; -using ARDUINOJSON_NAMESPACE::JsonObjectConst; -using ARDUINOJSON_NAMESPACE::JsonPair; -using ARDUINOJSON_NAMESPACE::JsonPairConst; -using ARDUINOJSON_NAMESPACE::JsonString; -using ARDUINOJSON_NAMESPACE::JsonUInt; -using ARDUINOJSON_NAMESPACE::JsonVariant; -using ARDUINOJSON_NAMESPACE::JsonVariantConst; -using ARDUINOJSON_NAMESPACE::measureJson; -using ARDUINOJSON_NAMESPACE::serialized; -using ARDUINOJSON_NAMESPACE::serializeJson; -using ARDUINOJSON_NAMESPACE::serializeJsonPretty; -using ARDUINOJSON_NAMESPACE::serializeMsgPack; -using ARDUINOJSON_NAMESPACE::StaticJsonDocument; - -namespace DeserializationOption { -using ARDUINOJSON_NAMESPACE::Filter; -using ARDUINOJSON_NAMESPACE::NestingLimit; -} // namespace DeserializationOption -} // namespace ArduinoJson diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp index b3e00a2c0..1a9e9ce27 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp @@ -1,18 +1,18 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE // A proxy class to get or set an element of an array. // https://arduinojson.org/v6/api/jsonarray/subscript/ template -class ElementProxy : public VariantRefBase >, - public VariantOperators > { +class ElementProxy : public VariantRefBase>, + public VariantOperators> { friend class VariantAttorney; public: @@ -57,4 +57,4 @@ class ElementProxy : public VariantRefBase >, size_t _index; }; -} // namespace ARDUINOJSON_NAMESPACE +ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp index a26b1f1f1..00df67ceb 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once @@ -7,14 +7,14 @@ #include #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE class JsonObject; // A reference to an array in a JsonDocument // https://arduinojson.org/v6/api/jsonarray/ -class JsonArray : public VariantOperators { - friend class VariantAttorney; +class JsonArray : public detail::VariantOperators { + friend class detail::VariantAttorney; public: typedef JsonArrayIterator iterator; @@ -23,14 +23,14 @@ class JsonArray : public VariantOperators { FORCE_INLINE JsonArray() : _data(0), _pool(0) {} // INTERNAL USE ONLY - FORCE_INLINE JsonArray(MemoryPool* pool, CollectionData* data) + FORCE_INLINE JsonArray(detail::MemoryPool* pool, detail::CollectionData* data) : _data(data), _pool(pool) {} // Returns a JsonVariant pointing to the array. // https://arduinojson.org/v6/api/jsonvariant/ operator JsonVariant() { void* data = _data; // prevent warning cast-align - return JsonVariant(_pool, reinterpret_cast(data)); + return JsonVariant(_pool, reinterpret_cast(data)); } // Returns a read-only reference to the array. @@ -118,8 +118,8 @@ class JsonArray : public VariantOperators { // Gets or sets the element at the specified index. // https://arduinojson.org/v6/api/jsonarray/subscript/ - FORCE_INLINE ElementProxy operator[](size_t index) const { - return ElementProxy(*this, index); + FORCE_INLINE detail::ElementProxy operator[](size_t index) const { + return {*this, index}; } // Creates an object and appends it to the array. @@ -167,35 +167,35 @@ class JsonArray : public VariantOperators { } private: - MemoryPool* getPool() const { + detail::MemoryPool* getPool() const { return _pool; } - VariantData* getData() const { + detail::VariantData* getData() const { return collectionToVariant(_data); } - VariantData* getOrCreateData() const { + detail::VariantData* getOrCreateData() const { return collectionToVariant(_data); } - CollectionData* _data; - MemoryPool* _pool; + detail::CollectionData* _data; + detail::MemoryPool* _pool; }; template <> -struct Converter : private VariantAttorney { +struct Converter : private detail::VariantAttorney { static void toJson(JsonVariantConst src, JsonVariant dst) { variantCopyFrom(getData(dst), getData(src), getPool(dst)); } static JsonArray fromJson(JsonVariant src) { - VariantData* data = getData(src); - MemoryPool* pool = getPool(src); + auto data = getData(src); + auto pool = getPool(src); return JsonArray(pool, data != 0 ? data->asArray() : 0); } - static InvalidConversion fromJson( + static detail::InvalidConversion fromJson( JsonVariantConst); static bool checkJson(JsonVariantConst) { @@ -203,8 +203,9 @@ struct Converter : private VariantAttorney { } static bool checkJson(JsonVariant src) { - VariantData* data = getData(src); + auto data = getData(src); return data && data->isArray(); } }; -} // namespace ARDUINOJSON_NAMESPACE + +ARDUINOJSON_END_PUBLIC_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp index 17e65a4bb..6c60e9813 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once @@ -8,15 +8,15 @@ #include #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE class JsonObject; // A read-only reference to an array in a JsonDocument // https://arduinojson.org/v6/api/jsonarrayconst/ -class JsonArrayConst : public VariantOperators { +class JsonArrayConst : public detail::VariantOperators { friend class JsonArray; - friend class VariantAttorney; + friend class detail::VariantAttorney; public: typedef JsonArrayConstIterator iterator; @@ -39,7 +39,8 @@ class JsonArrayConst : public VariantOperators { FORCE_INLINE JsonArrayConst() : _data(0) {} // INTERNAL USE ONLY - FORCE_INLINE JsonArrayConst(const CollectionData* data) : _data(data) {} + FORCE_INLINE JsonArrayConst(const detail::CollectionData* data) + : _data(data) {} // Compares the content of two arrays. // Returns true if the two arrays are equal. @@ -107,28 +108,28 @@ class JsonArrayConst : public VariantOperators { } private: - const VariantData* getData() const { + const detail::VariantData* getData() const { return collectionToVariant(_data); } - const CollectionData* _data; + const detail::CollectionData* _data; }; template <> -struct Converter : private VariantAttorney { +struct Converter : private detail::VariantAttorney { static void toJson(JsonVariantConst src, JsonVariant dst) { variantCopyFrom(getData(dst), getData(src), getPool(dst)); } static JsonArrayConst fromJson(JsonVariantConst src) { - const VariantData* data = getData(src); + auto data = getData(src); return data ? data->asArray() : 0; } static bool checkJson(JsonVariantConst src) { - const VariantData* data = getData(src); + auto data = getData(src); return data && data->isArray(); } }; -} // namespace ARDUINOJSON_NAMESPACE +ARDUINOJSON_END_PUBLIC_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayImpl.hpp index 45a520f49..dc0487af8 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayImpl.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayImpl.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once @@ -7,12 +7,16 @@ #include #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE inline JsonObject JsonArray::createNestedObject() const { return add().to(); } +ARDUINOJSON_END_PUBLIC_NAMESPACE + +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE + template inline JsonArray VariantRefBase::createNestedArray() const { return add().template to(); @@ -29,4 +33,4 @@ inline ElementProxy VariantRefBase::operator[]( return ElementProxy(derived(), index); } -} // namespace ARDUINOJSON_NAMESPACE +ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp index 382d11775..3e1b7526c 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once @@ -7,11 +7,12 @@ #include #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE class VariantPtr { public: - VariantPtr(MemoryPool* pool, VariantData* data) : _variant(pool, data) {} + VariantPtr(detail::MemoryPool* pool, detail::VariantData* data) + : _variant(pool, data) {} JsonVariant* operator->() { return &_variant; @@ -30,7 +31,8 @@ class JsonArrayIterator { public: JsonArrayIterator() : _slot(0) {} - explicit JsonArrayIterator(MemoryPool* pool, VariantSlot* slot) + explicit JsonArrayIterator(detail::MemoryPool* pool, + detail::VariantSlot* slot) : _pool(pool), _slot(slot) {} JsonVariant operator*() const { @@ -59,13 +61,13 @@ class JsonArrayIterator { } private: - MemoryPool* _pool; - VariantSlot* _slot; + detail::MemoryPool* _pool; + detail::VariantSlot* _slot; }; class VariantConstPtr { public: - VariantConstPtr(const VariantData* data) : _variant(data) {} + VariantConstPtr(const detail::VariantData* data) : _variant(data) {} JsonVariantConst* operator->() { return &_variant; @@ -84,7 +86,8 @@ class JsonArrayConstIterator { public: JsonArrayConstIterator() : _slot(0) {} - explicit JsonArrayConstIterator(const VariantSlot* slot) : _slot(slot) {} + explicit JsonArrayConstIterator(const detail::VariantSlot* slot) + : _slot(slot) {} JsonVariantConst operator*() const { return JsonVariantConst(_slot->data()); @@ -112,6 +115,7 @@ class JsonArrayConstIterator { } private: - const VariantSlot* _slot; + const detail::VariantSlot* _slot; }; -} // namespace ARDUINOJSON_NAMESPACE + +ARDUINOJSON_END_PUBLIC_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp index 1bff6830c..398e11d45 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once @@ -7,21 +7,21 @@ #include #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // Copies a value to a JsonVariant. // This is a degenerated form of copyArray() to stop the recursion. template -inline typename enable_if::value, bool>::type copyArray( - const T& src, JsonVariant dst) { +inline typename detail::enable_if::value, bool>::type +copyArray(const T& src, JsonVariant dst) { return dst.set(src); } // Copies values from an array to a JsonArray or a JsonVariant. // https://arduinojson.org/v6/api/misc/copyarray/ template -inline typename enable_if::value, - bool>::type +inline typename detail::enable_if< + !detail::is_base_of::value, bool>::type copyArray(T (&src)[N], const TDestination& dst) { return copyArray(src, N, dst); } @@ -29,8 +29,8 @@ copyArray(T (&src)[N], const TDestination& dst) { // Copies values from an array to a JsonArray or a JsonVariant. // https://arduinojson.org/v6/api/misc/copyarray/ template -inline typename enable_if::value, - bool>::type +inline typename detail::enable_if< + !detail::is_base_of::value, bool>::type copyArray(const T* src, size_t len, const TDestination& dst) { bool ok = true; for (size_t i = 0; i < len; i++) { @@ -63,8 +63,8 @@ inline bool copyArray(const T* src, size_t len, JsonDocument& dst) { // Copies a value from a JsonVariant. // This is a degenerated form of copyArray() to stop the recursion. template -inline typename enable_if::value, size_t>::type copyArray( - JsonVariantConst src, T& dst) { +inline typename detail::enable_if::value, size_t>::type +copyArray(JsonVariantConst src, T& dst) { dst = src.as(); return 1; } @@ -103,11 +103,12 @@ inline size_t copyArray(JsonVariantConst src, char (&dst)[N]) { // Copies values from a JsonDocument to an array. // https://arduinojson.org/v6/api/misc/copyarray/ template -inline typename enable_if::value && - is_base_of::value, - size_t>::type +inline typename detail::enable_if< + detail::is_array::value && + detail::is_base_of::value, + size_t>::type copyArray(const TSource& src, T& dst) { return copyArray(src.template as(), dst); } -} // namespace ARDUINOJSON_NAMESPACE +ARDUINOJSON_END_PUBLIC_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp b/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp index 560e7e336..aa807b5de 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once @@ -9,7 +9,7 @@ #include // size_t -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE class MemoryPool; class VariantData; @@ -91,4 +91,5 @@ inline VariantData* collectionToVariant(CollectionData* collection) { void* data = collection; // prevent warning cast-align return reinterpret_cast(data); } -} // namespace ARDUINOJSON_NAMESPACE + +ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp index f933f527e..c99b524be 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once @@ -9,7 +9,7 @@ #include #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE inline VariantSlot* CollectionData::addSlot(MemoryPool* pool) { VariantSlot* slot = pool->allocVariant(); @@ -194,4 +194,4 @@ inline void CollectionData::movePointers(ptrdiff_t stringDistance, slot->movePointers(stringDistance, variantDistance); } -} // namespace ARDUINOJSON_NAMESPACE +ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Configuration.hpp b/lib/ArduinoJson/src/ArduinoJson/Configuration.hpp index ed5687a39..b33a8339e 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Configuration.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Configuration.hpp @@ -1,31 +1,9 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once -#if __cplusplus >= 201103L -# define ARDUINOJSON_HAS_LONG_LONG 1 -# define ARDUINOJSON_HAS_RVALUE_REFERENCES 1 -#else -# define ARDUINOJSON_HAS_LONG_LONG 0 -# define ARDUINOJSON_HAS_RVALUE_REFERENCES 0 -#endif - -#ifndef ARDUINOJSON_HAS_NULLPTR -# if __cplusplus >= 201103L -# define ARDUINOJSON_HAS_NULLPTR 1 -# else -# define ARDUINOJSON_HAS_NULLPTR 0 -# endif -#endif - -#if defined(_MSC_VER) && !ARDUINOJSON_HAS_LONG_LONG -# define ARDUINOJSON_HAS_INT64 1 -#else -# define ARDUINOJSON_HAS_INT64 0 -#endif - // Support std::istream and std::ostream #ifndef ARDUINOJSON_ENABLE_STD_STREAM # ifdef __has_include @@ -83,8 +61,7 @@ // Store integral values with long (0) or long long (1) #ifndef ARDUINOJSON_USE_LONG_LONG -# if ARDUINOJSON_HAS_LONG_LONG && defined(__SIZEOF_POINTER__) && \ - __SIZEOF_POINTER__ >= 4 || \ +# if defined(__SIZEOF_POINTER__) && __SIZEOF_POINTER__ >= 4 || \ defined(_MSC_VER) # define ARDUINOJSON_USE_LONG_LONG 1 # endif @@ -230,7 +207,7 @@ # endif #endif -#if ARDUINOJSON_HAS_NULLPTR && defined(nullptr) +#if defined(nullptr) # error nullptr is defined as a macro. Remove the faulty #define or #undef nullptr // See https://github.com/bblanchon/ArduinoJson/issues/1355 #endif diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp index 16c52ffd2..2e97a024f 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp @@ -1,10 +1,9 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once -#include #include #include #include @@ -13,9 +12,9 @@ # include #endif -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE -class DeserializationError : public SafeBoolIdom { +class DeserializationError { public: enum Code { Ok, @@ -53,9 +52,9 @@ class DeserializationError : public SafeBoolIdom { return lhs != rhs._code; } - // Behaves like a bool - operator bool_type() const { - return _code != Ok ? safe_true() : safe_false(); + // Returns true if there is an error + explicit operator bool() const { + return _code != Ok; } // Returns internal enum, useful for switch statement @@ -80,10 +79,10 @@ class DeserializationError : public SafeBoolIdom { ARDUINOJSON_DEFINE_PROGMEM_ARRAY(char, s3, "InvalidInput"); ARDUINOJSON_DEFINE_PROGMEM_ARRAY(char, s4, "NoMemory"); ARDUINOJSON_DEFINE_PROGMEM_ARRAY(char, s5, "TooDeep"); - ARDUINOJSON_DEFINE_PROGMEM_ARRAY( - const char*, messages, ARDUINOJSON_EXPAND6({s0, s1, s2, s3, s4, s5})); + ARDUINOJSON_DEFINE_PROGMEM_ARRAY(const char*, messages, + {s0, s1, s2, s3, s4, s5}); return reinterpret_cast( - pgm_read(messages + _code)); + detail::pgm_read(messages + _code)); } #endif @@ -104,4 +103,4 @@ inline std::ostream& operator<<(std::ostream& s, DeserializationError::Code c) { } #endif -} // namespace ARDUINOJSON_NAMESPACE +ARDUINOJSON_END_PUBLIC_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp new file mode 100644 index 000000000..8400cc0b2 --- /dev/null +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp @@ -0,0 +1,35 @@ +// ArduinoJson - https://arduinojson.org +// Copyright © 2014-2023, Benoit BLANCHON +// MIT License + +#pragma once + +#include +#include + +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE + +template +struct DeserializationOptions { + TFilter filter; + DeserializationOption::NestingLimit nestingLimit; +}; + +template +inline DeserializationOptions makeDeserializationOptions( + TFilter filter, DeserializationOption::NestingLimit nestingLimit = {}) { + return {filter, nestingLimit}; +} + +template +inline DeserializationOptions makeDeserializationOptions( + DeserializationOption::NestingLimit nestingLimit, TFilter filter) { + return {filter, nestingLimit}; +} + +inline DeserializationOptions makeDeserializationOptions( + DeserializationOption::NestingLimit nestingLimit = {}) { + return {{}, nestingLimit}; +} + +ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp index 501acf3e4..8857cedfe 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp @@ -1,13 +1,14 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE +namespace DeserializationOption { class Filter { public: explicit Filter(JsonVariantConst v) : _variant(v) {} @@ -39,7 +40,9 @@ class Filter { private: JsonVariantConst _variant; }; +} // namespace DeserializationOption +namespace detail { struct AllowAllFilter { bool allow() const { return true; @@ -62,5 +65,6 @@ struct AllowAllFilter { return AllowAllFilter(); } }; +} // namespace detail -} // namespace ARDUINOJSON_NAMESPACE +ARDUINOJSON_END_PUBLIC_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp index af5724d0a..6d2f67545 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp @@ -1,5 +1,5 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once @@ -7,8 +7,9 @@ #include #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE +namespace DeserializationOption { class NestingLimit { public: NestingLimit() : _value(ARDUINOJSON_DEFAULT_NESTING_LIMIT) {} @@ -26,4 +27,6 @@ class NestingLimit { private: uint8_t _value; }; -} // namespace ARDUINOJSON_NAMESPACE +} // namespace DeserializationOption + +ARDUINOJSON_END_PUBLIC_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp index 4e1958c75..e52af6d5c 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp @@ -1,14 +1,15 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once #include +#include #include // for size_t -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE // The default reader is a simple wrapper for Readers that are not copiable template @@ -33,7 +34,8 @@ struct BoundedReader { // no default implementation because we need to pass the size to the // constructor }; -} // namespace ARDUINOJSON_NAMESPACE + +ARDUINOJSON_END_PRIVATE_NAMESPACE #include #include @@ -54,3 +56,18 @@ struct BoundedReader { #if ARDUINOJSON_ENABLE_STD_STREAM # include #endif + +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE + +template +Reader::type> makeReader(TInput&& input) { + return Reader::type>{ + detail::forward(input)}; +} + +template +BoundedReader makeReader(TChar* input, size_t inputSize) { + return BoundedReader{input, inputSize}; +} + +ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp index 179e37681..ac4f212d5 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp @@ -1,12 +1,12 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template struct Reader -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template struct Reader::value>::type> + typename enable_if::value>::type> : BoundedReader { explicit Reader(const ::String& s) : BoundedReader(s.c_str(), s.length()) {} }; -} // namespace ARDUINOJSON_NAMESPACE +ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp index c48248c1d..da6880ded 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp @@ -1,12 +1,12 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template <> struct Reader { @@ -52,4 +52,5 @@ struct BoundedReader { return length; } }; -} // namespace ARDUINOJSON_NAMESPACE + +ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp index 96494df01..718907988 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp @@ -1,10 +1,10 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template class IteratorReader { @@ -41,4 +41,5 @@ struct Reader::type> : IteratorReader(source.begin(), source.end()) {} }; -} // namespace ARDUINOJSON_NAMESPACE + +ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp index 120ce8a80..78d019953 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp @@ -1,12 +1,12 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template struct IsCharOrVoid { @@ -48,4 +48,4 @@ struct BoundedReader(ptr) + len) {} }; -} // namespace ARDUINOJSON_NAMESPACE +ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp index c92f7931b..ecace4266 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp @@ -1,12 +1,12 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template struct Reader #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template struct Reader::value>::type> @@ -16,4 +16,4 @@ struct Reader::value>::type> : Reader(x.template as()) {} }; -} // namespace ARDUINOJSON_NAMESPACE +ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp index 062b10921..1d0868048 100644 --- a/lib/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp @@ -1,16 +1,16 @@ // ArduinoJson - https://arduinojson.org -// Copyright © 2014-2022, Benoit BLANCHON +// Copyright © 2014-2023, Benoit BLANCHON // MIT License #pragma once #include -#include -#include +#include #include +#include #include -namespace ARDUINOJSON_NAMESPACE { +ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template