Re: [PATCH 03/12] rust: num: add Bounded::shr_exact

[email protected]
Newsgroups org.freedesktop.lists.dri-devel
Message-ID <[email protected]>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The small abstraction function `shr_exact` is missing the `#[inline]` attribute.
--

--- Patch [3]: [PATCH 03/12] rust: num: add Bounded::shr_exact ---
commit fe8d74a80e41351c792119ee859ab7990c063f88
Author: Eliot Courtney <[email protected]>

rust: num: add Bounded::shr_exact

This commit adds shr_exact to shift a bounded value right only if it loses
no set bits. This is useful for getting a shifted down integer while
simultaneously checking that it is aligned.

> diff --git a/rust/kernel/num/bounded.rs b/rust/kernel/num/bounded.rs
> index f263107f001ed..2695a7858d8ad 100644
> --- a/rust/kernel/num/bounded.rs
> +++ b/rust/kernel/num/bounded.rs
[ ... ]
> +    /// // A set bit would be shifted out.
> +    /// let v = Bounded::<u32, 16>::new::<0xff01>();
> +    /// let v_shifted: Option<Bounded<u32, 8>> = v.shr_exact::<8, _>();
> +    ///
> +    /// assert!(v_shifted.is_none());
> +    /// ```
> +    pub fn shr_exact<const SHIFT: u32, const RES: u32>(self) -> Option<Bounded<T, RES>> {

[Severity: Low]
This isn't a bug, but should this small abstraction function be annotated
with #[inline]? According to the Rust subsystem coding guidelines, functions
that are small or forwarding to a binding call should be annotated with
#[inline].

> +        let shifted = self.shr::<SHIFT, RES>();
> +        if shifted.get() << SHIFT == self.0 {
> +            Some(shifted)
> +        } else {
> +            None
> +        }
> +    }

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=3
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.