Re: [PATCH v2] rust: macros: improve `#[vtable]` documentation

From: Alice Ryhl
Date: Sat Oct 21 2023 - 09:15:57 EST


On 10/19/23 19:15, Benno Lossin wrote:
Traits marked with `#[vtable]` need to provide default implementations
for optional functions. The C side represents these with `NULL` in the
vtable, so the default functions are never actually called. We do not
want to replicate the default behavior from C in Rust, because that is
not maintainable. Therefore we should use `build_error` in those default
implementations. The error message for that is provided at
`kernel::error::VTABLE_DEFAULT_ERROR`.

Signed-off-by: Benno Lossin <benno.lossin@xxxxxxxxx>

Reviewed-by: Alice Ryhl <aliceryhl@xxxxxxxxxx>

There is a minor nit below, and in reviews sent by others, but overall this looks fine to me.

/// # Examples
///
/// ```ignore
+/// # use kernel::error::VTABLE_DEFAULT_ERROR;
/// use kernel::prelude::*;
I probably wouldn't hide the import of VTABLE_DEFAULT_ERROR from this example.