@@ -27,12 +27,10 @@ use std::cell::{Cell, RefCell, RefMut};
2727use std:: collections:: BTreeMap ;
2828use 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
5755fn 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" ,
0 commit comments