The value is not used (and actually does not provide much insight) but
bloats the error enum – just removing it yields a ~ 5k binary size
increase on nitrokey-3-firmware.
This allows better backwards compatibility and serializing to heapless directly.
Given https://github.com/trussed-dev/cbor-smol/issues/11 I went with a breaking change update
(the `Serializer` field was public and existing implementations are put behind a breaking change)
This patch also removes the bytes-from-array feature: We originally
added it to the fork so that a wrong patched version would cause a
compiler error. Now we can just bump the required minimum version
instead.
Previously, we visited either strings or bytes so that the visitor had
to handle both cases. With this change, we always visit strings so that
the bytes visitor function can be optimized out. This significantly
reduces binary size.
The default serde deserialize derive accepts 3 types for identifiers:
- The name of the field as `str`
- The name of the field as ascii bytes
- The index of the field as u64
This PR changes deserialize_identifier to have compatibility with all of these
This is necessary for https://github.com/Nitrokey/fido-authenticator/issues/57,
which needs compatibility with both the str variant and the index variant