From 628b2d05c98d406be7d0d4373319ec12ac20e6b0 Mon Sep 17 00:00:00 2001 From: numzero Date: Wed, 23 Sep 2026 20:53:07 +0300 Subject: [PATCH] add Drop --- src/lib.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 97ecebf..8f659a9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -33,6 +33,13 @@ impl<'a, Trait: ?Sized + 'a> Dyn<'a, Trait> { } } +impl<'a, Trait: ?Sized + 'a> Drop for Dyn<'a, Trait> { + fn drop(&mut self) { + // SAFETY: `self` is valid for writing, and won't be accessed later. + unsafe { Self::ptr(self as *mut Self).drop_in_place() }; + } +} + impl<'a, Trait: ?Sized + 'a> ops::Deref for Dyn<'a, Trait> { type Target = Trait;