docx_rs/reader/
bookmark_start.rs1use std::io::Read;
2use std::str::FromStr;
3
4use super::*;
5
6impl ElementReader for BookmarkStart {
7 fn read<R: Read>(
8 _r: &mut EventReader<R>,
9 attrs: &[OwnedAttribute],
10 ) -> Result<Self, ReaderError> {
11 let mut id: Option<usize> = None;
12 let mut name: Option<String> = None;
13
14 for a in attrs {
15 let local_name = &a.name.local_name;
16 if local_name == "id" {
17 id = Some(usize::from_str(&a.value)?);
18 } else if local_name == "name" {
19 name = Some(a.value.clone());
20 }
21 }
22 if id.is_none() || name.is_none() {
23 return Err(ReaderError::XMLReadError);
24 }
25 Ok(BookmarkStart::new(id.unwrap(), name.unwrap()))
26 }
27}