[PATCH 0/3] rust: macros: vtable: add `#[optional]` attribute
From: Gary Guo
Date: Tue Aug 11 2026 - 10:04:16 EST
Currently there are a lot of boilerplate with the
`build_error!(VTABLE_DEFAULT_ERROR)` because Rust want a default
implementation but we insert `NULL` into C vtable and never call the
Rust-side method if it is not overridden.
Add an `#[optional]` attribute that injects the same default
implementation to avoid duplicating this everywhere. As an example, the
misc device vtable trait is converted.
Signed-off-by: Gary Guo <gary@xxxxxxxxxxx>
---
Gary Guo (3):
rust: macros: vtable: hide generated `HAS_` constants for required methods
rust: macros: vtable: add `#[optional]` attribute
rust: misc: use `#[optional]` attribute of `#[vtable]` macro
rust/kernel/miscdevice.rs | 35 +++++++++++++----------------------
rust/macros/lib.rs | 39 +++++++++++----------------------------
rust/macros/vtable.rs | 43 ++++++++++++++++++++++++++++++++++++++-----
3 files changed, 62 insertions(+), 55 deletions(-)
---
base-commit: 6b8c8af514d739d0335f5579b585e02babe8a727
change-id: 20260811-vtable_macro-12a8f557381b
Best regards,
--
Gary Guo <gary@xxxxxxxxxxx>