Related to issue #352, it doesn't fix things, but it's a start.
HumanBinaryData uses a more efficient "bytes" format when using non-human-readable serialisation formats (like CBOR). The deserialiser still uses deserialize_any – I haven't got a great way around this yet.
I've done a few things differently to Base64UrlSafeData; for example, this doesn't implement Display or FromStr – they're different to what Vec<u8> does, and we should move away from this (this will be the focus of #356).
It also implements Deref and DerefMut, which should make the type more transparent – and all of the common impls are in macros.
I've added bytes support to Base64UrlSafeData, so it can read what HumanBinaryData produces. Unfortunately this makes migration a two-step process.
While we're here, this makes serde_json a dev-dependency of base64urlsafedata, because it's only used in tests; and this also adds a bunch more tests for expected input formats.
[x] cargo test has been run and passes
[x] documentation has been updated with relevant examples (if relevant)
Related to issue #352, it doesn't fix things, but it's a start.
HumanBinaryData
uses a more efficient "bytes" format when using non-human-readable serialisation formats (like CBOR). The deserialiser still usesdeserialize_any
– I haven't got a great way around this yet.I've done a few things differently to
Base64UrlSafeData
; for example, this doesn't implementDisplay
orFromStr
– they're different to whatVec<u8>
does, and we should move away from this (this will be the focus of #356).It also implements
Deref
andDerefMut
, which should make the type more transparent – and all of the common impls are in macros.I've added
bytes
support toBase64UrlSafeData
, so it can read whatHumanBinaryData
produces. Unfortunately this makes migration a two-step process.While we're here, this makes
serde_json
a dev-dependency ofbase64urlsafedata
, because it's only used in tests; and this also adds a bunch more tests for expected input formats.