Skip to content

Commit f3b2639

Browse files
authored
Remove imports of enum variants in xml5ever/tokenizer/states.rs (#651)
Signed-off-by: Simon Wülker <[email protected]>
1 parent b93afc9 commit f3b2639

File tree

3 files changed

+23
-29
lines changed

3 files changed

+23
-29
lines changed

xml5ever/src/serialize/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,9 @@ impl<Wr: Write> Serializer for XmlSerializer<Wr> {
152152
if let Some(current_namespace) = self.namespace_stack.0.last() {
153153
for (prefix, url_opt) in current_namespace.get_scope_iter() {
154154
self.writer.write_all(b" xmlns")?;
155-
if let Some(ref p) = *prefix {
155+
if let Some(ref prefix) = *prefix {
156156
self.writer.write_all(b":")?;
157-
self.writer.write_all(p.as_bytes())?;
157+
self.writer.write_all(prefix.as_bytes())?;
158158
}
159159

160160
self.writer.write_all(b"=\"")?;

xml5ever/src/tokenizer/mod.rs

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,10 @@ use std::cell::{Cell, RefCell, RefMut};
2727
use std::collections::BTreeMap;
2828
use std::mem::replace;
2929

30-
use self::buffer_queue::{BufferQueue, FromSet, NotFromSet, SetResult};
31-
use self::char_ref::{CharRef, CharRefTokenizer};
32-
use self::qname::QualNameTokenizer;
33-
use self::states::XmlState;
34-
use self::states::{DoctypeKind, Public, System};
35-
use self::states::{DoubleQuoted, SingleQuoted, Unquoted};
30+
use buffer_queue::{BufferQueue, FromSet, NotFromSet, SetResult};
31+
use char_ref::{CharRef, CharRefTokenizer};
32+
use qname::QualNameTokenizer;
33+
use states::{AttrValueKind::*, DoctypeKind, DoctypeKind::*, XmlState};
3634

3735
/// Copy of Tokenizer options, with an impl for `Default`.
3836
#[derive(Copy, Clone)]
@@ -51,7 +49,7 @@ pub struct XmlTokenizerOpts {
5149

5250
/// Initial state override. Only the test runner should use
5351
/// a non-`None` value!
54-
pub initial_state: Option<states::XmlState>,
52+
pub initial_state: Option<XmlState>,
5553
}
5654

5755
fn process_qname(tag_name: StrTendril) -> QualName {
@@ -104,7 +102,7 @@ pub struct XmlTokenizer<Sink> {
104102
pub sink: Sink,
105103

106104
/// The abstract machine state as described in the spec.
107-
state: Cell<states::XmlState>,
105+
state: Cell<XmlState>,
108106

109107
/// Are we at the end of the file, once buffers have been processed
110108
/// completely? This affects whether we will wait for lookahead or not.
@@ -158,7 +156,7 @@ pub struct XmlTokenizer<Sink> {
158156
current_pi_data: RefCell<StrTendril>,
159157

160158
/// Record of how many ns we spent in each state, if profiling is enabled.
161-
state_profile: RefCell<BTreeMap<states::XmlState, u64>>,
159+
state_profile: RefCell<BTreeMap<XmlState, u64>>,
162160

163161
/// Record of how many ns we spent in the token sink.
164162
time_in_sink: Cell<u64>,
@@ -171,7 +169,7 @@ impl<Sink: TokenSink> XmlTokenizer<Sink> {
171169
panic!("Can't profile tokenizer when built as a C library");
172170
}
173171

174-
let state = *opts.initial_state.as_ref().unwrap_or(&states::Data);
172+
let state = *opts.initial_state.as_ref().unwrap_or(&XmlState::Data);
175173
let discard_bom = opts.discard_bom;
176174
XmlTokenizer {
177175
opts,
@@ -493,8 +491,8 @@ impl<Sink: TokenSink> XmlTokenizer<Sink> {
493491
fn doctype_id(&self, kind: DoctypeKind) -> RefMut<'_, Option<StrTendril>> {
494492
let current_doctype = self.current_doctype.borrow_mut();
495493
match kind {
496-
Public => RefMut::map(current_doctype, |d| &mut d.public_id),
497-
System => RefMut::map(current_doctype, |d| &mut d.system_id),
494+
DoctypeKind::Public => RefMut::map(current_doctype, |d| &mut d.public_id),
495+
DoctypeKind::System => RefMut::map(current_doctype, |d| &mut d.system_id),
498496
}
499497
}
500498

@@ -578,9 +576,9 @@ macro_rules! go (
578576

579577
// These can only come at the end.
580578

581-
( $me:ident : to $s:ident ) => ({ $me.state.set(states::$s); return ProcessResult::Continue; });
582-
( $me:ident : to $s:ident $k1:expr ) => ({ $me.state.set(states::$s($k1)); return ProcessResult::Continue; });
583-
( $me:ident : to $s:ident $k1:ident $k2:expr ) => ({ $me.state.set(states::$s($k1($k2))); return ProcessResult::Continue; });
579+
( $me:ident : to $s:ident ) => ({ $me.state.set(XmlState::$s); return ProcessResult::Continue; });
580+
( $me:ident : to $s:ident $k1:expr ) => ({ $me.state.set(XmlState::$s($k1)); return ProcessResult::Continue; });
581+
( $me:ident : to $s:ident $k1:ident $k2:expr ) => ({ $me.state.set(XmlState::$s($k1($k2))); return ProcessResult::Continue; });
584582

585583
( $me:ident : reconsume $s:ident ) => ({ $me.reconsume.set(true); go!($me: to $s); });
586584
( $me:ident : reconsume $s:ident $k1:expr ) => ({ $me.reconsume.set(true); go!($me: to $s $k1); });
@@ -591,28 +589,28 @@ macro_rules! go (
591589

592590
// We have a default next state after emitting a tag, but the sink can override.
593591
( $me:ident : emit_tag $s:ident ) => ({
594-
$me.state.set(states::$s);
592+
$me.state.set(XmlState::$s);
595593
return $me.emit_current_tag();
596594
});
597595

598596
// We have a special when dealing with empty and short tags in Xml
599597
( $me:ident : emit_short_tag $s:ident ) => ({
600-
$me.state.set(states::$s);
598+
$me.state.set(XmlState::$s);
601599
return $me.emit_short_tag();
602600
});
603601

604602
( $me:ident : emit_empty_tag $s:ident ) => ({
605-
$me.state.set(states::$s);
603+
$me.state.set(XmlState::$s);
606604
return $me.emit_empty_tag();
607605
});
608606

609607
( $me:ident : emit_start_tag $s:ident ) => ({
610-
$me.state.set(states::$s);
608+
$me.state.set(XmlState::$s);
611609
return $me.emit_start_tag();
612610
});
613611

614612
( $me:ident : emit_pi $s:ident ) => ({
615-
$me.state.set(states::$s);
613+
$me.state.set(XmlState::$s);
616614
return $me.emit_pi();
617615
});
618616

@@ -1137,7 +1135,7 @@ impl<Sink: TokenSink> XmlTokenizer<Sink> {
11371135

11381136
#[cfg(not(for_c))]
11391137
fn dump_profile(&self) {
1140-
let mut results: Vec<(states::XmlState, u64)> = self
1138+
let mut results: Vec<(XmlState, u64)> = self
11411139
.state_profile
11421140
.borrow()
11431141
.iter()
@@ -1225,9 +1223,9 @@ impl<Sink: TokenSink> XmlTokenizer<Sink> {
12251223
for i in 0..num_chars {
12261224
let c = chars[i as usize];
12271225
match self.state.get() {
1228-
states::Data | states::Cdata => go!(self: emit c),
1226+
XmlState::Data | XmlState::Cdata => go!(self: emit c),
12291227

1230-
states::TagAttrValue(_) => go!(self: push_value c),
1228+
XmlState::TagAttrValue(_) => go!(self: push_value c),
12311229

12321230
_ => panic!(
12331231
"state {:?} should not be reachable in process_char_ref",

xml5ever/src/tokenizer/states.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@
99

1010
//! Tokenizer states.
1111
12-
pub use AttrValueKind::*;
13-
pub use DoctypeKind::*;
14-
pub use XmlState::*;
15-
1612
/// Specifies either the public or system identifier from a [Document Type Declaration] (DTD).
1713
///
1814
/// [Document Type Declaration]: https://en.wikipedia.org/wiki/Document_type_declaration

0 commit comments

Comments
 (0)