Skip to content

Commit aa118cb

Browse files
committed
Make MessageReceiver::as_raw_receiver private
1 parent 5f5ff6c commit aa118cb

File tree

3 files changed

+21
-19
lines changed

3 files changed

+21
-19
lines changed

objc2/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6868

6969
### Removed
7070
* **BREAKING**: `ManuallyDrop` no longer implements `Message` directly.
71+
* **BREAKING**: `MessageReceiver::as_raw_receiver` is no longer public.
7172

7273

7374
## 0.3.0-alpha.6 - 2022-01-03

objc2/src/message/mod.rs

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,11 @@ pub(crate) mod private {
9898
///
9999
/// # Safety
100100
///
101-
/// [`Self::as_raw_receiver`] must be implemented correctly.
101+
/// This is a sealed trait, and should not need to be implemented. Open an
102+
/// issue if you know a use-case where this restrition should be lifted!
102103
pub unsafe trait MessageReceiver: private::Sealed + Sized {
103-
/// Get a raw pointer to the receiver of the message.
104-
fn as_raw_receiver(self) -> *mut Object;
104+
#[doc(hidden)]
105+
fn __as_raw_receiver(self) -> *mut Object;
105106

106107
/// Sends a message to self with the given selector and arguments.
107108
///
@@ -126,7 +127,7 @@ pub unsafe trait MessageReceiver: private::Sealed + Sized {
126127
A: MessageArguments,
127128
R: Encode,
128129
{
129-
let this = self.as_raw_receiver();
130+
let this = self.__as_raw_receiver();
130131
// TODO: Always enable this when `debug_assertions` are on.
131132
#[cfg(feature = "verify_message")]
132133
{
@@ -173,7 +174,7 @@ pub unsafe trait MessageReceiver: private::Sealed + Sized {
173174
A: MessageArguments,
174175
R: Encode,
175176
{
176-
let this = self.as_raw_receiver();
177+
let this = self.__as_raw_receiver();
177178
#[cfg(feature = "verify_message")]
178179
{
179180
if this.is_null() {
@@ -210,7 +211,7 @@ pub unsafe trait MessageReceiver: private::Sealed + Sized {
210211
A: EncodeArguments,
211212
R: Encode,
212213
{
213-
let obj = unsafe { &*self.as_raw_receiver() };
214+
let obj = unsafe { &*self.__as_raw_receiver() };
214215
verify_message_signature::<A, R>(obj.class(), sel).map_err(MessageError::from)
215216
}
216217
}
@@ -220,70 +221,70 @@ pub unsafe trait MessageReceiver: private::Sealed + Sized {
220221

221222
unsafe impl<T: Message + ?Sized> MessageReceiver for *const T {
222223
#[inline]
223-
fn as_raw_receiver(self) -> *mut Object {
224+
fn __as_raw_receiver(self) -> *mut Object {
224225
self as *mut T as *mut Object
225226
}
226227
}
227228

228229
unsafe impl<T: Message + ?Sized> MessageReceiver for *mut T {
229230
#[inline]
230-
fn as_raw_receiver(self) -> *mut Object {
231+
fn __as_raw_receiver(self) -> *mut Object {
231232
self as *mut Object
232233
}
233234
}
234235

235236
unsafe impl<T: Message + ?Sized> MessageReceiver for NonNull<T> {
236237
#[inline]
237-
fn as_raw_receiver(self) -> *mut Object {
238+
fn __as_raw_receiver(self) -> *mut Object {
238239
self.as_ptr() as *mut Object
239240
}
240241
}
241242

242243
unsafe impl<'a, T: Message + ?Sized> MessageReceiver for &'a T {
243244
#[inline]
244-
fn as_raw_receiver(self) -> *mut Object {
245+
fn __as_raw_receiver(self) -> *mut Object {
245246
self as *const T as *mut T as *mut Object
246247
}
247248
}
248249

249250
unsafe impl<'a, T: Message + ?Sized> MessageReceiver for &'a mut T {
250251
#[inline]
251-
fn as_raw_receiver(self) -> *mut Object {
252+
fn __as_raw_receiver(self) -> *mut Object {
252253
self as *const T as *mut T as *mut Object
253254
}
254255
}
255256

256257
unsafe impl<'a, T: Message + ?Sized, O: Ownership> MessageReceiver for &'a Id<T, O> {
257258
#[inline]
258-
fn as_raw_receiver(self) -> *mut Object {
259+
fn __as_raw_receiver(self) -> *mut Object {
259260
Id::as_ptr(self) as *mut Object
260261
}
261262
}
262263

263264
unsafe impl<'a, T: Message + ?Sized> MessageReceiver for &'a mut Id<T, Owned> {
264265
#[inline]
265-
fn as_raw_receiver(self) -> *mut Object {
266+
fn __as_raw_receiver(self) -> *mut Object {
266267
Id::as_mut_ptr(self) as *mut Object
267268
}
268269
}
269270

270271
unsafe impl<T: Message + ?Sized, O: Ownership> MessageReceiver for ManuallyDrop<Id<T, O>> {
271272
#[inline]
272-
fn as_raw_receiver(self) -> *mut Object {
273+
fn __as_raw_receiver(self) -> *mut Object {
273274
Id::consume_as_ptr(self) as *mut Object
274275
}
275276
}
276277

277278
unsafe impl MessageReceiver for *const Class {
278279
#[inline]
279-
fn as_raw_receiver(self) -> *mut Object {
280+
fn __as_raw_receiver(self) -> *mut Object {
280281
self as *mut Class as *mut Object
281282
}
282283
}
283284

284285
unsafe impl<'a> MessageReceiver for &'a Class {
285286
#[inline]
286-
fn as_raw_receiver(self) -> *mut Object {
287+
fn __as_raw_receiver(self) -> *mut Object {
287288
self as *const Class as *mut Class as *mut Object
288289
}
289290
}

objc2/src/test_utils.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,21 @@ impl crate::message::private::Sealed for ManuallyDrop<CustomObject> {}
2727

2828
unsafe impl MessageReceiver for &CustomObject {
2929
#[inline]
30-
fn as_raw_receiver(self) -> *mut Object {
30+
fn __as_raw_receiver(self) -> *mut Object {
3131
self.obj
3232
}
3333
}
3434

3535
unsafe impl MessageReceiver for &mut CustomObject {
3636
#[inline]
37-
fn as_raw_receiver(self) -> *mut Object {
37+
fn __as_raw_receiver(self) -> *mut Object {
3838
self.obj
3939
}
4040
}
4141

4242
unsafe impl MessageReceiver for ManuallyDrop<CustomObject> {
4343
#[inline]
44-
fn as_raw_receiver(self) -> *mut Object {
44+
fn __as_raw_receiver(self) -> *mut Object {
4545
self.obj
4646
}
4747
}

0 commit comments

Comments
 (0)