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 56 57
//! Traits for generically dealing with an encoding framework.
//!
//! The central traits are [Encode] and [Encoder].
//!
//! A type implementing [Encode] can use an [Encoder] to encode itself. This
//! also comes with a derive allowing you to derive high performance encoding
//! associated with native Rust types.
//!
//! ```
//! use musli::Encode;
//!
//! #[derive(Encode)]
//! pub struct Person<'a> {
//! name: &'a str,
//! age: u32,
//! }
//! ```
mod encode;
#[doc(inline)]
pub use self::encode::Encode;
mod encode_trace;
#[doc(inline)]
pub use self::encode_trace::EncodeTrace;
mod encode_bytes;
#[doc(inline)]
pub use self::encode_bytes::EncodeBytes;
mod encode_packed;
#[doc(inline)]
pub use self::encode_packed::EncodePacked;
mod encoder;
#[doc(inline)]
pub use self::encoder::Encoder;
mod sequence_encoder;
#[doc(inline)]
pub use self::sequence_encoder::SequenceEncoder;
mod map_encoder;
#[doc(inline)]
pub use self::map_encoder::MapEncoder;
mod entry_encoder;
#[doc(inline)]
pub use self::entry_encoder::EntryEncoder;
mod entries_encoder;
#[doc(inline)]
pub use self::entries_encoder::EntriesEncoder;
mod variant_encoder;
#[doc(inline)]
pub use self::variant_encoder::VariantEncoder;