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
//! This crate is a Rust library for using the [Serde](https://github.com/serde-rs/serde)
//! serialization framework with bencode data.
//!
//! # Examples
//!
//! ```
//! use serde_derive::{Serialize, Deserialize};
//!
//! #[derive(Serialize, Deserialize, PartialEq, Eq, Debug)]
//! struct Product {
//! name: String,
//! price: u32,
//! }
//!
//! fn main() -> Result<(), Box<dyn std::error::Error>> {
//! let apple = Product {
//! name: "Apple".to_string(),
//! price: 130,
//! };
//!
//! let serialized = serde_bencode::to_string(&apple)?;
//!
//! // cspell:disable-next-line
//! assert_eq!(serialized, "d4:name5:Apple5:pricei130ee".to_string());
//!
//! let deserialized: Product = serde_bencode::from_str(&serialized)?;
//!
//! assert_eq!(
//! deserialized,
//! Product {
//! name: "Apple".to_string(),
//! price: 130,
//! }
//! );
//!
//! Ok(())
//! }
//! ```
pub mod de;
pub mod error;
pub mod ser;
pub mod value;
pub use de::{from_bytes, from_str, Deserializer};
pub use error::{Error, Result};
pub use ser::{to_bytes, to_string, Serializer};