Skip to content

Commit c998df2

Browse files
committed
Move MessageReceiver and MessageArguments to runtime module
1 parent cf8b146 commit c998df2

28 files changed

+117
-112
lines changed

crates/objc2/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
2727
who are `IsAllocableAnyThread`.
2828
* **BREAKING**: Moved the `MethodImplementation` trait from the `declare`
2929
module to the `runtime` module.
30+
* **BREAKING**: Moved the `MessageReceiver` and `MessageArguments` traits to
31+
the `runtime` module.
3032

3133
### Deprecated
3234
* Soft deprecated using `msg_send!` without a comma between arguments (i.e.

crates/objc2/src/__macro_helpers/declare_class.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ use objc2_encode::Encoding;
22

33
use crate::encode::Encode;
44
use crate::rc::{Allocated, Id};
5-
use crate::runtime::AnyObject;
6-
use crate::{ClassType, Message, MessageReceiver};
5+
use crate::runtime::{AnyObject, MessageReceiver};
6+
use crate::{ClassType, Message};
77

88
use super::{CopyOrMutCopy, Init, MaybeUnwrap, New, Other};
99
use crate::mutability;

crates/objc2/src/__macro_helpers/mod.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@ use std::collections::HashSet;
66

77
use crate::declare::ClassBuilder;
88
use crate::encode::Encode;
9-
use crate::message::__TupleExtender;
109
use crate::rc::{Allocated, Id};
10+
use crate::runtime::message::__TupleExtender;
1111
#[cfg(all(debug_assertions, feature = "verify"))]
1212
use crate::runtime::MethodDescription;
13-
use crate::runtime::{AnyClass, AnyObject, AnyProtocol, MethodImplementation, Sel};
14-
use crate::{Message, MessageArguments, MessageReceiver};
13+
use crate::runtime::{
14+
AnyClass, AnyObject, AnyProtocol, MessageArguments, MessageReceiver, MethodImplementation, Sel,
15+
};
16+
use crate::Message;
1517

1618
pub use core::borrow::{Borrow, BorrowMut};
1719
pub use core::cell::UnsafeCell;

crates/objc2/src/declare/ivar.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,8 +320,8 @@ mod tests {
320320
use crate::declare::{IvarBool, IvarEncode};
321321
use crate::mutability::Mutable;
322322
use crate::rc::Id;
323-
use crate::runtime::NSObject;
324-
use crate::{declare_class, msg_send, msg_send_id, test_utils, ClassType, MessageReceiver};
323+
use crate::runtime::{MessageReceiver, NSObject};
324+
use crate::{declare_class, msg_send, msg_send_id, test_utils, ClassType};
325325

326326
struct TestIvar;
327327

crates/objc2/src/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,6 @@ pub use objc_sys as ffi;
190190

191191
#[doc(no_inline)]
192192
pub use self::encode::{Encode, Encoding, RefEncode};
193-
pub use self::message::{MessageArguments, MessageReceiver};
194193
pub use self::top_level_traits::{ClassType, Message, ProtocolType};
195194

196195
#[cfg(feature = "objc2-proc-macros")]
@@ -213,7 +212,6 @@ pub mod declare;
213212
pub mod encode;
214213
pub mod exception;
215214
mod macros;
216-
mod message;
217215
pub mod mutability;
218216
pub mod rc;
219217
pub mod runtime;

crates/objc2/src/macros/declare_class.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,7 @@ macro_rules! __declare_class_inner {
590590
// most Objective-C code in the wild don't contain
591591
// this; but we _are_ ARC, so we must do this.
592592
unsafe {
593-
$crate::MessageReceiver::__send_super_message_static(
593+
$crate::runtime::MessageReceiver::__send_super_message_static(
594594
__objc2_self,
595595
__objc2_cmd, // Reuse the selector
596596
(), // No arguments

crates/objc2/src/macros/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -717,12 +717,12 @@ macro_rules! __class_inner {
717717
///
718718
/// Variadic arguments are currently not supported.
719719
///
720-
/// [`MessageReceiver`]: crate::MessageReceiver
720+
/// [`MessageReceiver`]: crate::runtime::MessageReceiver
721721
/// [`rc::Id`]: crate::rc::Id
722722
/// [`ClassType`]: crate::ClassType
723723
/// [`Encode`]: crate::Encode
724724
/// [`sel!`]: crate::sel
725-
/// [`MessageReceiver::send_message`]: crate::MessageReceiver::send_message
725+
/// [`MessageReceiver::send_message`]: crate::runtime::MessageReceiver::send_message
726726
///
727727
///
728728
/// # `bool` handling
@@ -1007,7 +1007,7 @@ macro_rules! __msg_send_helper {
10071007
// 1-tuple if there is only one.
10081008
//
10091009
// And use `::<_, _>` for better UI
1010-
result = $crate::MessageReceiver::$fn::<_, _>($($fn_args)+, $crate::sel!($($selector)*), ($($argument,)*));
1010+
result = $crate::runtime::MessageReceiver::$fn::<_, _>($($fn_args)+, $crate::sel!($($selector)*), ($($argument,)*));
10111011
result
10121012
});
10131013
}
@@ -1117,7 +1117,7 @@ macro_rules! msg_send_bool {
11171117
/// [`Id::retain`], [`Id::drop`] and [`Id::autorelease`] for that.
11181118
///
11191119
/// [sel-families]: https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-method-families
1120-
/// [`MessageReceiver`]: crate::MessageReceiver
1120+
/// [`MessageReceiver`]: crate::runtime::MessageReceiver
11211121
/// [`Id::retain_autoreleased`]: crate::rc::Id::retain_autoreleased
11221122
/// [arc-retainable]: https://clang.llvm.org/docs/AutomaticReferenceCounting.html#retainable-object-pointers-as-operands-and-arguments
11231123
/// [#173]: https://github.com/madsmtm/objc2/pull/173

crates/objc2/src/message.rs renamed to crates/objc2/src/runtime/message.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,8 +313,7 @@ fn panic_verify(cls: &AnyClass, sel: Sel, err: &crate::runtime::VerificationErro
313313
)
314314
}
315315

316-
// TODO: Make this fully private
317-
pub(crate) mod private {
316+
mod private {
318317
pub trait Sealed {}
319318
}
320319

@@ -633,6 +632,17 @@ unsafe impl<'a> MessageReceiver for &'a AnyClass {
633632
}
634633
}
635634

635+
#[cfg(test)]
636+
mod test_utils_hack {
637+
use super::*;
638+
use crate::test_utils::CustomObject;
639+
640+
// TODO: Remove the need for this hack
641+
impl private::Sealed for &CustomObject {}
642+
impl private::Sealed for &mut CustomObject {}
643+
impl private::Sealed for ManuallyDrop<CustomObject> {}
644+
}
645+
636646
mod message_args_private {
637647
pub trait Sealed {}
638648
}

crates/objc2/src/runtime/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ use std::os::raw::c_uint;
3232
#[doc(hidden)]
3333
pub mod __nsstring;
3434
mod bool;
35+
pub(crate) mod message;
3536
mod method_encoding_iter;
3637
mod method_implementation;
3738
mod nsobject;
@@ -52,6 +53,7 @@ use crate::{ffi, Message};
5253
pub use self::nsproxy::NSProxy as __NSProxy;
5354

5455
pub use self::bool::Bool;
56+
pub use self::message::{MessageArguments, MessageReceiver};
5557
pub use self::method_implementation::MethodImplementation;
5658
pub use self::nsobject::{NSObject, NSObjectProtocol};
5759
pub use self::nszone::NSZone;
@@ -1281,8 +1283,8 @@ mod tests {
12811283
use core::mem::size_of;
12821284

12831285
use super::*;
1286+
use crate::runtime::MessageReceiver;
12841287
use crate::test_utils;
1285-
use crate::MessageReceiver;
12861288
use crate::{msg_send, sel};
12871289

12881290
#[test]

crates/objc2/src/test_utils.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use std::os::raw::c_char;
44
use std::sync::Once;
55

66
use crate::declare::{ClassBuilder, ProtocolBuilder};
7-
use crate::runtime::{AnyClass, AnyObject, AnyProtocol, Sel};
8-
use crate::{ffi, Encode, Encoding, MessageReceiver};
7+
use crate::runtime::{AnyClass, AnyObject, AnyProtocol, MessageReceiver, Sel};
8+
use crate::{ffi, Encode, Encoding};
99
use crate::{msg_send, sel};
1010

1111
#[derive(Debug)]
@@ -21,11 +21,6 @@ impl CustomObject {
2121
}
2222
}
2323

24-
// TODO: Remove the need for this hack
25-
impl crate::message::private::Sealed for &CustomObject {}
26-
impl crate::message::private::Sealed for &mut CustomObject {}
27-
impl crate::message::private::Sealed for ManuallyDrop<CustomObject> {}
28-
2924
unsafe impl MessageReceiver for &CustomObject {
3025
type __Inner = AnyObject;
3126

0 commit comments

Comments
 (0)