Commit graph

15 commits

Author SHA1 Message Date
4766b7940d Add encoder hook for std::tuple 2025-09-30 20:08:34 +02:00
2e9b507837 Implement a higher-level API on top of the basics 2025-09-27 03:53:07 +02:00
e06b85632a Make all decoder components move-only 2025-09-26 02:54:05 +02:00
ca8750aab2 Refactors
- Refer to std::span<std::uint8_t> as Buffer
- Refer to std::span<const std::uint8_t> as ConstBuffer
- Use more consistent naming for members

These were mostly added so the function prototypes look a bit better.
2025-09-26 02:16:52 +02:00
d5680eaccb Add trailing newline to item print 2025-09-26 02:06:11 +02:00
9bda00793d Add the ability to print a nested item 2025-09-26 01:54:28 +02:00
f383ea9f66 Add the ability to print a nearly arbitrary CBOR encoded value 2025-09-26 01:52:23 +02:00
c3278e807b Support dynamically sized buffers (std::vector) 2025-09-22 02:54:13 +02:00
b65c700c29 Add support for CBOR tags 2025-09-19 18:51:23 +02:00
acf4d93fde Cosmetic naming changes 2025-09-19 02:09:53 +02:00
bec16e493f Streamline parsing of fixed length strings and blobs 2025-09-19 02:06:37 +02:00
257be2e57a Remove cmath header 2025-09-19 01:52:32 +02:00
228854a31d Hide some decoder implementation details from public header files 2025-09-19 01:52:13 +02:00
11636af323 Initial decoder implementation, including a basic two-way test
The implementation is still far from perfect, it's at beast a proof of concept. There are many edge cases that are definitely still not covered, and many rough edges in the quality of the code.

I am also not convinced that exceptions are the best error handling method for this, particularly for publicly exposes interfaces that may be much more susceptible to DoS attacks due to malformed input (and the resulting overhead in handling exceptions).
2025-09-18 23:23:33 +02:00
4159fc4643 Basic project structure, basic encoder implementation 2025-09-14 13:58:26 +02:00