@@ -27,12 +27,10 @@ use std::cell::{Cell, RefCell, RefMut};
27
27
use std:: collections:: BTreeMap ;
28
28
use std:: mem:: replace;
29
29
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 } ;
36
34
37
35
/// Copy of Tokenizer options, with an impl for `Default`.
38
36
#[ derive( Copy , Clone ) ]
@@ -51,7 +49,7 @@ pub struct XmlTokenizerOpts {
51
49
52
50
/// Initial state override. Only the test runner should use
53
51
/// a non-`None` value!
54
- pub initial_state : Option < states :: XmlState > ,
52
+ pub initial_state : Option < XmlState > ,
55
53
}
56
54
57
55
fn process_qname ( tag_name : StrTendril ) -> QualName {
@@ -104,7 +102,7 @@ pub struct XmlTokenizer<Sink> {
104
102
pub sink : Sink ,
105
103
106
104
/// The abstract machine state as described in the spec.
107
- state : Cell < states :: XmlState > ,
105
+ state : Cell < XmlState > ,
108
106
109
107
/// Are we at the end of the file, once buffers have been processed
110
108
/// completely? This affects whether we will wait for lookahead or not.
@@ -158,7 +156,7 @@ pub struct XmlTokenizer<Sink> {
158
156
current_pi_data : RefCell < StrTendril > ,
159
157
160
158
/// 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 > > ,
162
160
163
161
/// Record of how many ns we spent in the token sink.
164
162
time_in_sink : Cell < u64 > ,
@@ -171,7 +169,7 @@ impl<Sink: TokenSink> XmlTokenizer<Sink> {
171
169
panic ! ( "Can't profile tokenizer when built as a C library" ) ;
172
170
}
173
171
174
- let state = * opts. initial_state . as_ref ( ) . unwrap_or ( & states :: Data ) ;
172
+ let state = * opts. initial_state . as_ref ( ) . unwrap_or ( & XmlState :: Data ) ;
175
173
let discard_bom = opts. discard_bom ;
176
174
XmlTokenizer {
177
175
opts,
@@ -493,8 +491,8 @@ impl<Sink: TokenSink> XmlTokenizer<Sink> {
493
491
fn doctype_id ( & self , kind : DoctypeKind ) -> RefMut < ' _ , Option < StrTendril > > {
494
492
let current_doctype = self . current_doctype . borrow_mut ( ) ;
495
493
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 ) ,
498
496
}
499
497
}
500
498
@@ -578,9 +576,9 @@ macro_rules! go (
578
576
579
577
// These can only come at the end.
580
578
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 ; } ) ;
584
582
585
583
( $me: ident : reconsume $s: ident ) => ( { $me. reconsume. set( true ) ; go!( $me: to $s) ; } ) ;
586
584
( $me: ident : reconsume $s: ident $k1: expr ) => ( { $me. reconsume. set( true ) ; go!( $me: to $s $k1) ; } ) ;
@@ -591,28 +589,28 @@ macro_rules! go (
591
589
592
590
// We have a default next state after emitting a tag, but the sink can override.
593
591
( $me: ident : emit_tag $s: ident ) => ( {
594
- $me. state. set( states :: $s) ;
592
+ $me. state. set( XmlState :: $s) ;
595
593
return $me. emit_current_tag( ) ;
596
594
} ) ;
597
595
598
596
// We have a special when dealing with empty and short tags in Xml
599
597
( $me: ident : emit_short_tag $s: ident ) => ( {
600
- $me. state. set( states :: $s) ;
598
+ $me. state. set( XmlState :: $s) ;
601
599
return $me. emit_short_tag( ) ;
602
600
} ) ;
603
601
604
602
( $me: ident : emit_empty_tag $s: ident ) => ( {
605
- $me. state. set( states :: $s) ;
603
+ $me. state. set( XmlState :: $s) ;
606
604
return $me. emit_empty_tag( ) ;
607
605
} ) ;
608
606
609
607
( $me: ident : emit_start_tag $s: ident ) => ( {
610
- $me. state. set( states :: $s) ;
608
+ $me. state. set( XmlState :: $s) ;
611
609
return $me. emit_start_tag( ) ;
612
610
} ) ;
613
611
614
612
( $me: ident : emit_pi $s: ident ) => ( {
615
- $me. state. set( states :: $s) ;
613
+ $me. state. set( XmlState :: $s) ;
616
614
return $me. emit_pi( ) ;
617
615
} ) ;
618
616
@@ -1137,7 +1135,7 @@ impl<Sink: TokenSink> XmlTokenizer<Sink> {
1137
1135
1138
1136
#[ cfg( not( for_c) ) ]
1139
1137
fn dump_profile ( & self ) {
1140
- let mut results: Vec < ( states :: XmlState , u64 ) > = self
1138
+ let mut results: Vec < ( XmlState , u64 ) > = self
1141
1139
. state_profile
1142
1140
. borrow ( )
1143
1141
. iter ( )
@@ -1225,9 +1223,9 @@ impl<Sink: TokenSink> XmlTokenizer<Sink> {
1225
1223
for i in 0 ..num_chars {
1226
1224
let c = chars[ i as usize ] ;
1227
1225
match self . state . get ( ) {
1228
- states :: Data | states :: Cdata => go ! ( self : emit c) ,
1226
+ XmlState :: Data | XmlState :: Cdata => go ! ( self : emit c) ,
1229
1227
1230
- states :: TagAttrValue ( _) => go ! ( self : push_value c) ,
1228
+ XmlState :: TagAttrValue ( _) => go ! ( self : push_value c) ,
1231
1229
1232
1230
_ => panic ! (
1233
1231
"state {:?} should not be reachable in process_char_ref" ,
0 commit comments