Commit Graph

26 Commits

Author SHA1 Message Date
Robin Krahl
c0e68c70d1 Never inline map value deserialization
Inlining it means that the deserialization of basic datatypes is inlined
into all deserialization functions, leading to a significant overhead.
2024-10-03 16:07:04 +02:00
Sosthène Guédon
8ce6e24c9a Support multiple versions of heapless and heapless bytes
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)
2024-10-02 15:30:08 +02:00
Robin Krahl
ced13e423a Handle bytes identifier as UTF-8 strings
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.
2024-10-02 12:09:13 +02:00
Sosthène Guédon
a0d0296424 deserialize_identifier: add support for all types expected by serde
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
2024-10-02 12:09:13 +02:00
Sosthène Guédon
da58de381d Add feature for deserializing bytes from an array 2024-10-02 12:04:54 +02:00
Sosthène Guédon
cbd34a5616 deserialize_bytes: accept arrays 2024-10-02 12:04:54 +02:00
Sosthène Guédon
336941c342 Use constants in match statement 2024-10-02 12:04:03 +02:00
Sosthène Guédon
620f8c0c61 Fuzz added support for i64 and fix crash in fuzzing 2024-10-02 12:04:03 +02:00
Sosthène Guédon
0326d75fee Implement deserializing ignored_any 2024-10-02 12:04:03 +02:00
Sosthène Guédon
5d9247c34b Add ?Sized trait bound
Fix #9
2024-10-02 10:34:17 +02:00
Sosthène Guédon
f1774814ca Fix deserialization of u64 2024-09-13 17:18:40 +02:00
Sosthène Guédon
538a6f147f Fix enum struct variant deserialization 2024-09-13 17:18:40 +02:00
Sosthène Guédon
4a8ef46d19 Improve readability with consts 2024-09-13 17:18:40 +02:00
Sosthène Guédon
812cbb8f5d Migrate to edition 2021 2024-09-13 17:18:40 +02:00
Sosthène Guédon
b9c1b9a80c Fix clippy warnings 2024-09-13 17:18:40 +02:00
Sosthène Guédon
c75337e658 Add basic fuzzing 2024-09-13 17:18:40 +02:00
Sosthène Guédon
baf84e4811 Fix enum struct variant deserialization bug 2024-09-13 17:18:40 +02:00
Sosthène Guédon
acf5a84acc Run cargo fmt 2024-09-13 17:18:40 +02:00
Nicolas Stalder
899b74f352 Bump heapless, no more generic-array 0.4.0 2021-06-10 22:56:15 +02:00
Nicolas Stalder
71b72fd6fc Release v0.3.1 0.3.1 2021-04-13 22:10:47 +02:00
Nicolas Stalder
4d55f665aa PRs can't publish the docs 2021-03-19 01:29:02 +01:00
Conor Patrick
f598fc123c add logging features 2021-03-19 01:21:09 +01:00
Nicolas Stalder
fe1541c663 Change names of high-level serialization methods to heapless_bytes::Bytes 2021-03-06 13:20:16 +01:00
Nicolas Stalder
d04819669b Bump heapless, and hence generic-array 2021-02-26 23:59:11 +01:00
Nicolas Stalder
5a9b31874a Fix tests, use Bytes, add GH CI 2021-01-31 16:13:43 +01:00