rmp-serde: Failed to deserialize &[u8]
- Dominant language
- Rust
- Stars
- 1.4k
- Forks
- 162
- PR merge metrics
- No merged PRs in 30d
Description
I have a basic question. I have the following code (rmp-serde version = `0.13.7`):
```rust
#[derive(Debug, Deserialize, Serialize)]
struct Data<'a> {
buf: &'a [u8]
}
fn codec() -> Result<(), Error> {
let buf = b"hello";
let d = Data{buf: buf.as_ref()};
let mut outbuf = Vec::new();
d.serialize(&mut Serializer::new_named(&mut outbuf))?;
let inbuf = outbuf.as_slice();
let mut de = Deserializer::from_slice(inbuf);
let d2: Data = serde::Deserialize::deserialize(&mut de)?;
println!("decoded data = {:?}", d2);
Ok(())
}
```
The deserialization fails with error: `Error: Syntax("invalid type: sequence, expected a borrowed byte array")`. The code works if `buf: &'a [u8]` is changed to `buf: &'a str`.
Does `&'a [u8]` needs a different treatment?
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.