Messages in this thread Patch in this message | | | From | Asahi Lina <> | Date | Fri, 14 Jul 2023 18:17:16 +0900 | Subject | [PATCH] rust: init: Implement Zeroable::zeroed() |
| |
By analogy to Default::default(), this just returns the zeroed representation of the type directly. init::zeroed() is the version that returns an initializer.
Signed-off-by: Asahi Lina <lina@asahilina.net> --- rust/kernel/init.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/rust/kernel/init.rs b/rust/kernel/init.rs index b4332a4ec1f4..c300ce39ac10 100644 --- a/rust/kernel/init.rs +++ b/rust/kernel/init.rs @@ -1354,7 +1354,14 @@ pub unsafe trait PinnedDrop: __internal::HasPinData { /// ```rust,ignore /// let val: Self = unsafe { core::mem::zeroed() }; /// ``` -pub unsafe trait Zeroable {} +pub unsafe trait Zeroable: core::marker::Sized { + /// Create a new zeroed T. + /// + /// Directly returns a zeroed T, analogous to Default::default(). + fn zeroed() -> Self { + unsafe { core::mem::zeroed() } + } +} /// Create a new zeroed T. /// --- base-commit: 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5 change-id: 20230714-zeroed-dd05bc737f85 Thank you, ~~ Lina
| |