[PATCH v3 0/4] rust: add `TryFrom` and `Into` derive macros

Jesung Yang posted 4 patches 1 month, 2 weeks ago
Only 2 patches received!
There is a newer version of this series
rust/macros/convert.rs | 1546 ++++++++++++++++++++++++++++++++++++++++
rust/macros/lib.rs     |  319 +++++++++
2 files changed, 1865 insertions(+)
create mode 100644 rust/macros/convert.rs
[PATCH v3 0/4] rust: add `TryFrom` and `Into` derive macros
Posted by Jesung Yang 1 month, 2 weeks ago
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
Re: [PATCH v3 0/4] rust: add `TryFrom` and `Into` derive macros
Posted by Alexandre Courbot 1 month, 2 weeks ago
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/
Re: [PATCH v3 0/4] rust: add `TryFrom` and `Into` derive macros
Posted by Jesung Yang 1 month, 2 weeks ago
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