1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//! `serde-cs` provides a serialization/deserialization wrapper for comma separated lists.
//!
//! # Examples
//!
//! ## Serialization
//!
//! ```rust
//! use serde_cs::vec::CS;
//! type Csu32 = CS<u32>;
//!
//! let cs: Csu32 = CS(vec![]);
//! let s = serde_json::to_string(&cs).unwrap();
//! assert_eq!(s, r#""""#);
//!
//! let cs: Csu32 = CS(vec![1]);
//! let s = serde_json::to_string(&cs).unwrap();
//! assert_eq!(s, r#""1""#);
//!
//! let cs: Csu32 = CS(vec![1, 2, 3]);
//! let s = serde_json::to_string(&cs).unwrap();
//! assert_eq!(s, r#""1,2,3""#);
//! ```
//!
//!
//! ## Deserialization
//!
//! ```rust
//! use serde_cs::vec::CS;
//! type Csu32 = CS<u32>;
//!
//! let s = r#""""#;
//! let CS(cs): Csu32 = serde_json::from_str(s).unwrap();
//! assert_eq!(cs, vec![0u32; 0]);
//!
//! let s = r#"",,,,""#;
//! let CS(cs): Csu32 = serde_json::from_str(s).unwrap();
//! assert_eq!(cs, vec![0u32; 0]);
//!
//! let s = r#"",,1,,,,,""#;
//! let CS(cs): Csu32 = serde_json::from_str(s).unwrap();
//! assert_eq!(cs, vec![1]);
//!
//! let s = r#"",,1,,,2,,,,""#;
//! let CS(cs): Csu32 = serde_json::from_str(s).unwrap();
//! assert_eq!(cs, vec![1, 2]);
//!
//! let s = r#"",,1,,,a,,,,""#;
//! let res: Result<Csu32, _> = serde_json::from_str(s);
//! assert!(res.is_err());
//! ```

pub mod array;
pub mod vec;