1use document_tree::HasChildren as _;
2use document_tree::element_categories as c;
3use document_tree::elements as e;
4
5pub trait Visit<'tree> {
6 fn visit(&mut self, e: &'tree e::Document) {
8 for c in e.children() {
9 self.visit_structural_sub_element(c);
10 }
11 }
12
13 fn visit_structural_sub_element(&mut self, c: &'tree c::StructuralSubElement) {
18 use c::StructuralSubElement as S;
19 match c {
20 S::Title(e) => self.visit_title(e),
21 S::Subtitle(e) => self.visit_subtitle(e),
22 S::Decoration(e) => self.visit_decoration(e),
23 S::Docinfo(e) => self.visit_docinfo(e),
24 S::SubStructure(e) => self.visit_substructure(e),
25 }
26 }
27 fn visit_substructure(&mut self, c: &'tree c::SubStructure) {
28 use c::SubStructure as S;
29 match c {
30 S::Topic(e) => self.visit_topic(e),
31 S::Sidebar(e) => self.visit_sidebar(e),
32 S::Transition(e) => self.visit_transition(e),
33 S::Section(e) => self.visit_section(e),
34 S::BodyElement(e) => self.visit_body_element(e),
35 }
36 }
37 fn visit_body_element(&mut self, c: &'tree c::BodyElement) {
38 use c::BodyElement as B;
39 match c {
40 B::Paragraph(e) => self.visit_paragraph(e),
41 B::LiteralBlock(e) => self.visit_literal_block(e),
42 B::DoctestBlock(e) => self.visit_doctest_block(e),
43 B::MathBlock(e) => self.visit_math_block(e),
44 B::Rubric(e) => self.visit_rubric(e),
45 B::SubstitutionDefinition(e) => self.visit_substitution_definition(e),
46 B::Comment(e) => self.visit_comment(e),
47 B::Pending(e) => self.visit_pending(e),
48 B::Target(e) => self.visit_target(e),
49 B::Raw(e) => self.visit_raw(e),
50 B::Image(e) => self.visit_image(e),
51 B::Compound(e) => self.visit_compound(e),
52 B::Container(e) => self.visit_container(e),
53 B::BulletList(e) => self.visit_bullet_list(e),
54 B::EnumeratedList(e) => self.visit_enumerated_list(e),
55 B::DefinitionList(e) => self.visit_definition_list(e),
56 B::FieldList(e) => self.visit_field_list(e),
57 B::OptionList(e) => self.visit_option_list(e),
58 B::LineBlock(e) => self.visit_line_block(e),
59 B::BlockQuote(e) => self.visit_block_quote(e),
60 B::Admonition(e) => self.visit_admonition(e),
61 B::Attention(e) => self.visit_attention(e),
62 B::Hint(e) => self.visit_hint(e),
63 B::Note(e) => self.visit_note(e),
64 B::Caution(e) => self.visit_caution(e),
65 B::Danger(e) => self.visit_danger(e),
66 B::Error(e) => self.visit_error(e),
67 B::Important(e) => self.visit_important(e),
68 B::Tip(e) => self.visit_tip(e),
69 B::Warning(e) => self.visit_warning(e),
70 B::Footnote(e) => self.visit_footnote(e),
71 B::Citation(e) => self.visit_citation(e),
72 B::SystemMessage(e) => self.visit_system_message(e),
73 B::Figure(e) => self.visit_figure(e),
74 B::Table(e) => self.visit_table(e),
75 }
76 }
77 fn visit_bibliographic_element(&mut self, c: &'tree c::BibliographicElement) {
78 use c::BibliographicElement as B;
79 match c {
80 B::Authors(e) => self.visit_authors(e),
81 B::Author(e) => self.visit_author(e),
82 B::Organization(e) => self.visit_organization(e),
83 B::Address(e) => self.visit_address(e),
84 B::Contact(e) => self.visit_contact(e),
85 B::Version(e) => self.visit_version(e),
86 B::Revision(e) => self.visit_revision(e),
87 B::Status(e) => self.visit_status(e),
88 B::Date(e) => self.visit_date(e),
89 B::Copyright(e) => self.visit_copyright(e),
90 B::Field(e) => self.visit_field(e),
91 }
92 }
93 fn visit_text_or_inline_element(&mut self, c: &'tree c::TextOrInlineElement) {
94 use c::TextOrInlineElement as T;
95 match c {
96 T::String(e) => self.visit_string(e),
97 T::Emphasis(e) => self.visit_emphasis(e),
98 T::Strong(e) => self.visit_strong(e),
99 T::Literal(e) => self.visit_literal(e),
100 T::Reference(e) => self.visit_reference(e),
101 T::FootnoteReference(e) => self.visit_footnote_reference(e),
102 T::CitationReference(e) => self.visit_citation_reference(e),
103 T::SubstitutionReference(e) => self.visit_substitution_reference(e),
104 T::TitleReference(e) => self.visit_title_reference(e),
105 T::Abbreviation(e) => self.visit_abbreviation(e),
106 T::Acronym(e) => self.visit_acronym(e),
107 T::Superscript(e) => self.visit_superscript(e),
108 T::Subscript(e) => self.visit_subscript(e),
109 T::Inline(e) => self.visit_inline(e),
110 T::Problematic(e) => self.visit_problematic(e),
111 T::Generated(e) => self.visit_generated(e),
112 T::Math(e) => self.visit_math(e),
113 T::TargetInline(e) => self.visit_target_inline(e),
114 T::RawInline(e) => self.visit_raw_inline(e),
115 T::ImageInline(e) => self.visit_image_inline(e),
116 }
117 }
118 fn visit_author_info(&mut self, c: &'tree c::AuthorInfo) {
119 use c::AuthorInfo as A;
120 match c {
121 A::Author(e) => self.visit_author(e),
122 A::Organization(e) => self.visit_organization(e),
123 A::Address(e) => self.visit_address(e),
124 A::Contact(e) => self.visit_contact(e),
125 }
126 }
127 fn visit_decoration_element(&mut self, c: &'tree c::DecorationElement) {
128 use c::DecorationElement as D;
129 match c {
130 D::Header(e) => self.visit_header(e),
131 D::Footer(e) => self.visit_footer(e),
132 }
133 }
134 fn visit_sub_topic(&mut self, c: &'tree c::SubTopic) {
135 use c::SubTopic as S;
136 match c {
137 S::Title(e) => self.visit_title(e),
138 S::BodyElement(e) => self.visit_body_element(e),
139 }
140 }
141 fn visit_sub_sidebar(&mut self, c: &'tree c::SubSidebar) {
142 use c::SubSidebar as S;
143 match c {
144 S::Topic(e) => self.visit_topic(e),
145 S::Title(e) => self.visit_title(e),
146 S::Subtitle(e) => self.visit_subtitle(e),
147 S::BodyElement(e) => self.visit_body_element(e),
148 }
149 }
150 fn visit_sub_dl_item(&mut self, c: &'tree c::SubDLItem) {
151 use c::SubDLItem as S;
152 match c {
153 S::Term(e) => self.visit_term(e),
154 S::Classifier(e) => self.visit_classifier(e),
155 S::Definition(e) => self.visit_definition(e),
156 }
157 }
158 fn visit_sub_field(&mut self, c: &'tree c::SubField) {
159 use c::SubField as S;
160 match c {
161 S::FieldName(e) => self.visit_field_name(e),
162 S::FieldBody(e) => self.visit_field_body(e),
163 }
164 }
165 fn visit_sub_option_list_item(&mut self, c: &'tree c::SubOptionListItem) {
166 use c::SubOptionListItem as S;
167 match c {
168 S::OptionGroup(e) => self.visit_option_group(e),
169 S::Description(e) => self.visit_description(e),
170 }
171 }
172 fn visit_sub_option(&mut self, c: &'tree c::SubOption) {
173 use c::SubOption as S;
174 match c {
175 S::OptionString(e) => self.visit_option_string(e),
176 S::OptionArgument(e) => self.visit_option_argument(e),
177 }
178 }
179 fn visit_sub_line_block(&mut self, c: &'tree c::SubLineBlock) {
180 use c::SubLineBlock as S;
181 match c {
182 S::LineBlock(e) => self.visit_line_block(e),
183 S::Line(e) => self.visit_line(e),
184 }
185 }
186 fn visit_sub_block_quote(&mut self, c: &'tree c::SubBlockQuote) {
187 use c::SubBlockQuote as S;
188 match c {
189 S::Attribution(e) => self.visit_attribution(e),
190 S::BodyElement(e) => self.visit_body_element(e),
191 }
192 }
193 fn visit_sub_footnote(&mut self, c: &'tree c::SubFootnote) {
194 use c::SubFootnote as S;
195 match c {
196 S::Label(e) => self.visit_label(e),
197 S::BodyElement(e) => self.visit_body_element(e),
198 }
199 }
200 fn visit_sub_figure(&mut self, c: &'tree c::SubFigure) {
201 use c::SubFigure as S;
202 match c {
203 S::Caption(e) => self.visit_caption(e),
204 S::Legend(e) => self.visit_legend(e),
205 S::BodyElement(e) => self.visit_body_element(e),
206 }
207 }
208 fn visit_sub_table(&mut self, c: &'tree c::SubTable) {
209 use c::SubTable as S;
210 match c {
211 S::Title(e) => self.visit_title(e),
212 S::TableGroup(e) => self.visit_table_group(e),
213 }
214 }
215 fn visit_sub_table_group(&mut self, c: &'tree c::SubTableGroup) {
216 use c::SubTableGroup as S;
217 match c {
218 S::TableColspec(e) => self.visit_table_colspec(e),
219 S::TableHead(e) => self.visit_table_head(e),
220 S::TableBody(e) => self.visit_table_body(e),
221 }
222 }
223
224 fn visit_section(&mut self, e: &'tree e::Section) {
230 for c in e.children() {
231 self.visit_structural_sub_element(c);
232 }
233 }
234 fn visit_topic(&mut self, e: &'tree e::Topic) {
235 for c in e.children() {
236 self.visit_sub_topic(c);
237 }
238 }
239 fn visit_sidebar(&mut self, e: &'tree e::Sidebar) {
240 for c in e.children() {
241 self.visit_sub_sidebar(c);
242 }
243 }
244
245 fn visit_title(&mut self, e: &'tree e::Title) {
247 for c in e.children() {
248 self.visit_text_or_inline_element(c);
249 }
250 }
251 fn visit_subtitle(&mut self, e: &'tree e::Subtitle) {
252 for c in e.children() {
253 self.visit_text_or_inline_element(c);
254 }
255 }
256 fn visit_decoration(&mut self, e: &'tree e::Decoration) {
257 for c in e.children() {
258 self.visit_decoration_element(c);
259 }
260 }
261 fn visit_docinfo(&mut self, e: &'tree e::Docinfo) {
262 for c in e.children() {
263 self.visit_bibliographic_element(c);
264 }
265 }
266 fn visit_transition(&mut self, _: &'tree e::Transition) {}
267
268 fn visit_author(&mut self, e: &'tree e::Author) {
270 for c in e.children() {
271 self.visit_text_or_inline_element(c);
272 }
273 }
274 fn visit_authors(&mut self, e: &'tree e::Authors) {
275 for c in e.children() {
276 self.visit_author_info(c);
277 }
278 }
279 fn visit_organization(&mut self, e: &'tree e::Organization) {
280 for c in e.children() {
281 self.visit_text_or_inline_element(c);
282 }
283 }
284 fn visit_address(&mut self, e: &'tree e::Address) {
285 for c in e.children() {
286 self.visit_text_or_inline_element(c);
287 }
288 }
289 fn visit_contact(&mut self, e: &'tree e::Contact) {
290 for c in e.children() {
291 self.visit_text_or_inline_element(c);
292 }
293 }
294 fn visit_version(&mut self, e: &'tree e::Version) {
295 for c in e.children() {
296 self.visit_text_or_inline_element(c);
297 }
298 }
299 fn visit_revision(&mut self, e: &'tree e::Revision) {
300 for c in e.children() {
301 self.visit_text_or_inline_element(c);
302 }
303 }
304 fn visit_status(&mut self, e: &'tree e::Status) {
305 for c in e.children() {
306 self.visit_text_or_inline_element(c);
307 }
308 }
309 fn visit_date(&mut self, e: &'tree e::Date) {
310 for c in e.children() {
311 self.visit_text_or_inline_element(c);
312 }
313 }
314 fn visit_copyright(&mut self, e: &'tree e::Copyright) {
315 for c in e.children() {
316 self.visit_text_or_inline_element(c);
317 }
318 }
319 fn visit_field(&mut self, e: &'tree e::Field) {
320 for c in e.children() {
321 self.visit_sub_field(c);
322 }
323 }
324
325 fn visit_header(&mut self, e: &'tree e::Header) {
327 for c in e.children() {
328 self.visit_body_element(c);
329 }
330 }
331 fn visit_footer(&mut self, e: &'tree e::Footer) {
332 for c in e.children() {
333 self.visit_body_element(c);
334 }
335 }
336
337 fn visit_paragraph(&mut self, e: &'tree e::Paragraph) {
339 for c in e.children() {
340 self.visit_text_or_inline_element(c);
341 }
342 }
343 fn visit_literal_block(&mut self, e: &'tree e::LiteralBlock) {
344 for c in e.children() {
345 self.visit_text_or_inline_element(c);
346 }
347 }
348 fn visit_doctest_block(&mut self, e: &'tree e::DoctestBlock) {
349 for c in e.children() {
350 self.visit_text_or_inline_element(c);
351 }
352 }
353 fn visit_math_block(&mut self, e: &'tree e::MathBlock) {
354 for c in e.children() {
355 self.visit_string(c);
356 }
357 }
358 fn visit_rubric(&mut self, e: &'tree e::Rubric) {
359 for c in e.children() {
360 self.visit_text_or_inline_element(c);
361 }
362 }
363 fn visit_substitution_definition(&mut self, e: &'tree e::SubstitutionDefinition) {
364 for c in e.children() {
365 self.visit_text_or_inline_element(c);
366 }
367 }
368 fn visit_comment(&mut self, e: &'tree e::Comment) {
369 for c in e.children() {
370 self.visit_text_or_inline_element(c);
371 }
372 }
373 fn visit_pending(&mut self, _: &'tree e::Pending) {}
374 fn visit_target(&mut self, _: &'tree e::Target) {}
375 fn visit_raw(&mut self, e: &'tree e::Raw) {
376 for c in e.children() {
377 self.visit_string(c);
378 }
379 }
380 fn visit_image(&mut self, _: &'tree e::Image) {}
381
382 fn visit_compound(&mut self, e: &'tree e::Compound) {
384 for c in e.children() {
385 self.visit_body_element(c);
386 }
387 }
388 fn visit_container(&mut self, e: &'tree e::Container) {
389 for c in e.children() {
390 self.visit_body_element(c);
391 }
392 }
393 fn visit_bullet_list(&mut self, e: &'tree e::BulletList) {
394 for c in e.children() {
395 self.visit_list_item(c);
396 }
397 }
398 fn visit_enumerated_list(&mut self, e: &'tree e::EnumeratedList) {
399 for c in e.children() {
400 self.visit_list_item(c);
401 }
402 }
403 fn visit_definition_list(&mut self, e: &'tree e::DefinitionList) {
404 for c in e.children() {
405 self.visit_definition_list_item(c);
406 }
407 }
408 fn visit_field_list(&mut self, e: &'tree e::FieldList) {
409 for c in e.children() {
410 self.visit_field(c);
411 }
412 }
413 fn visit_option_list(&mut self, e: &'tree e::OptionList) {
414 for c in e.children() {
415 self.visit_option_list_item(c);
416 }
417 }
418 fn visit_line_block(&mut self, e: &'tree e::LineBlock) {
419 for c in e.children() {
420 self.visit_sub_line_block(c);
421 }
422 }
423 fn visit_block_quote(&mut self, e: &'tree e::BlockQuote) {
424 for c in e.children() {
425 self.visit_sub_block_quote(c);
426 }
427 }
428 fn visit_admonition(&mut self, e: &'tree e::Admonition) {
429 for c in e.children() {
430 self.visit_sub_topic(c);
431 }
432 }
433 fn visit_attention(&mut self, e: &'tree e::Attention) {
434 for c in e.children() {
435 self.visit_body_element(c);
436 }
437 }
438 fn visit_hint(&mut self, e: &'tree e::Hint) {
439 for c in e.children() {
440 self.visit_body_element(c);
441 }
442 }
443 fn visit_note(&mut self, e: &'tree e::Note) {
444 for c in e.children() {
445 self.visit_body_element(c);
446 }
447 }
448 fn visit_caution(&mut self, e: &'tree e::Caution) {
449 for c in e.children() {
450 self.visit_body_element(c);
451 }
452 }
453 fn visit_danger(&mut self, e: &'tree e::Danger) {
454 for c in e.children() {
455 self.visit_body_element(c);
456 }
457 }
458 fn visit_error(&mut self, e: &'tree e::Error) {
459 for c in e.children() {
460 self.visit_body_element(c);
461 }
462 }
463 fn visit_important(&mut self, e: &'tree e::Important) {
464 for c in e.children() {
465 self.visit_body_element(c);
466 }
467 }
468 fn visit_tip(&mut self, e: &'tree e::Tip) {
469 for c in e.children() {
470 self.visit_body_element(c);
471 }
472 }
473 fn visit_warning(&mut self, e: &'tree e::Warning) {
474 for c in e.children() {
475 self.visit_body_element(c);
476 }
477 }
478 fn visit_footnote(&mut self, e: &'tree e::Footnote) {
479 for c in e.children() {
480 self.visit_sub_footnote(c);
481 }
482 }
483 fn visit_citation(&mut self, e: &'tree e::Citation) {
484 for c in e.children() {
485 self.visit_sub_footnote(c);
486 }
487 }
488 fn visit_system_message(&mut self, e: &'tree e::SystemMessage) {
489 for c in e.children() {
490 self.visit_body_element(c);
491 }
492 }
493 fn visit_figure(&mut self, e: &'tree e::Figure) {
494 for c in e.children() {
495 self.visit_sub_figure(c);
496 }
497 }
498 fn visit_table(&mut self, e: &'tree e::Table) {
499 for c in e.children() {
500 self.visit_sub_table(c);
501 }
502 }
503
504 fn visit_table_group(&mut self, e: &'tree e::TableGroup) {
506 for c in e.children() {
507 self.visit_sub_table_group(c);
508 }
509 }
510 fn visit_table_head(&mut self, e: &'tree e::TableHead) {
511 for c in e.children() {
512 self.visit_table_row(c);
513 }
514 }
515 fn visit_table_body(&mut self, e: &'tree e::TableBody) {
516 for c in e.children() {
517 self.visit_table_row(c);
518 }
519 }
520 fn visit_table_row(&mut self, e: &'tree e::TableRow) {
521 for c in e.children() {
522 self.visit_table_entry(c);
523 }
524 }
525 fn visit_table_entry(&mut self, e: &'tree e::TableEntry) {
526 for c in e.children() {
527 self.visit_body_element(c);
528 }
529 }
530 fn visit_table_colspec(&mut self, _: &'tree e::TableColspec) {}
531
532 fn visit_list_item(&mut self, e: &'tree e::ListItem) {
534 for c in e.children() {
535 self.visit_body_element(c);
536 }
537 }
538 fn visit_definition_list_item(&mut self, e: &'tree e::DefinitionListItem) {
539 for c in e.children() {
540 self.visit_sub_dl_item(c);
541 }
542 }
543 fn visit_term(&mut self, e: &'tree e::Term) {
544 for c in e.children() {
545 self.visit_text_or_inline_element(c);
546 }
547 }
548 fn visit_classifier(&mut self, e: &'tree e::Classifier) {
549 for c in e.children() {
550 self.visit_text_or_inline_element(c);
551 }
552 }
553 fn visit_definition(&mut self, e: &'tree e::Definition) {
554 for c in e.children() {
555 self.visit_body_element(c);
556 }
557 }
558 fn visit_field_name(&mut self, e: &'tree e::FieldName) {
559 for c in e.children() {
560 self.visit_text_or_inline_element(c);
561 }
562 }
563 fn visit_field_body(&mut self, e: &'tree e::FieldBody) {
564 for c in e.children() {
565 self.visit_body_element(c);
566 }
567 }
568 fn visit_option_list_item(&mut self, e: &'tree e::OptionListItem) {
569 for c in e.children() {
570 self.visit_sub_option_list_item(c);
571 }
572 }
573 fn visit_option_group(&mut self, e: &'tree e::OptionGroup) {
574 for c in e.children() {
575 self.visit_option(c);
576 }
577 }
578 fn visit_description(&mut self, e: &'tree e::Description) {
579 for c in e.children() {
580 self.visit_body_element(c);
581 }
582 }
583 fn visit_option(&mut self, e: &'tree e::Option_) {
584 for c in e.children() {
585 self.visit_sub_option(c);
586 }
587 }
588 fn visit_option_string(&mut self, e: &'tree e::OptionString) {
589 for c in e.children() {
590 self.visit_string(c);
591 }
592 }
593 fn visit_option_argument(&mut self, e: &'tree e::OptionArgument) {
594 for c in e.children() {
595 self.visit_string(c);
596 }
597 }
598 fn visit_line(&mut self, e: &'tree e::Line) {
599 for c in e.children() {
600 self.visit_text_or_inline_element(c);
601 }
602 }
603 fn visit_attribution(&mut self, e: &'tree e::Attribution) {
604 for c in e.children() {
605 self.visit_text_or_inline_element(c);
606 }
607 }
608 fn visit_label(&mut self, e: &'tree e::Label) {
609 for c in e.children() {
610 self.visit_text_or_inline_element(c);
611 }
612 }
613 fn visit_caption(&mut self, e: &'tree e::Caption) {
614 for c in e.children() {
615 self.visit_text_or_inline_element(c);
616 }
617 }
618 fn visit_legend(&mut self, e: &'tree e::Legend) {
619 for c in e.children() {
620 self.visit_body_element(c);
621 }
622 }
623
624 fn visit_string(&mut self, _: &'tree str) {}
626 fn visit_emphasis(&mut self, e: &'tree e::Emphasis) {
627 for c in e.children() {
628 self.visit_text_or_inline_element(c);
629 }
630 }
631 fn visit_literal(&mut self, e: &'tree e::Literal) {
632 for c in e.children() {
633 self.visit_string(c);
634 }
635 }
636 fn visit_reference(&mut self, e: &'tree e::Reference) {
637 for c in e.children() {
638 self.visit_text_or_inline_element(c);
639 }
640 }
641 fn visit_strong(&mut self, e: &'tree e::Strong) {
642 for c in e.children() {
643 self.visit_text_or_inline_element(c);
644 }
645 }
646 fn visit_footnote_reference(&mut self, e: &'tree e::FootnoteReference) {
647 for c in e.children() {
648 self.visit_text_or_inline_element(c);
649 }
650 }
651 fn visit_citation_reference(&mut self, e: &'tree e::CitationReference) {
652 for c in e.children() {
653 self.visit_text_or_inline_element(c);
654 }
655 }
656 fn visit_substitution_reference(&mut self, e: &'tree e::SubstitutionReference) {
657 for c in e.children() {
658 self.visit_text_or_inline_element(c);
659 }
660 }
661 fn visit_title_reference(&mut self, e: &'tree e::TitleReference) {
662 for c in e.children() {
663 self.visit_text_or_inline_element(c);
664 }
665 }
666 fn visit_abbreviation(&mut self, e: &'tree e::Abbreviation) {
667 for c in e.children() {
668 self.visit_text_or_inline_element(c);
669 }
670 }
671 fn visit_acronym(&mut self, e: &'tree e::Acronym) {
672 for c in e.children() {
673 self.visit_text_or_inline_element(c);
674 }
675 }
676 fn visit_superscript(&mut self, e: &'tree e::Superscript) {
677 for c in e.children() {
678 self.visit_text_or_inline_element(c);
679 }
680 }
681 fn visit_subscript(&mut self, e: &'tree e::Subscript) {
682 for c in e.children() {
683 self.visit_text_or_inline_element(c);
684 }
685 }
686 fn visit_inline(&mut self, e: &'tree e::Inline) {
687 for c in e.children() {
688 self.visit_text_or_inline_element(c);
689 }
690 }
691 fn visit_problematic(&mut self, e: &'tree e::Problematic) {
692 for c in e.children() {
693 self.visit_text_or_inline_element(c);
694 }
695 }
696 fn visit_generated(&mut self, e: &'tree e::Generated) {
697 for c in e.children() {
698 self.visit_text_or_inline_element(c);
699 }
700 }
701 fn visit_math(&mut self, e: &'tree e::Math) {
702 for c in e.children() {
703 self.visit_string(c);
704 }
705 }
706
707 fn visit_target_inline(&mut self, e: &'tree e::TargetInline) {
709 for c in e.children() {
710 self.visit_string(c);
711 }
712 }
713 fn visit_raw_inline(&mut self, e: &'tree e::RawInline) {
714 for c in e.children() {
715 self.visit_string(c);
716 }
717 }
718 fn visit_image_inline(&mut self, _: &'tree e::ImageInline) {}
719}