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