padme_padding/
lib.rs

1#![no_std]
2
3pub struct Padme;
4
5impl Padme {
6    /// Return the padded length
7    pub fn padded_len(len: usize) -> usize {
8        let e = 63usize.saturating_sub(len.leading_zeros() as usize);
9        let s = 64 - e.leading_zeros() as usize;
10        let z = e - s;
11        let mask = (1usize << z) - 1;
12        (len + mask) & !mask
13    }
14
15    /// Return the padding length
16    #[inline]
17    pub fn padding_len(len: usize) -> usize {
18        Self::padded_len(len) - len
19    }
20}