Skip to content

Commit 434f46d

Browse files
committed
Add Id::cast
1 parent 0cb6b97 commit 434f46d

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

objc2/src/rc/id.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,14 @@ impl<T: Message + ?Sized> Id<T, Unknown> {
379379
let ptr = ManuallyDrop::new(self).ptr;
380380
unsafe { Id::new(ptr) }
381381
}
382+
383+
#[inline]
384+
// TODO: Can we make this safe?
385+
pub unsafe fn cast<U: Message>(self) -> Id<U, Unknown> {
386+
// Can't use `NonNull::cast` yet
387+
let ptr = ManuallyDrop::new(self).ptr.cast();
388+
unsafe { Id::new(ptr) }
389+
}
382390
}
383391

384392
impl<T: Message> Id<T, Unknown> {

0 commit comments

Comments
 (0)