From f5a482faa1e4302e879533b9ce4e5a956af00cee Mon Sep 17 00:00:00 2001 From: HampusM Date: Sun, 30 Mar 2025 22:52:15 +0200 Subject: feat: add into_boxed fn to FieldOwned --- src/lib.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index dbce335..f482b5c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -812,6 +812,18 @@ impl FieldOwned<'_> unsafe { &*ptr.cast::() } } + + pub fn into_boxed(mut self) -> Box + { + assert_eq!(TypeId::of::(), self.field_metadata.type_id); + + let layout = self.bytes.layout(); + + assert_eq!(layout.size(), size_of::()); + assert_eq!(layout.align(), align_of::()); + + unsafe { Box::from_raw(self.bytes.as_slice_mut().as_mut_ptr().cast::()) } + } } #[derive(Debug)] -- cgit v1.2.3-18-g5258