You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am interfacing an existing system that contains a map from numbers to byte strings (major type 2). My first attemt to handle this was to just decode to the type:
Map<Int, ByteArray>
Since the default encoding/decoding will assume ByteArray are "array of data items" (major type 4). Trying to decode a byte string will result in a runtime error like:
Exception in thread "main" kotlinx.serialization.cbor.internal.CborDecodingException: Expected start of array, but found 41
I can not see that there is a way to make a custom encoding/decoding of maps either. And the @ByteString annotation is only applicable to attributes which not will help in this case.
One possible solution for my case would be to be able to configure what the default encoding/decoding of an ByteArray should be in e.g. the CborBuilder just like ignoreUnknownKeys.
PS.
Also, would like to push for the issue #1529 which makes a lot of sense since you with cbor typically interface with embedded systems where signed bytes normally is the odd case.
DS.
I am interfacing an existing system that contains a map from numbers to byte strings (major type 2). My first attemt to handle this was to just decode to the type:
Map<Int, ByteArray>
Since the default encoding/decoding will assume ByteArray are "array of data items" (major type 4). Trying to decode a byte string will result in a runtime error like:
Exception in thread "main" kotlinx.serialization.cbor.internal.CborDecodingException: Expected start of array, but found 41
I can not see that there is a way to make a custom encoding/decoding of maps either. And the @ByteString annotation is only applicable to attributes which not will help in this case.
One possible solution for my case would be to be able to configure what the default encoding/decoding of an ByteArray should be in e.g. the CborBuilder just like ignoreUnknownKeys.
PS.
Also, would like to push for the issue #1529 which makes a lot of sense since you with cbor typically interface with embedded systems where signed bytes normally is the odd case.
DS.
To Reproduce
Run this:
Expected behavior
To not throw an exception and return something that looks like this:
BF # map()
1A 12380000 # unsigned(305659904)
41 # bytes(1)
03 # "\u0003"
FF # primitive()
{305659904: h'03'}
Environment
The text was updated successfully, but these errors were encountered: