14 releases
0.5.1 | Mar 4, 2023 |
---|---|
0.4.1 | Mar 25, 2022 |
0.3.2 | Mar 11, 2021 |
0.3.1 | Dec 28, 2020 |
0.1.3 | Dec 29, 2018 |
#38 in Encoding
327,605 downloads per month
Used in 758 crates
(156 directly)
12KB
178 lines
serde-big-array
Big array helper for serde. The purpose of this crate is to make (de-)serializing arrays of sizes > 32 easy. This solution is needed until serde adopts const generics support.
Bases on this snippet.
extern crate serde;
#[macro_use]
extern crate serde_derive;
extern crate serde_json;
#[macro_use]
extern crate serde_big_array;
use serde_big_array::BigArray;
#[derive(Serialize, Deserialize)]
struct S {
#[serde(with = "BigArray")]
arr: [u8; 64],
}
#[test]
fn test() {
let s = S { arr: [1; 64] };
let j = serde_json::to_string(&s).unwrap();
let s_back = serde_json::from_str::<S>(&j).unwrap();
assert!(&s.arr[..] == &s_back.arr[..]);
}
Important links:
- Original serde issue requesting large array support
- Const generics support issue on serde
- serde PR to add const generics support
- Rust const generics tracking issue
- Rust complex generic constants tracking issue
MSRV
The minimum supported Rust version (MSRV) is Rust 1.56.0.
License
This crate is distributed under the terms of both the MIT license and the Apache License (Version 2.0), at your option.
See LICENSE-APACHE and LICENSE-MIT for details.
License of your contributions
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~100–330KB