🔖 zvariant 5.0.0
·
1123 commits
to main
since this release
- ⚡️
Signaturenow an enum representing the D-Bus signature in a parsed form. - ⚡️ Replace
Type::signaturemethod with a const namedSIGNATURE. This greatly improves the
(de)serialization performance, in some cases even up by 94%. - ✨ Implement
Typefor:- cells.
- remaining std collections.
- usize and isize.
- socket addresses.
- weak pointers.
- ranges.
- atomics.
- wrapper types.
chrono::{Month, NaiveTime, Weekday}.caminoutf-8 path types.
- 🚸 Allow
zbusattribute in macros. - ✨
Typederive macro now validates user provided signature string at compile-time. - 🚚 Rename DynamicType::dynamic_signature to signature.
- ⬆️ Bump MSRV to 1.81.
- 🔥 Drop API deprecated in 4.0.
- 💥 Drop now unneeded
CompleteTypetype. - 🥅 Error out on attempt to create an empty structure.
- 🔥 Drop
Defaultimpl forStructure. An empty structure is against the specification and we
shouldn't allow it to be created, let alone be a default value. Users should use StructureBuilder
to create a structure. - 🏷️ Add
Error::EmptyStructure. - 🙈 Hide
gvariant::Deserializerfrom public API. - 🔥 Drop unnecessary checks for
option-as-arrayfeature. - ⚡️ Don't check strings for embedded null bytes. In most cases (I'd say at least 99.9% of
them), this is needless. They've a non-zero cost, which is high enough to be noticeable in case of
a lot of strings being serialized. - 🐛 Fix deserialization of recursive variants from JSON. JSON will decode a variant as a map and
ourValue'sVisitorimplementation wasn't handling that. This resulted in us not being able
to decode back our own generated JSON in case of variants inside variants. #549 - 🚚 Drop weird Value type and field names when (de)serializing. This is no longer needed. While
this doesn't completely fix #176, this goes as far as we can IMO. For D-Bus we need the signature
to be able to derialize any data to a Value. - ⚡️ Micro optimization of byte arrays.
- 🔥 Basic::alignment now implemented for you.
- 🏷️ Add Error::InvalidSignature variant.
- 📝 Better document
Strtype. - ➕ New dependencies
nom(indirectly throughzvariant_utils).zvariant_utils.