Add impls for dropping RustString/RustVec ffi wrappers
diff --git a/src/rust_string.rs b/src/rust_string.rs
index 77a83f6..5133694 100644
--- a/src/rust_string.rs
+++ b/src/rust_string.rs
@@ -1,5 +1,6 @@
 use alloc::string::String;
 use core::mem::{self, MaybeUninit};
+use core::ptr;
 
 // ABI compatible with C++ rust::String (not necessarily alloc::string::String).
 #[repr(C)]
@@ -33,6 +34,12 @@
     }
 }
 
+impl Drop for RustString {
+    fn drop(&mut self) {
+        unsafe { ptr::drop_in_place(self.as_mut_string()) }
+    }
+}
+
 const_assert_eq!(mem::size_of::<[usize; 3]>(), mem::size_of::<RustString>());
 const_assert_eq!(mem::size_of::<String>(), mem::size_of::<RustString>());
 const_assert_eq!(mem::align_of::<String>(), mem::align_of::<RustString>());