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
#![warn(missing_docs)] #![no_std] //! Embedded bincode //! //! This crate allows [bincode] to be used on embedded devices that run in `#![no_std]`. //! //! Currently this is not possible because bincode requires that the given types implement //! `std::io::Write` or `std::io::Read`, and bincode supports (de)serializing `alloc` types //! like `Vec` and `String`. //! //! This crate is an alternative (but mostly similar) for bincode that works on microcontrollers. //! It does this by not supporting types like `Vec` and `String`. //! //! Types like `&str` and `&[u8]` are supported. This is possible because `CoreRead` has a //! requirement that the data being read, has to be persisted somewhere. Usually this is done by a //! fixed-size backing array. The `&str` and `&[u8]` then simply point to a position in that //! buffer. #[cfg(feature = "alloc")] extern crate alloc; #[cfg(feature = "std")] extern crate std; /// Contains helper structs to customize the way your structs are (de)serialized. pub mod config; mod buffer_writer; mod deserialize; mod serialize; mod size_checker; mod traits; pub use self::buffer_writer::{BufferWriter, BufferWriterError}; pub use self::config::DefaultOptions; pub use self::deserialize::{deserialize, DeserializeError}; pub use self::serialize::{serialize, serialize_size, SerializeError}; pub use self::traits::{CoreRead, CoreWrite};