@@ -15,17 +15,49 @@ mod map;
1515mod seq;
1616mod var;
1717
18- pub struct Deserializer < R : Read > {
19- depth : usize ,
20- reader : EventReader < R > ,
21- peeked : Option < XmlEvent > ,
22- is_map_value : bool ,
23- }
24-
18+ /// A convenience method for deserialize some object from a string.
19+ ///
20+ /// ```rust
21+ /// # #[macro_use]
22+ /// # extern crate serde_derive;
23+ /// # extern crate serde;
24+ /// # extern crate serde_xml_rs;
25+ /// # use serde_xml_rs::from_str;
26+ /// #[derive(Debug, Deserialize, PartialEq)]
27+ /// struct Item {
28+ /// name: String,
29+ /// source: String,
30+ /// }
31+ /// # fn main() {
32+ /// let s = r##"<item name="hello" source="world.rs" />"##;
33+ /// let item: Item = from_str(s).unwrap();
34+ /// assert_eq!(item, Item { name: "hello".to_string(),source: "world.rs".to_string()});
35+ /// # }
36+ /// ```
2537pub fn from_str < ' de , T : de:: Deserialize < ' de > > ( s : & str ) -> Result < T > {
26- deserialize ( s. as_bytes ( ) )
38+ from_reader ( s. as_bytes ( ) )
2739}
2840
41+
42+ /// A convenience method for deserialize some object from a reader.
43+ ///
44+ /// ```rust
45+ /// # #[macro_use]
46+ /// # extern crate serde_derive;
47+ /// # extern crate serde;
48+ /// # extern crate serde_xml_rs;
49+ /// # use serde_xml_rs::from_reader;
50+ /// #[derive(Debug, Deserialize, PartialEq)]
51+ /// struct Item {
52+ /// name: String,
53+ /// source: String,
54+ /// }
55+ /// # fn main() {
56+ /// let s = r##"<item name="hello" source="world.rs" />"##;
57+ /// let item: Item = from_reader(s.as_bytes()).unwrap();
58+ /// assert_eq!(item, Item { name: "hello".to_string(),source: "world.rs".to_string()});
59+ /// # }
60+ /// ```
2961pub fn from_reader < ' de , R : Read , T : Deserialize < ' de > > ( reader : R ) -> Result < T > {
3062 T :: deserialize ( & mut Deserializer :: new_from_reader ( reader) )
3163}
@@ -34,6 +66,13 @@ pub fn deserialize<'de, R: Read, T: Deserialize<'de>>(reader: R) -> Result<T> {
3466 from_reader ( reader)
3567}
3668
69+ pub struct Deserializer < R : Read > {
70+ depth : usize ,
71+ reader : EventReader < R > ,
72+ peeked : Option < XmlEvent > ,
73+ is_map_value : bool ,
74+ }
75+
3776impl < ' de , R : Read > Deserializer < R > {
3877 pub fn new ( reader : EventReader < R > ) -> Self {
3978 Deserializer {
0 commit comments