rust/macros/convert.rs | 1546 ++++++++++++++++++++++++++++++++++++++++ rust/macros/lib.rs | 319 +++++++++ 2 files changed, 1865 insertions(+) create mode 100644 rust/macros/convert.rs
This patch series introduces derive macros for the `TryFrom` and `Into` traits. Primary updates in v3: - Adopt `syn` for improved macro parsing. - Allow `kernel::num::Bounded` to be specified in helper attributes, enabling the generation of `TryFrom` and `Into` implementations for types with restricted bit ranges as required by the nova-core [1]. - Add compile-time overflow assertion to ensure that enum discriminants fit within the types being converted to or from, preventing silent overflows. Note: 1015+ insertions are purely from doctests. Most of them are kept private to keep the public API documentation clean and simple for users. This might not be the usual way of doing things, but for now I don't think I have a better option. Feedback and suggestions are always appreciated. [1] https://lore.kernel.org/rust-for-linux/DDHU4LL4GGIY.16OJMIL7ZK58P@nvidia.com/ Best regards, Jesung --- Changes in v3: - Use the vendored `syn` and `quote` crates. - Support `kernel::num::Bounded`. - Add compile-time overflow assertion. - Add a comment about `#[repr(C)]` enums. - Drop Tested-by and Reviewed-by tags, as the code structure has changed substantially. (Thanks for the previous reviews and testing!) - Link to v2: https://lore.kernel.org/rust-for-linux/cover.1755235180.git.y.j3ms.n@gmail.com/ Changes in v2 (no functional changes): - Split the patch "rust: macros: extend custom `quote!()` macro" into two separate patches. - Remove unnecessary spaces between tags. - Use a consistent commit subject prefix: "rust: macros:". - Add Tested-by tags. - Link to v1: https://lore.kernel.org/rust-for-linux/cover.1754228164.git.y.j3ms.n@gmail.com/ --- Jesung Yang (4): rust: macros: add derive macro for `Into` rust: macros: add derive macro for `TryFrom` rust: macros: add private doctests for `Into` derive macro rust: macros: add private doctests for `TryFrom` derive macro rust/macros/convert.rs | 1546 ++++++++++++++++++++++++++++++++++++++++ rust/macros/lib.rs | 319 +++++++++ 2 files changed, 1865 insertions(+) create mode 100644 rust/macros/convert.rs base-commit: 9448598b22c50c8a5bb77a9103e2d49f134c9578 -- 2.47.3
On Wed Dec 24, 2025 at 12:59 PM JST, Jesung Yang wrote: > This patch series introduces derive macros for the `TryFrom` and `Into` > traits. > > Primary updates in v3: > - Adopt `syn` for improved macro parsing. > - Allow `kernel::num::Bounded` to be specified in helper attributes, > enabling the generation of `TryFrom` and `Into` implementations for > types with restricted bit ranges as required by the nova-core [1]. > - Add compile-time overflow assertion to ensure that enum discriminants > fit within the types being converted to or from, preventing silent > overflows. > > Note: 1015+ insertions are purely from doctests. Most of them are kept > private to keep the public API documentation clean and simple for > users. This might not be the usual way of doing things, but for now I > don't think I have a better option. Feedback and suggestions are always > appreciated. > > [1] https://lore.kernel.org/rust-for-linux/DDHU4LL4GGIY.16OJMIL7ZK58P@nvidia.com/ > > Best regards, > Jesung Hi Jesung, I'm really looking forward to reviewing this one, but for some reason patches 1 and 2 appear to not have been sent. They don't even appear on lore: https://lore.kernel.org/all/cover.1766544407.git.y.j3ms.n@gmail.com/
On Thu, Dec 25, 2025 at 4:32 PM Alexandre Courbot <acourbot@nvidia.com> wrote: > > I'm really looking forward to reviewing this one, but for some reason > patches 1 and 2 appear to not have been sent. They don't even appear on > lore: https://lore.kernel.org/all/cover.1766544407.git.y.j3ms.n@gmail.com/ Hi, I'm having some issues with Gmail. It's blocking some of the patches in the series [1]. I will resend the whole series using b4 to avoid further issues. Apologies for the noise. [1] https://rust-for-linux.zulipchat.com/#narrow/stream/x/topic/x/near/565266787
© 2016 - 2026 Red Hat, Inc.