Commit Graph

2092 Commits

Author SHA1 Message Date
Benoit Blanchon 589bbbfcca VariantImpl: add toArrayIfNull() and toObjectIfNull() 2025-07-24 18:40:38 +02:00
Benoit Blanchon 03da4aad99 MsgPackSerializer: use iterators to serialize array and objects 2025-07-23 16:31:19 +02:00
Benoit Blanchon 60a767c706 JsonSerializer: use iterators to serialize array and objects 2025-07-23 16:14:03 +02:00
Benoit Blanchon 274fe06b33 VariantImpl: add copy functions 2025-07-20 18:23:03 +02:00
Benoit Blanchon f680598a2f VariantImpl: remove addValue()
This removes the two-way dependency between `JsonVariant` and `VariantImpl`
2025-07-20 14:56:06 +02:00
Benoit Blanchon e86c6acf2e Return bool from all built-in toJson converters 2025-07-17 22:11:36 +02:00
Benoit Blanchon 0021ec81d1 StringPool: change dereference to take a StringNode* 2025-07-16 12:32:35 +02:00
Benoit Blanchon 372f2f2767 VariantImpl: extract asOwnedString() 2025-07-16 12:26:28 +02:00
Benoit Blanchon fc8da90ba7 VariantImpl: extract setOwnedString() 2025-07-16 12:15:58 +02:00
Benoit Blanchon 38f61d322f VariantImpl: change setRawString() to return bool 2025-07-16 12:11:58 +02:00
Benoit Blanchon 3793996d83 VariantImpl: change setRawString() to take an adapted string 2025-07-16 12:08:30 +02:00
Benoit Blanchon 43548db37d ResourceManager: move out-of-class definitions back in the class 2025-07-15 18:32:38 +02:00
Benoit Blanchon 59573ac1f9 ResourceManager: decouple from VariantImpl 2025-07-14 19:51:25 +02:00
Benoit Blanchon 14a48978d9 CollectionIterator: rename next() to move() 2025-07-14 19:51:25 +02:00
Benoit Blanchon 2fa8b9664c VariantImpl: move out-of-class definitions back in the class 2025-07-14 19:51:25 +02:00
Benoit Blanchon 2e20ce0795 CollectionIterator: remove friendship with VariantImpl 2025-07-11 18:36:51 +02:00
Benoit Blanchon a5164f7fe3 CollectionIterator: remove data() 2025-07-11 18:34:17 +02:00
Benoit Blanchon a9996d2293 VariantImpl: rename getResourceManager() to resources() 2025-07-11 18:31:38 +02:00
Benoit Blanchon f9655a90ed VariantImpl: rename getData() to data() 2025-07-11 18:30:10 +02:00
Benoit Blanchon 25942cce2d CollectionIterator: replace value() with operator* and operator-> 2025-07-11 18:24:51 +02:00
Benoit Blanchon c6fa8c1c1f Add VariantImpl in CollectionIterator 2025-07-11 18:19:35 +02:00
Benoit Blanchon 5589633697 Add ResourceManager* in CollectionIterator +80 2025-07-11 18:06:47 +02:00
Benoit Blanchon 7b7ee6cdeb Add VariantImpl::isUnbound() 2025-07-11 14:32:30 +02:00
Benoit Blanchon dca5ba481f CollectionIterator: add value() member function 2025-07-10 19:30:51 +02:00
Benoit Blanchon ec53525452 Rename CollectionData.hpp to CollectionIterator.hpp 2025-07-10 19:30:21 +02:00
Benoit Blanchon 0b9a8b6d2b Replace getData()/getResourceManager() with getImpl() 2025-07-10 19:29:32 +02:00
Benoit Blanchon f62d6f26e0 Merge ArrayImpl, CollectionImpl, and ObjectImpl into VariantImpl 2025-07-10 19:29:32 +02:00
Benoit Blanchon 1f1227d595 CollectionImpl: attach to VariantData* instead of CollectionData* 2025-07-10 19:29:32 +02:00
Benoit Blanchon 6f28ec0384 CollectionImpl: add allocVariant(), getVariant(), freeVariant() 2025-07-10 19:29:32 +02:00
Benoit Blanchon 6ba4507252 CollectionImpl: add helper getCollectionData() 2025-07-10 19:28:50 +02:00
Benoit Blanchon a265ef4927 Move CollectionData definition 2025-07-10 19:28:50 +02:00
Benoit Blanchon 8790802ce3 Decouple VariantImpl from ArrayImpl and ObjectImpl 2025-07-10 19:28:50 +02:00
Benoit Blanchon f1b06b588e Move VariantImpl definition to VariantImpl.hpp 2025-07-10 19:28:50 +02:00
Benoit Blanchon 84fcd90658 Extract VariantImpl 2025-07-10 19:28:50 +02:00
Benoit Blanchon bd551fa4ce Extract ArrayImpl, CollectionImpl, and ObjectImpl 2025-07-10 19:27:44 +02:00
Benoit Blanchon d9c6a70595 JsonObject: replace ObjectData* member with VariantData* 2025-07-10 19:17:13 +02:00
Benoit Blanchon b44aa3a8b5 JsonArray: replace ArrayData* member with VariantData* 2025-07-10 19:17:13 +02:00
Benoit Blanchon c2290a2386 JsonObjectConst: replace ObjectData* member with VariantData* 2025-07-10 19:17:13 +02:00
Benoit Blanchon 4457cb7cc5 JsonArrayConst: replace ArrayData* member with VariantData* 2025-07-10 19:17:13 +02:00
Benoit Blanchon 1e0bbd518c Add a pool dedicated to 8-byte values (double/int64_t/uint64_t)
This new pool replaced the "extension" slot where a secondary variant slot was used to store 8-byte values.
2025-07-10 19:17:13 +02:00
Benoit Blanchon cc077c1b63 Store static strings in a dedicated pool
Because a slot id is smaller than a pointer, this change will ultimately allow reducing the slot size.
2025-07-10 19:17:13 +02:00
Benoit Blanchon 509807d3c2 Remove CollectionIterator::nextId_ 2025-07-10 19:16:47 +02:00
Benoit Blanchon c07744dc0d CI: upgrade Windows runner 2025-06-26 20:47:57 +02:00
Benoit Blanchon 733bc4ee82 Set version to 7.4.2 v7.4.2 2025-06-20 09:37:14 +02:00
Benoit Blanchon 9aa77994b4 Remove sponsor Programming Electronics Academy 2025-06-20 08:43:48 +02:00
Benoit Blanchon f051f8328d Undef true and false macros
Replacing `true` with `1` changes `JsonString("ABC", true)` into `JsonString("ABC", 1)`, so all static strings had a length of 1.

This is a workaround for arduino/ArduinoCore-sam#50
Fixes #2181
2025-06-19 13:59:15 +02:00
Benoit Blanchon 411424b74e CI: upgrade clang-tidy 2025-05-20 20:55:01 +02:00
Benoit Blanchon 5e5c287978 CI: upgrade Clang versions 2025-05-20 18:24:46 +02:00
Benoit Blanchon 377cf63075 CI: upgrade runner to ubuntu-22.04 2025-05-20 14:48:42 +02:00
Benoit Blanchon 3252013509 Set version to 7.4.1 v7.4.1 2025-04-11 15:43:42 +02:00