Alexandre Courbot
2025-Jun-15 10:51 UTC
[PATCH v5 05/23] rust: num: add the `fls` operation
On Sun Jun 15, 2025 at 6:37 PM JST, Miguel Ojeda wrote:> On Thu, Jun 12, 2025 at 4:02?PM Alexandre Courbot <acourbot at nvidia.com> wrote: >> >> + /// ``` >> + /// use kernel::num::fls_u32; >> + /// >> + /// assert_eq!(fls_u32(0x0), 0); >> + /// assert_eq!(fls_u32(0x1), 1); >> + /// assert_eq!(fls_u32(0x10), 5); >> + /// assert_eq!(fls_u32(0xffff), 16); >> + /// assert_eq!(fls_u32(0x8000_0000), 32); >> + /// ``` > > For a future patch series: this could provide examples per type > (passing them in the `impl_fls!` call). > > I can create a good first issue if this lands and it is not somewhere already.I was worried that the examples would be mostly duplicated, although it is true that seeing how the function behaves at the limits of each type is valuable. I'll prepare a patch to either squash for v6 or submit as a follow-up.
Alexandre Courbot
2025-Jun-15 10:58 UTC
[PATCH v5 05/23] rust: num: add the `fls` operation
On Sun Jun 15, 2025 at 7:51 PM JST, Alexandre Courbot wrote:> On Sun Jun 15, 2025 at 6:37 PM JST, Miguel Ojeda wrote: >> On Thu, Jun 12, 2025 at 4:02?PM Alexandre Courbot <acourbot at nvidia.com> wrote: >>> >>> + /// ``` >>> + /// use kernel::num::fls_u32; >>> + /// >>> + /// assert_eq!(fls_u32(0x0), 0); >>> + /// assert_eq!(fls_u32(0x1), 1); >>> + /// assert_eq!(fls_u32(0x10), 5); >>> + /// assert_eq!(fls_u32(0xffff), 16); >>> + /// assert_eq!(fls_u32(0x8000_0000), 32); >>> + /// ``` >> >> For a future patch series: this could provide examples per type >> (passing them in the `impl_fls!` call). >> >> I can create a good first issue if this lands and it is not somewhere already. > > I was worried that the examples would be mostly duplicated, although > it is true that seeing how the function behaves at the limits of each > type is valuable. I'll prepare a patch to either squash for v6 or submit > as a follow-up.Also, although this will work nicely for `impl_fls!` which is a single function, I'm afraid this won't scale well for `power_of_two_impl!`, which defines 6 functions per type... Any suggestions for this case?