@@ -361,8 +361,9 @@ impl Ipv4Addr {
361361     /// let addr = Ipv4Addr::new(127, 0, 0, 1); 
362362     /// assert_eq!(addr.octets(), [127, 0, 0, 1]); 
363363     /// ``` 
364+      #[ rustc_const_stable( feature = "const_ipv4" ,  since = "1.48.0" ) ]  
364365    #[ stable( feature = "rust1" ,  since = "1.0.0" ) ]  
365-     pub  fn  octets ( & self )  -> [ u8 ;  4 ]  { 
366+     pub  const   fn  octets ( & self )  -> [ u8 ;  4 ]  { 
366367        // This returns the order we want because s_addr is stored in big-endian. 
367368        self . inner . s_addr . to_ne_bytes ( ) 
368369    } 
@@ -404,8 +405,9 @@ impl Ipv4Addr {
404405     /// assert_eq!(Ipv4Addr::new(127, 0, 0, 1).is_loopback(), true); 
405406     /// assert_eq!(Ipv4Addr::new(45, 22, 13, 197).is_loopback(), false); 
406407     /// ``` 
408+      #[ rustc_const_stable( feature = "const_ipv4" ,  since = "1.48.0" ) ]  
407409    #[ stable( since = "1.7.0" ,  feature = "ip_17" ) ]  
408-     pub  fn  is_loopback ( & self )  -> bool  { 
410+     pub  const   fn  is_loopback ( & self )  -> bool  { 
409411        self . octets ( ) [ 0 ]  == 127 
410412    } 
411413
@@ -433,8 +435,9 @@ impl Ipv4Addr {
433435     /// assert_eq!(Ipv4Addr::new(192, 168, 0, 2).is_private(), true); 
434436     /// assert_eq!(Ipv4Addr::new(192, 169, 0, 2).is_private(), false); 
435437     /// ``` 
438+      #[ rustc_const_stable( feature = "const_ipv4" ,  since = "1.48.0" ) ]  
436439    #[ stable( since = "1.7.0" ,  feature = "ip_17" ) ]  
437-     pub  fn  is_private ( & self )  -> bool  { 
440+     pub  const   fn  is_private ( & self )  -> bool  { 
438441        match  self . octets ( )  { 
439442            [ 10 ,  ..]  => true , 
440443            [ 172 ,  b,  ..]  if  b >= 16  && b <= 31  => true , 
@@ -459,8 +462,9 @@ impl Ipv4Addr {
459462     /// assert_eq!(Ipv4Addr::new(169, 254, 10, 65).is_link_local(), true); 
460463     /// assert_eq!(Ipv4Addr::new(16, 89, 10, 65).is_link_local(), false); 
461464     /// ``` 
465+      #[ rustc_const_stable( feature = "const_ipv4" ,  since = "1.48.0" ) ]  
462466    #[ stable( since = "1.7.0" ,  feature = "ip_17" ) ]  
463-     pub  fn  is_link_local ( & self )  -> bool  { 
467+     pub  const   fn  is_link_local ( & self )  -> bool  { 
464468        match  self . octets ( )  { 
465469            [ 169 ,  254 ,  ..]  => true , 
466470            _ => false , 
@@ -573,7 +577,8 @@ impl Ipv4Addr {
573577     /// assert_eq!(Ipv4Addr::new(100, 127, 255, 255).is_shared(), true); 
574578     /// assert_eq!(Ipv4Addr::new(100, 128, 0, 0).is_shared(), false); 
575579     /// ``` 
576-      pub  fn  is_shared ( & self )  -> bool  { 
580+      #[ rustc_const_stable( feature = "const_ipv4" ,  since = "1.48.0" ) ]  
581+     pub  const  fn  is_shared ( & self )  -> bool  { 
577582        self . octets ( ) [ 0 ]  == 100  && ( self . octets ( ) [ 1 ]  &  0b1100_0000  == 0b0100_0000 ) 
578583    } 
579584
@@ -605,7 +610,8 @@ impl Ipv4Addr {
605610     /// assert_eq!(Ipv4Addr::new(192, 0, 1, 0).is_ietf_protocol_assignment(), false); 
606611     /// assert_eq!(Ipv4Addr::new(191, 255, 255, 255).is_ietf_protocol_assignment(), false); 
607612     /// ``` 
608-      pub  fn  is_ietf_protocol_assignment ( & self )  -> bool  { 
613+      #[ rustc_const_stable( feature = "const_ipv4" ,  since = "1.48.0" ) ]  
614+     pub  const  fn  is_ietf_protocol_assignment ( & self )  -> bool  { 
609615        self . octets ( ) [ 0 ]  == 192  && self . octets ( ) [ 1 ]  == 0  && self . octets ( ) [ 2 ]  == 0 
610616    } 
611617
@@ -628,7 +634,8 @@ impl Ipv4Addr {
628634     /// assert_eq!(Ipv4Addr::new(198, 19, 255, 255).is_benchmarking(), true); 
629635     /// assert_eq!(Ipv4Addr::new(198, 20, 0, 0).is_benchmarking(), false); 
630636     /// ``` 
631-      pub  fn  is_benchmarking ( & self )  -> bool  { 
637+      #[ rustc_const_stable( feature = "const_ipv4" ,  since = "1.48.0" ) ]  
638+     pub  const  fn  is_benchmarking ( & self )  -> bool  { 
632639        self . octets ( ) [ 0 ]  == 198  && ( self . octets ( ) [ 1 ]  &  0xfe )  == 18 
633640    } 
634641
@@ -681,8 +688,9 @@ impl Ipv4Addr {
681688     /// assert_eq!(Ipv4Addr::new(236, 168, 10, 65).is_multicast(), true); 
682689     /// assert_eq!(Ipv4Addr::new(172, 16, 10, 65).is_multicast(), false); 
683690     /// ``` 
691+      #[ rustc_const_stable( feature = "const_ipv4" ,  since = "1.48.0" ) ]  
684692    #[ stable( since = "1.7.0" ,  feature = "ip_17" ) ]  
685-     pub  fn  is_multicast ( & self )  -> bool  { 
693+     pub  const   fn  is_multicast ( & self )  -> bool  { 
686694        self . octets ( ) [ 0 ]  >= 224  && self . octets ( ) [ 0 ]  <= 239 
687695    } 
688696
@@ -727,8 +735,9 @@ impl Ipv4Addr {
727735     /// assert_eq!(Ipv4Addr::new(203, 0, 113, 6).is_documentation(), true); 
728736     /// assert_eq!(Ipv4Addr::new(193, 34, 17, 19).is_documentation(), false); 
729737     /// ``` 
738+      #[ rustc_const_stable( feature = "const_ipv4" ,  since = "1.48.0" ) ]  
730739    #[ stable( since = "1.7.0" ,  feature = "ip_17" ) ]  
731-     pub  fn  is_documentation ( & self )  -> bool  { 
740+     pub  const   fn  is_documentation ( & self )  -> bool  { 
732741        match  self . octets ( )  { 
733742            [ 192 ,  0 ,  2 ,  _]  => true , 
734743            [ 198 ,  51 ,  100 ,  _]  => true , 
0 commit comments