diff options
| author | HampusM <hampus@hampusmat.com> | 2023-05-14 17:53:46 +0200 | 
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2023-05-14 17:53:46 +0200 | 
| commit | bcfded3bf7c7daab8d7e8617261756cc15ca6227 (patch) | |
| tree | 105f9bf371070db3edcedd3a17e76719d9da24ed /src | |
| parent | 221fce68e36bf1926e93180bd4467f42cb1774d6 (diff) | |
docs: add example to crate root documentation
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib.rs | 61 | 
1 files changed, 61 insertions, 0 deletions
| @@ -1,4 +1,65 @@  //! XML is awful. +//! +//! # Examples +//! ``` +//! use std::convert::Infallible; +//! +//! use xml_stinks::deserializer::buffered::Buffered as BufferedDeserializer; +//! use xml_stinks::deserializer::{Deserializer, IgnoreEnd}; +//! use xml_stinks::tagged::TagStart; +//! use xml_stinks::DeserializeTagged; +//! +//! let mut deserializer = +//!     BufferedDeserializer::new("<foo>Baz<bar>DF</bar></foo>".as_bytes()); +//! +//! let foo = deserializer.de_tag::<Foo>("foo", IgnoreEnd::No).unwrap(); +//! +//! assert_eq!(&foo.name, "Baz"); +//! assert_eq!(foo.bar.num, 223); +//! +//! struct Foo +//! { +//!     name: String, +//!     bar: Bar, +//! } +//! +//! impl DeserializeTagged for Foo +//! { +//!     type Error = Infallible; +//! +//!     fn deserialize<TDeserializer: Deserializer>( +//!         start: &TagStart, +//!         deserializer: &mut TDeserializer, +//!     ) -> Result<Self, Self::Error> +//!     { +//!         let name = deserializer.de_text().unwrap(); +//! +//!         let bar = deserializer.de_tag::<Bar>("bar", IgnoreEnd::No).unwrap(); +//! +//!         Ok(Self { name, bar }) +//!     } +//! } +//! +//! struct Bar +//! { +//!     num: u32, +//! } +//! +//! impl DeserializeTagged for Bar +//! { +//!     type Error = Infallible; +//! +//!     fn deserialize<TDeserializer: Deserializer>( +//!         start: &TagStart, +//!         deserializer: &mut TDeserializer, +//!     ) -> Result<Self, Self::Error> +//!     { +//!         let num = u32::from_str_radix(&deserializer.de_text().unwrap(), 16).unwrap(); +//! +//!         Ok(Self { num }) +//!     } +//! } +//! ```  #![deny(clippy::all, clippy::pedantic, unsafe_code, missing_docs)]  use crate::deserializer::{Deserializer, Error as DeserializerError, MaybeStatic};  use crate::tagged::TagStart; | 
