LCOV - code coverage report
Current view: top level - pageserver/src - assert_u64_eq_usize.rs (source / functions) Coverage Total Hit
Test: 90b23405d17e36048d3bb64e314067f397803f1b.info Lines: 100.0 % 15 15
Test Date: 2024-09-20 13:14:58 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     55043104 :     fn into_usize(self) -> usize {
      16     55043104 :         #[allow(clippy::let_unit_value)]
      17     55043104 :         let _ = _ASSERT_U64_EQ_USIZE;
      18     55043104 :         self as usize
      19     55043104 :     }
      20              : }
      21              : 
      22              : pub(crate) trait UsizeIsU64 {
      23              :     fn into_u64(self) -> u64;
      24              : }
      25              : 
      26              : impl UsizeIsU64 for usize {
      27              :     #[inline(always)]
      28     71551209 :     fn into_u64(self) -> u64 {
      29     71551209 :         #[allow(clippy::let_unit_value)]
      30     71551209 :         let _ = _ASSERT_U64_EQ_USIZE;
      31     71551209 :         self as u64
      32     71551209 :     }
      33              : }
      34              : 
      35          618 : pub const fn u64_to_usize(x: u64) -> usize {
      36          618 :     #[allow(clippy::let_unit_value)]
      37          618 :     let _ = _ASSERT_U64_EQ_USIZE;
      38          618 :     x as usize
      39          618 : }
        

Generated by: LCOV version 2.1-beta