Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
How do I serialize a const generic length array with Serde?
+3
−0
I have the following code:
use serde::{Deserialize, Serialize};
#[derive(Sereialize, Deserialize)]
struct Container<const SIZE: usize> {
contents: [String; SIZE]
}
But I'm getting this error:
error[E0277]: the trait bound `[String; SIZE]: Deserialize<'_>` is not satisfied
--> src\lib.rs:18:5
|
18 | contents: [String; SIZE],
| ^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `[String; SIZE]`
|
= help: the following other types implement trait `Deserialize<'de>`:
&'a [u8]
[T; 0]
[T; 10]
[T; 11]
[T; 12]
[T; 13]
[T; 14]
[T; 15]
and 26 others
note: required by a bound in `_::_serde::__private::de::missing_field`
Seems it's only defined for some specific lengths but not for generic lengths? Is there a way to make this work, ideally without needing to write a custom serializer.
1 comment thread