@@ -321,6 +321,33 @@ $EndFeature, "
321
321
( self as $UnsignedT) . swap_bytes( ) as Self
322
322
}
323
323
324
+ /// Reverses the bit pattern of the integer.
325
+ ///
326
+ /// # Examples
327
+ ///
328
+ /// Please note that this example is shared between integer types.
329
+ /// Which explains why `i16` is used here.
330
+ ///
331
+ /// Basic usage:
332
+ ///
333
+ /// ```
334
+ /// #![feature(reverse_bits)]
335
+ ///
336
+ /// let n: i16 = 0b0000000_01010101;
337
+ /// assert_eq!(n, 85);
338
+ ///
339
+ /// let m = n.reverse_bits();
340
+ ///
341
+ /// assert_eq!(m as u16, 0b10101010_00000000);
342
+ /// assert_eq!(m, -22016);
343
+ /// ```
344
+ #[ unstable( feature = "reverse_bits" , issue = "48763" ) ]
345
+ #[ cfg( not( stage0) ) ]
346
+ #[ inline]
347
+ pub fn reverse_bits( self ) -> Self {
348
+ ( self as $UnsignedT) . reverse_bits( ) as Self
349
+ }
350
+
324
351
doc_comment! {
325
352
concat!( "Converts an integer from big endian to the target's endianness.
326
353
@@ -1773,6 +1800,33 @@ assert_eq!(n.trailing_zeros(), 3);", $EndFeature, "
1773
1800
unsafe { intrinsics:: bswap( self as $ActualT) as Self }
1774
1801
}
1775
1802
1803
+ /// Reverses the bit pattern of the integer.
1804
+ ///
1805
+ /// # Examples
1806
+ ///
1807
+ /// Basic usage:
1808
+ ///
1809
+ /// Please note that this example is shared between integer types.
1810
+ /// Which explains why `u16` is used here.
1811
+ ///
1812
+ /// ```
1813
+ /// #![feature(reverse_bits)]
1814
+ ///
1815
+ /// let n: u16 = 0b0000000_01010101;
1816
+ /// assert_eq!(n, 85);
1817
+ ///
1818
+ /// let m = n.reverse_bits();
1819
+ ///
1820
+ /// assert_eq!(m, 0b10101010_00000000);
1821
+ /// assert_eq!(m, 43520);
1822
+ /// ```
1823
+ #[ unstable( feature = "reverse_bits" , issue = "48763" ) ]
1824
+ #[ cfg( not( stage0) ) ]
1825
+ #[ inline]
1826
+ pub fn reverse_bits( self ) -> Self {
1827
+ unsafe { intrinsics:: bitreverse( self as $ActualT) as Self }
1828
+ }
1829
+
1776
1830
doc_comment! {
1777
1831
concat!( "Converts an integer from big endian to the target's endianness.
1778
1832
0 commit comments