Skip to content

Commit cb63d4f

Browse files
authored
Don't import xml5ever enums into the global namespace (#597)
This is mostly the same as #593 but for xml5ever. Signed-off-by: Simon Wülker <[email protected]>
1 parent bb98b08 commit cb63d4f

File tree

2 files changed

+59
-57
lines changed

2 files changed

+59
-57
lines changed

xml5ever/src/tree_builder/mod.rs

+59-53
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ where
214214
curr_elem: RefCell::new(None),
215215
namespace_stack: RefCell::new(NamespaceMapStack::new()),
216216
current_namespace: RefCell::new(NamespaceMap::empty()),
217-
phase: Cell::new(Start),
217+
phase: Cell::new(XmlPhase::Start),
218218
}
219219
}
220220

@@ -415,13 +415,13 @@ where
415415
return ProcessResult::Done;
416416
},
417417

418-
tokenizer::DoctypeToken(d) => Doctype(d),
419-
tokenizer::PIToken(x) => Pi(x),
420-
tokenizer::TagToken(x) => Tag(x),
421-
tokenizer::CommentToken(x) => Comment(x),
422-
tokenizer::NullCharacterToken => NullCharacter,
423-
tokenizer::EOFToken => Eof,
424-
tokenizer::CharacterTokens(x) => Characters(x),
418+
tokenizer::DoctypeToken(d) => Token::Doctype(d),
419+
tokenizer::PIToken(instruction) => Token::Pi(instruction),
420+
tokenizer::TagToken(x) => Token::Tag(x),
421+
tokenizer::CommentToken(x) => Token::Comment(x),
422+
tokenizer::NullCharacterToken => Token::NullCharacter,
423+
tokenizer::EOFToken => Token::Eof,
424+
tokenizer::CharacterTokens(x) => Token::Characters(x),
425425
};
426426

427427
self.process_to_completion(token)
@@ -466,7 +466,7 @@ where
466466
let child = create_element(&self.sink, tag.name, tag.attrs);
467467
self.insert_appropriately(AppendNode(child.clone()));
468468
self.sink.pop(&child);
469-
Done
469+
XmlProcessResult::Done
470470
}
471471

472472
fn append_tag_to_doc(&self, tag: Tag) -> Handle {
@@ -480,21 +480,21 @@ where
480480
fn add_to_open_elems(&self, el: Handle) -> XmlProcessResult<Handle> {
481481
self.open_elems.borrow_mut().push(el);
482482

483-
Done
483+
XmlProcessResult::Done
484484
}
485485

486486
fn append_comment_to_doc(&self, text: StrTendril) -> XmlProcessResult<Handle> {
487487
let comment = self.sink.create_comment(text);
488488
self.sink.append(&self.doc_handle, AppendNode(comment));
489-
Done
489+
XmlProcessResult::Done
490490
}
491491

492492
fn append_comment_to_tag(&self, text: StrTendril) -> XmlProcessResult<Handle> {
493493
let open_elems = self.open_elems.borrow();
494494
let target = current_node(&open_elems);
495495
let comment = self.sink.create_comment(text);
496496
self.sink.append(target, AppendNode(comment));
497-
Done
497+
XmlProcessResult::Done
498498
}
499499

500500
fn append_doctype_to_doc(&self, doctype: Doctype) -> XmlProcessResult<Handle> {
@@ -509,26 +509,26 @@ where
509509
get_tendril(doctype.public_id),
510510
get_tendril(doctype.system_id),
511511
);
512-
Done
512+
XmlProcessResult::Done
513513
}
514514

515515
fn append_pi_to_doc(&self, pi: Pi) -> XmlProcessResult<Handle> {
516516
let pi = self.sink.create_pi(pi.target, pi.data);
517517
self.sink.append(&self.doc_handle, AppendNode(pi));
518-
Done
518+
XmlProcessResult::Done
519519
}
520520

521521
fn append_pi_to_tag(&self, pi: Pi) -> XmlProcessResult<Handle> {
522522
let open_elems = self.open_elems.borrow();
523523
let target = current_node(&open_elems);
524524
let pi = self.sink.create_pi(pi.target, pi.data);
525525
self.sink.append(target, AppendNode(pi));
526-
Done
526+
XmlProcessResult::Done
527527
}
528528

529529
fn append_text(&self, chars: StrTendril) -> XmlProcessResult<Handle> {
530530
self.insert_appropriately(AppendText(chars));
531-
Done
531+
XmlProcessResult::Done
532532
}
533533

534534
fn tag_in_open_elems(&self, tag: &Tag) -> bool {
@@ -578,7 +578,7 @@ where
578578
self.pop();
579579
}
580580

581-
Done
581+
XmlProcessResult::Done
582582
}
583583

584584
fn no_open_elems(&self) -> bool {
@@ -598,7 +598,7 @@ where
598598

599599
fn stop_parsing(&self) -> XmlProcessResult<Handle> {
600600
warn!("stop_parsing for XML5 not implemented, full speed ahead!");
601-
Done
601+
XmlProcessResult::Done
602602
}
603603
}
604604

@@ -617,8 +617,8 @@ where
617617
self.debug_step(mode, &token);
618618

619619
match mode {
620-
Start => match token {
621-
Tag(Tag {
620+
XmlPhase::Start => match token {
621+
Token::Tag(Tag {
622622
kind: StartTag,
623623
name,
624624
attrs,
@@ -632,11 +632,11 @@ where
632632
self.process_namespaces(&mut tag);
633633
tag
634634
};
635-
self.phase.set(Main);
635+
self.phase.set(XmlPhase::Main);
636636
let handle = self.append_tag_to_doc(tag);
637637
self.add_to_open_elems(handle)
638638
},
639-
Tag(Tag {
639+
Token::Tag(Tag {
640640
kind: EmptyTag,
641641
name,
642642
attrs,
@@ -650,32 +650,34 @@ where
650650
self.process_namespaces(&mut tag);
651651
tag
652652
};
653-
self.phase.set(End);
653+
self.phase.set(XmlPhase::End);
654654
let handle = self.append_tag_to_doc(tag);
655655
self.sink.pop(&handle);
656-
Done
656+
XmlProcessResult::Done
657657
},
658-
Comment(comment) => self.append_comment_to_doc(comment),
659-
Pi(pi) => self.append_pi_to_doc(pi),
660-
Characters(ref chars) if !any_not_whitespace(chars) => Done,
661-
Eof => {
658+
Token::Comment(comment) => self.append_comment_to_doc(comment),
659+
Token::Pi(pi) => self.append_pi_to_doc(pi),
660+
Token::Characters(ref chars) if !any_not_whitespace(chars) => {
661+
XmlProcessResult::Done
662+
},
663+
Token::Eof => {
662664
self.sink
663665
.parse_error(Borrowed("Unexpected EOF in start phase"));
664-
Reprocess(End, Eof)
666+
XmlProcessResult::Reprocess(XmlPhase::End, Token::Eof)
665667
},
666-
Doctype(d) => {
668+
Token::Doctype(d) => {
667669
self.append_doctype_to_doc(d);
668-
Done
670+
XmlProcessResult::Done
669671
},
670672
_ => {
671673
self.sink
672674
.parse_error(Borrowed("Unexpected element in start phase"));
673-
Done
675+
XmlProcessResult::Done
674676
},
675677
},
676-
Main => match token {
677-
Characters(chs) => self.append_text(chs),
678-
Tag(Tag {
678+
XmlPhase::Main => match token {
679+
Token::Characters(chs) => self.append_text(chs),
680+
Token::Tag(Tag {
679681
kind: StartTag,
680682
name,
681683
attrs,
@@ -691,7 +693,7 @@ where
691693
};
692694
self.insert_tag(tag)
693695
},
694-
Tag(Tag {
696+
Token::Tag(Tag {
695697
kind: EmptyTag,
696698
name,
697699
attrs,
@@ -714,7 +716,7 @@ where
714716
self.append_tag(tag)
715717
}
716718
},
717-
Tag(Tag {
719+
Token::Tag(Tag {
718720
kind: EndTag,
719721
name,
720722
attrs,
@@ -732,41 +734,45 @@ where
732734
let script = current_node(&self.open_elems.borrow()).clone();
733735
self.close_tag(tag);
734736
if self.no_open_elems() {
735-
self.phase.set(End);
737+
self.phase.set(XmlPhase::End);
736738
}
737739
return XmlProcessResult::Script(script);
738740
}
739741
let retval = self.close_tag(tag);
740742
if self.no_open_elems() {
741-
self.phase.set(End);
743+
self.phase.set(XmlPhase::End);
742744
}
743745
retval
744746
},
745-
Tag(Tag { kind: ShortTag, .. }) => {
747+
Token::Tag(Tag { kind: ShortTag, .. }) => {
746748
self.pop();
747749
if self.no_open_elems() {
748-
self.phase.set(End);
750+
self.phase.set(XmlPhase::End);
749751
}
750-
Done
752+
XmlProcessResult::Done
753+
},
754+
Token::Comment(comment) => self.append_comment_to_tag(comment),
755+
Token::Pi(pi) => self.append_pi_to_tag(pi),
756+
Token::Eof | Token::NullCharacter => {
757+
XmlProcessResult::Reprocess(XmlPhase::End, Token::Eof)
751758
},
752-
Comment(comment) => self.append_comment_to_tag(comment),
753-
Pi(pi) => self.append_pi_to_tag(pi),
754-
Eof | NullCharacter => Reprocess(End, Eof),
755-
Doctype(_) => {
759+
Token::Doctype(_) => {
756760
self.sink
757761
.parse_error(Borrowed("Unexpected element in main phase"));
758-
Done
762+
XmlProcessResult::Done
759763
},
760764
},
761-
End => match token {
762-
Comment(comment) => self.append_comment_to_doc(comment),
763-
Pi(pi) => self.append_pi_to_doc(pi),
764-
Characters(ref chars) if !any_not_whitespace(chars) => Done,
765-
Eof => self.stop_parsing(),
765+
XmlPhase::End => match token {
766+
Token::Comment(comment) => self.append_comment_to_doc(comment),
767+
Token::Pi(pi) => self.append_pi_to_doc(pi),
768+
Token::Characters(ref chars) if !any_not_whitespace(chars) => {
769+
XmlProcessResult::Done
770+
},
771+
Token::Eof => self.stop_parsing(),
766772
_ => {
767773
self.sink
768774
.parse_error(Borrowed("Unexpected element in end phase"));
769-
Done
775+
XmlProcessResult::Done
770776
},
771777
},
772778
}

xml5ever/src/tree_builder/types.rs

-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@
77
// option. This file may not be copied, modified, or distributed
88
// except according to those terms.
99

10-
pub use self::Token::*;
11-
pub use self::XmlPhase::*;
12-
pub use self::XmlProcessResult::*;
13-
1410
use crate::tendril::StrTendril;
1511
use crate::tokenizer::{Doctype, Pi, Tag};
1612

0 commit comments

Comments
 (0)