@@ -307,7 +307,28 @@ impl StatusCode {
307
307
}
308
308
}
309
309
310
- fn to_u16 ( & self ) -> u16 {
310
+ /// Get the `u16` code from this `StatusCode`.
311
+ ///
312
+ /// Also available as `From`/`Into<u16>`.
313
+ ///
314
+ /// # Example
315
+ ///
316
+ /// ```
317
+ /// use hyper::StatusCode;
318
+ ///
319
+ /// let status = StatusCode::Ok;
320
+ /// assert_eq!(status.as_u16(), 200);
321
+ ///
322
+ /// // Into
323
+ /// let num: u16 = status.into();
324
+ /// assert_eq!(num, 200);
325
+ ///
326
+ /// // From
327
+ /// let other = u16::from(status);
328
+ /// assert_eq!(num, other);
329
+ /// ```
330
+ #[ inline]
331
+ pub fn as_u16 ( & self ) -> u16 {
311
332
match * self {
312
333
StatusCode :: Continue => 100 ,
313
334
StatusCode :: SwitchingProtocols => 101 ,
@@ -498,7 +519,7 @@ impl StatusCode {
498
519
}
499
520
500
521
fn class ( & self ) -> StatusClass {
501
- match self . to_u16 ( ) {
522
+ match self . as_u16 ( ) {
502
523
100 ...199 => StatusClass :: Informational ,
503
524
200 ...299 => StatusClass :: Success ,
504
525
300 ...399 => StatusClass :: Redirection ,
@@ -520,16 +541,17 @@ impl Copy for StatusCode {}
520
541
/// "123 <unknown status code>");
521
542
/// ```
522
543
impl fmt:: Display for StatusCode {
544
+ #[ inline]
523
545
fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
524
- write ! ( f, "{} {}" , self . to_u16 ( ) ,
546
+ write ! ( f, "{} {}" , self . as_u16 ( ) ,
525
547
self . canonical_reason( ) . unwrap_or( "<unknown status code>" ) )
526
548
}
527
549
}
528
550
529
551
impl PartialEq for StatusCode {
530
552
#[ inline]
531
553
fn eq ( & self , other : & StatusCode ) -> bool {
532
- self . to_u16 ( ) == other. to_u16 ( )
554
+ self . as_u16 ( ) == other. as_u16 ( )
533
555
}
534
556
}
535
557
@@ -545,7 +567,7 @@ impl Clone for StatusCode {
545
567
impl PartialOrd for StatusCode {
546
568
#[ inline]
547
569
fn partial_cmp ( & self , other : & StatusCode ) -> Option < Ordering > {
548
- self . to_u16 ( ) . partial_cmp ( & ( other. to_u16 ( ) ) )
570
+ self . as_u16 ( ) . partial_cmp ( & ( other. as_u16 ( ) ) )
549
571
}
550
572
}
551
573
@@ -570,7 +592,7 @@ impl Default for StatusCode {
570
592
571
593
impl From < StatusCode > for u16 {
572
594
fn from ( code : StatusCode ) -> u16 {
573
- code. to_u16 ( )
595
+ code. as_u16 ( )
574
596
}
575
597
}
576
598
@@ -632,7 +654,7 @@ mod tests {
632
654
// - canonical reason
633
655
fn validate ( num : u16 , status_code : StatusCode , _default_code : StatusCode , reason : Option < & str > ) {
634
656
assert_eq ! ( StatusCode :: from_u16( num) , status_code) ;
635
- assert_eq ! ( status_code. to_u16 ( ) , num) ;
657
+ assert_eq ! ( status_code. as_u16 ( ) , num) ;
636
658
//assert_eq!(status_code.class().default_code(), default_code);
637
659
assert_eq ! ( status_code. canonical_reason( ) , reason) ;
638
660
}
0 commit comments