]> git.hungrycats.org Git - linux/commit
rust: pin-init: remove `E` from `InitClosure`
authorGary Guo <gary@garyguo.net>
Wed, 27 May 2026 17:19:57 +0000 (18:19 +0100)
committerGary Guo <gary@garyguo.net>
Fri, 29 May 2026 20:34:53 +0000 (21:34 +0100)
commitf85906616ec70d1d0178073b16ebd1c7f6ff1ee7
treec0df3fceee2dbb081cb1c8ff4c91874161afdebf
parent79bc923ae2a60a227907697abab4ed26c3fc3670
rust: pin-init: remove `E` from `InitClosure`

Move `E` from type to trait impl block. This greatly shortens the
monomorphized type names. The `__pinned_init` function name is only
slightly shortened as it still encodes the `E` as part of `PinInit<T, E>`
in the symbol.

`T` cannot be moved to trait impl block otherwise it will start to conflict
with the `impl Init<T> for T` as Rust cannot deduce that there're no types
that fulfill `T: FnOnce(*mut T)`.

Link: https://patch.msgid.link/20260527-pin-init-sync-v1-6-e20335ed2501@garyguo.net
Signed-off-by: Gary Guo <gary@garyguo.net>
rust/pin-init/src/lib.rs