fn reuse_pin_box<T: ?Sized, U, O, F>( boxed: Pin<Box<T>>, new_value: U, callback: F, ) -> Result<O, U>where F: FnOnce(Box<U>) -> O,