Traits marked with `#[vtable]` need to provide default implementationsReviewed-by: Martin Rodriguez Reboredo <yakoyoku@xxxxxxxxx>
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.
[...]