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
54
55
//! CSV serialization and deserialization for `no_std` crates.
//!
//! `serde-csv-core` builds upon [`csv-core`](https://crates.io/crates/csv-core) crate.
//!
//! # Serialization
//! [`to_slice`] serializes one record at a time.
//! ```
//! use heapless::String;
//!
//! #[derive(serde::Serialize)]
//! struct Record {
//!     pub country: String<32>,
//!     pub city: String<32>,
//!     pub population: u32,
//! }
//!
//! let records = [
//!     Record {
//!         country: "Poland".into(),
//!         city: "Cracow".into(),
//!         population: 766_683,
//!     },
//!     Record {
//!         country: "Japan".into(),
//!         city: "Tokyo".into(),
//!         population: 13_515_271,
//!     },
//! ];
//!
//! let mut writer = csv_core::Writer::new();
//! let mut buf = [0; 128];
//! let mut len = 0;
//!
//! for record in records {
//!     len += serde_csv_core::to_slice(&mut writer, &record, &mut buf[len..])?;
//! }
//!
//! assert_eq!(&buf[..len], b"Poland,Cracow,766683\nJapan,Tokyo,13515271\n");
//! # Ok::<(), serde_csv_core::ser::Error>(())
//! ```
//!
//! # Deserialization
//! Not yet implemented.
#![no_std]

pub mod ser;

#[doc(inline)]
pub use ser::to_slice;
#[cfg(feature = "heapless")]
#[doc(inline)]
pub use ser::to_vec;

#[cfg(feature = "heapless")]
pub use heapless;