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

From: Martin Rodriguez Reboredo
Date: Thu Oct 26 2023 - 17:40:08 EST


On 10/26/23 17:19, 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>
---
v2 -> v3:
- don't hide the import of the constant in the example
- fixed "function" typo
- improve paragraph about optional functions
- do not remove the `Send + Sync + Sized` bounds on the example

v1 -> v2:
- removed imperative mode in the paragraph describing optional
functions.

[...]
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@xxxxxxxxx>