1macro_rules! impl_positioned {
6 ($type:tt) => {
7 impl<'a> crate::Positioned for crate::$type<'a> {
8 fn end(&self) -> usize {
9 self.end
10 }
11
12 fn start(&self) -> usize {
13 self.start
14 }
15 }
16 };
17}
18
19impl_positioned!(DefinitionListItem);
20impl_positioned!(ListItem);
21impl_positioned!(Parameter);
22impl_positioned!(TableCaption);
23impl_positioned!(TableCell);
24impl_positioned!(TableRow);
25
26impl<'a> crate::Positioned for crate::Node<'a> {
27 fn end(&self) -> usize {
28 match *self {
29 crate::Node::Bold { end, .. } => end,
30 crate::Node::BoldItalic { end, .. } => end,
31 crate::Node::Category { end, .. } => end,
32 crate::Node::CharacterEntity { end, .. } => end,
33 crate::Node::Comment { end, .. } => end,
34 crate::Node::DefinitionList { end, .. } => end,
35 crate::Node::EndTag { end, .. } => end,
36 crate::Node::ExternalLink { end, .. } => end,
37 crate::Node::Heading { end, .. } => end,
38 crate::Node::HorizontalDivider { end, .. } => end,
39 crate::Node::Image { end, .. } => end,
40 crate::Node::Italic { end, .. } => end,
41 crate::Node::Link { end, .. } => end,
42 crate::Node::MagicWord { end, .. } => end,
43 crate::Node::OrderedList { end, .. } => end,
44 crate::Node::ParagraphBreak { end, .. } => end,
45 crate::Node::Parameter { end, .. } => end,
46 crate::Node::Preformatted { end, .. } => end,
47 crate::Node::Redirect { end, .. } => end,
48 crate::Node::StartTag { end, .. } => end,
49 crate::Node::Table { end, .. } => end,
50 crate::Node::Tag { end, .. } => end,
51 crate::Node::Template { end, .. } => end,
52 crate::Node::Text { end, .. } => end,
53 crate::Node::UnorderedList { end, .. } => end,
54 }
55 }
56
57 fn start(&self) -> usize {
58 match *self {
59 crate::Node::Bold { start, .. } => start,
60 crate::Node::BoldItalic { start, .. } => start,
61 crate::Node::Category { start, .. } => start,
62 crate::Node::CharacterEntity { start, .. } => start,
63 crate::Node::Comment { start, .. } => start,
64 crate::Node::DefinitionList { start, .. } => start,
65 crate::Node::EndTag { start, .. } => start,
66 crate::Node::ExternalLink { start, .. } => start,
67 crate::Node::Heading { start, .. } => start,
68 crate::Node::HorizontalDivider { start, .. } => start,
69 crate::Node::Image { start, .. } => start,
70 crate::Node::Italic { start, .. } => start,
71 crate::Node::Link { start, .. } => start,
72 crate::Node::MagicWord { start, .. } => start,
73 crate::Node::OrderedList { start, .. } => start,
74 crate::Node::ParagraphBreak { start, .. } => start,
75 crate::Node::Parameter { start, .. } => start,
76 crate::Node::Preformatted { start, .. } => start,
77 crate::Node::Redirect { start, .. } => start,
78 crate::Node::StartTag { start, .. } => start,
79 crate::Node::Table { start, .. } => start,
80 crate::Node::Tag { start, .. } => start,
81 crate::Node::Template { start, .. } => start,
82 crate::Node::Text { start, .. } => start,
83 crate::Node::UnorderedList { start, .. } => start,
84 }
85 }
86}