Re: [PATCH v1 08/28] rust: error: declare errors using macro

Gary Guo
2022-11-14T14:29:04Z

On Thu, 10 Nov 2022 17:41:20 +0100
Miguel Ojeda <ojeda@kernel.org> wrote:

> From: Finn Behrens <me@kloenk.dev>
>
> Add a macro to declare errors, which simplifies the work needed to
> add each one, avoids repetition of the code and makes it easier to
> change the way they are declared.
>
> Signed-off-by: Finn Behrens <me@kloenk.dev>
> [Reworded, adapted for upstream and applied latest changes]
> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

Reviewed-by: Gary Guo <gary@garyguo.net>

> ---
> rust/kernel/error.rs | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/rust/kernel/error.rs b/rust/kernel/error.rs
> index 466b2a8fe569..b843f3445483 100644
> --- a/rust/kernel/error.rs
> +++ b/rust/kernel/error.rs
> @@ -8,8 +8,16 @@ use alloc::collections::TryReserveError;
>
> /// Contains the C-compatible error codes.
> pub mod code {
> - /// Out of memory.
> - pub const ENOMEM: super::Error = super::Error(-(crate::bindings::ENOMEM as i32));
> + macro_rules! declare_err {
> + ($err:tt $(,)? $($doc:expr),+) => {
> + $(
> + #[doc = $doc]
> + )*
> + pub const $err: super::Error = super::Error(-(crate::bindings::$err as i32));
> + };
> + }
> +
> + declare_err!(ENOMEM, "Out of memory.");
> }
>
> /// Generic integer kernel error.