LCOV - code coverage report
Current view: top level - pageserver/src - assert_u64_eq_usize.rs (source / functions) Coverage Total Hit
Test: 7eb96e224e685167ad85f58f858387d8cf253f63.info Lines: 100.0 % 15 15
Test Date: 2024-09-23 21:23:07 Functions: 100.0 % 3 3

            Line data    Source code
       1              : //! `u64`` and `usize`` aren't guaranteed to be identical in Rust, but life is much simpler if that's the case.
       2              : 
       3              : pub(crate) const _ASSERT_U64_EQ_USIZE: () = {
       4              :     if std::mem::size_of::<usize>() != std::mem::size_of::<u64>() {
       5              :         panic!("the traits defined in this module assume that usize and u64 can be converted to each other without loss of information");
       6              :     }
       7              : };
       8              : 
       9              : pub(crate) trait U64IsUsize {
      10              :     fn into_usize(self) -> usize;
      11              : }
      12              : 
      13              : impl U64IsUsize for u64 {
      14              :     #[inline(always)]
      15     55042716 :     fn into_usize(self) -> usize {
      16     55042716 :         #[allow(clippy::let_unit_value)]
      17     55042716 :         let _ = _ASSERT_U64_EQ_USIZE;
      18     55042716 :         self as usize
      19     55042716 :     }
      20              : }
      21              : 
      22              : pub(crate) trait UsizeIsU64 {
      23              :     fn into_u64(self) -> u64;
      24              : }
      25              : 
      26              : impl UsizeIsU64 for usize {
      27              :     #[inline(always)]
      28     71548497 :     fn into_u64(self) -> u64 {
      29     71548497 :         #[allow(clippy::let_unit_value)]
      30     71548497 :         let _ = _ASSERT_U64_EQ_USIZE;
      31     71548497 :         self as u64
      32     71548497 :     }
      33              : }
      34              : 
      35          624 : pub const fn u64_to_usize(x: u64) -> usize {
      36          624 :     #[allow(clippy::let_unit_value)]
      37          624 :     let _ = _ASSERT_U64_EQ_USIZE;
      38          624 :     x as usize
      39          624 : }
        

Generated by: LCOV version 2.1-beta