@@ -9,9 +9,15 @@ use url::Url;
99use method;
1010use status;
1111use uri;
12- use version:: { HttpVersion , Http09 , Http10 , Http11 , Http20 } ;
13- use { HttpResult , HttpMethodError , HttpVersionError , HttpIoError , HttpUriError } ;
14- use { HttpHeaderError , HttpStatusError } ;
12+ use uri:: RequestUri :: { AbsolutePath , AbsoluteUri , Authority , Star } ;
13+ use version:: HttpVersion ;
14+ use version:: HttpVersion :: { Http09 , Http10 , Http11 , Http20 } ;
15+ use HttpError :: { HttpHeaderError , HttpIoError , HttpMethodError , HttpStatusError ,
16+ HttpUriError , HttpVersionError } ;
17+ use HttpResult ;
18+
19+ use self :: HttpReader :: { SizedReader , ChunkedReader , EofReader } ;
20+ use self :: HttpWriter :: { ThroughWriter , ChunkedWriter , SizedWriter , EmptyWriter } ;
1521
1622/// Readers to handle different Transfer-Encodings.
1723///
@@ -327,15 +333,15 @@ pub fn read_method<R: Reader>(stream: &mut R) -> HttpResult<method::Method> {
327333 debug ! ( "method buf = {}" , buf[ ] . to_ascii( ) ) ;
328334
329335 let maybe_method = match buf[ 0 ..7 ] {
330- b"GET " => Some ( method:: Get ) ,
331- b"PUT " => Some ( method:: Put ) ,
332- b"POST " => Some ( method:: Post ) ,
333- b"HEAD " => Some ( method:: Head ) ,
334- b"PATCH " => Some ( method:: Patch ) ,
335- b"TRACE " => Some ( method:: Trace ) ,
336- b"DELETE " => Some ( method:: Delete ) ,
337- b"CONNECT" => Some ( method:: Connect ) ,
338- b"OPTIONS" => Some ( method:: Options ) ,
336+ b"GET " => Some ( method:: Method :: Get ) ,
337+ b"PUT " => Some ( method:: Method :: Put ) ,
338+ b"POST " => Some ( method:: Method :: Post ) ,
339+ b"HEAD " => Some ( method:: Method :: Head ) ,
340+ b"PATCH " => Some ( method:: Method :: Patch ) ,
341+ b"TRACE " => Some ( method:: Method :: Trace ) ,
342+ b"DELETE " => Some ( method:: Method :: Delete ) ,
343+ b"CONNECT" => Some ( method:: Method :: Connect ) ,
344+ b"OPTIONS" => Some ( method:: Method :: Options ) ,
339345 _ => None ,
340346 } ;
341347
@@ -346,7 +352,7 @@ pub fn read_method<R: Reader>(stream: &mut R) -> HttpResult<method::Method> {
346352 ( None , ext) if is_valid_method ( buf) => {
347353 use std:: str:: raw;
348354 // We already checked that the buffer is ASCII
349- Ok ( method:: Extension ( unsafe { raw:: from_utf8 ( ext) } . trim ( ) . into_string ( ) ) )
355+ Ok ( method:: Method :: Extension ( unsafe { raw:: from_utf8 ( ext) } . trim ( ) . into_string ( ) ) )
350356 } ,
351357 _ => Err ( HttpMethodError )
352358 }
@@ -367,7 +373,7 @@ pub fn read_uri<R: Reader>(stream: &mut R) -> HttpResult<uri::RequestUri> {
367373 let mut s = String :: new ( ) ;
368374 if b == STAR {
369375 try!( expect ( stream. read_byte ( ) , SP ) ) ;
370- return Ok ( uri :: Star )
376+ return Ok ( Star )
371377 } else {
372378 s. push ( b as char ) ;
373379 loop {
@@ -386,10 +392,10 @@ pub fn read_uri<R: Reader>(stream: &mut R) -> HttpResult<uri::RequestUri> {
386392 debug ! ( "uri buf = {}" , s) ;
387393
388394 if s. as_slice ( ) . starts_with ( "/" ) {
389- Ok ( uri :: AbsolutePath ( s) )
395+ Ok ( AbsolutePath ( s) )
390396 } else if s. as_slice ( ) . contains ( "/" ) {
391397 match Url :: parse ( s. as_slice ( ) ) {
392- Ok ( u) => Ok ( uri :: AbsoluteUri ( u) ) ,
398+ Ok ( u) => Ok ( AbsoluteUri ( u) ) ,
393399 Err ( _e) => {
394400 debug ! ( "URL err {}" , _e) ;
395401 Err ( HttpUriError )
@@ -401,7 +407,7 @@ pub fn read_uri<R: Reader>(stream: &mut R) -> HttpResult<uri::RequestUri> {
401407 match Url :: parse ( temp. as_slice ( ) ) {
402408 Ok ( _u) => {
403409 todo ! ( "compare vs u.authority()" ) ;
404- Ok ( uri :: Authority ( s) )
410+ Ok ( Authority ( s) )
405411 }
406412 Err ( _e) => {
407413 debug ! ( "URL err {}" , _e) ;
@@ -608,11 +614,14 @@ fn expect(r: IoResult<u8>, expected: u8) -> HttpResult<()> {
608614mod tests {
609615 use std:: io:: { mod, MemReader , MemWriter } ;
610616 use test:: Bencher ;
611- use uri:: { RequestUri , Star , AbsoluteUri , AbsolutePath , Authority } ;
617+ use uri:: RequestUri ;
618+ use uri:: RequestUri :: { Star , AbsoluteUri , AbsolutePath , Authority } ;
612619 use method;
613620 use status;
614- use version:: { HttpVersion , Http10 , Http11 , Http20 } ;
615- use { HttpResult , HttpVersionError } ;
621+ use version:: HttpVersion ;
622+ use version:: HttpVersion :: { Http10 , Http11 , Http20 } ;
623+ use HttpError :: HttpVersionError ;
624+ use HttpResult ;
616625 use url:: Url ;
617626
618627 use super :: { read_method, read_uri, read_http_version, read_header, RawHeaderLine , read_status} ;
@@ -627,15 +636,15 @@ mod tests {
627636 assert_eq ! ( read_method( & mut mem( s) ) , Ok ( m) ) ;
628637 }
629638
630- read ( "GET /" , method:: Get ) ;
631- read ( "POST /" , method:: Post ) ;
632- read ( "PUT /" , method:: Put ) ;
633- read ( "HEAD /" , method:: Head ) ;
634- read ( "OPTIONS /" , method:: Options ) ;
635- read ( "CONNECT /" , method:: Connect ) ;
636- read ( "TRACE /" , method:: Trace ) ;
637- read ( "PATCH /" , method:: Patch ) ;
638- read ( "FOO /" , method:: Extension ( "FOO" . to_string ( ) ) ) ;
639+ read ( "GET /" , method:: Method :: Get ) ;
640+ read ( "POST /" , method:: Method :: Post ) ;
641+ read ( "PUT /" , method:: Method :: Put ) ;
642+ read ( "HEAD /" , method:: Method :: Head ) ;
643+ read ( "OPTIONS /" , method:: Method :: Options ) ;
644+ read ( "CONNECT /" , method:: Method :: Connect ) ;
645+ read ( "TRACE /" , method:: Method :: Trace ) ;
646+ read ( "PATCH /" , method:: Method :: Patch ) ;
647+ read ( "FOO /" , method:: Method :: Extension ( "FOO" . to_string ( ) ) ) ;
639648 }
640649
641650 #[ test]
@@ -671,7 +680,7 @@ mod tests {
671680 assert_eq ! ( read_status( & mut mem( s) ) , result) ;
672681 }
673682
674- read ( "200 OK\r \n " , Ok ( status:: Ok ) ) ;
683+ read ( "200 OK\r \n " , Ok ( status:: StatusCode :: Ok ) ) ;
675684 }
676685
677686 #[ test]
@@ -687,7 +696,7 @@ mod tests {
687696 #[ test]
688697 fn test_write_chunked ( ) {
689698 use std:: str:: from_utf8;
690- let mut w = super :: ChunkedWriter ( MemWriter :: new ( ) ) ;
699+ let mut w = super :: HttpWriter :: ChunkedWriter ( MemWriter :: new ( ) ) ;
691700 w. write ( b"foo bar" ) . unwrap ( ) ;
692701 w. write ( b"baz quux herp" ) . unwrap ( ) ;
693702 let buf = w. end ( ) . unwrap ( ) . unwrap ( ) ;
@@ -698,7 +707,7 @@ mod tests {
698707 #[ test]
699708 fn test_write_sized ( ) {
700709 use std:: str:: from_utf8;
701- let mut w = super :: SizedWriter ( MemWriter :: new ( ) , 8 ) ;
710+ let mut w = super :: HttpWriter :: SizedWriter ( MemWriter :: new ( ) , 8 ) ;
702711 w. write ( b"foo bar" ) . unwrap ( ) ;
703712 assert_eq ! ( w. write( b"baz" ) , Err ( io:: standard_error( io:: ShortWrite ( 1 ) ) ) ) ;
704713
@@ -710,7 +719,7 @@ mod tests {
710719 #[ bench]
711720 fn bench_read_method ( b : & mut Bencher ) {
712721 b. bytes = b"CONNECT " . len ( ) as u64 ;
713- b. iter ( || assert_eq ! ( read_method( & mut mem( "CONNECT " ) ) , Ok ( method:: Connect ) ) ) ;
722+ b. iter ( || assert_eq ! ( read_method( & mut mem( "CONNECT " ) ) , Ok ( method:: Method :: Connect ) ) ) ;
714723 }
715724
716725}
0 commit comments