Diffstat (limited to 'src/any/indirect.rs')
| -rw-r--r-- | src/any/indirect.rs | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/any/indirect.rs b/src/any/indirect.rs index ae70ef3..ffd3b78 100644 --- a/src/any/indirect.rs +++ b/src/any/indirect.rs @@ -32,7 +32,9 @@ pub(super) mod sealed { /// `value` must have been created by `Self::into_raw`. /// This function must not be called twice for the same `value`. /// The type `T` must be the one given to `Self::into_raw`. - unsafe fn from_raw<T: ?Sized + 'a>(value: MaybeUninit<[u8; INDIRECT_SIZE]>) -> Self::ForT<T>; + unsafe fn from_raw<T: ?Sized + 'a>( + value: MaybeUninit<[u8; INDIRECT_SIZE]>, + ) -> Self::ForT<T>; } /// An opaque set of bytes the size of a fat pointer. @@ -42,7 +44,7 @@ pub(super) mod sealed { pub struct RawIndirect<'a, I> { indirect: MaybeUninit<[u8; INDIRECT_SIZE]>, _lifetime: Invariant<'a>, - _generic: Marker<I> + _generic: Marker<I>, } impl<'a, I: Indirect<'a>> RawIndirect<'a, I> { @@ -50,7 +52,7 @@ pub(super) mod sealed { Self { indirect: I::into_raw(indirect), _lifetime: Default::default(), - _generic: Default::default() + _generic: Default::default(), } } @@ -62,9 +64,7 @@ pub(super) mod sealed { // this type is not clone or copy. // The caller makes sure that the T is the same. // Also the lifetime 'a must be the same because Self is invariant over it. - unsafe { - I::from_raw(self.indirect) - } + unsafe { I::from_raw(self.indirect) } } } @@ -76,20 +76,20 @@ pub(super) mod sealed { fn run(&self); } - const _: () = - assert!(core::mem::size_of::<&dyn Helper>() <= core::mem::size_of::<RawIndirect<'_, Ref>>()); + const _: () = assert!( + core::mem::size_of::<&dyn Helper>() <= core::mem::size_of::<RawIndirect<'_, Ref>>() + ); // Borrow doesn't need to be dropped. - const _: () = - assert!(!core::mem::needs_drop::<&i32>()); + const _: () = assert!(!core::mem::needs_drop::<&i32>()); const _: () = assert!( - core::mem::size_of::<&mut dyn Helper>() <= core::mem::size_of::<sealed::RawIndirect<'_, Mut>>() + core::mem::size_of::<&mut dyn Helper>() + <= core::mem::size_of::<sealed::RawIndirect<'_, Mut>>() ); // Mutable borrow doesn't need to be dropped. - const _: () = - assert!(!core::mem::needs_drop::<&mut i32>()); + const _: () = assert!(!core::mem::needs_drop::<&mut i32>()); impl<'a> Sealed<'a> for Ref { fn into_raw<T: ?Sized + 'a>(value: Self::ForT<T>) -> MaybeUninit<[u8; INDIRECT_SIZE]> { @@ -171,7 +171,7 @@ mod test { let x = 42; let y: &i32 = &x; let z = RawIndirect::<Ref>::new(y); - + // SAFETY: Same type as y which we made it from. let w: &i32 = unsafe { z.into_inner() }; @@ -231,7 +231,7 @@ mod test { // SAFETY: Same type as y which we made it from. let w: &mut dyn AddOne = unsafe { z.into_inner() }; - + w.add_one(); assert_eq!(x, 43); |