/// Forward selector and arguments to `MsgSend::send_message[_error]`. /// /// Note: We can't forward to `msg_send!` since that doesn't support selectors /// with space between. #[doc(hidden)] #[macro_export]
macro_rules! __method_msg_send { // Selector with no arguments
(
($receiver:expr)
($sel:ident)
()
// Skip using `MainThreadMarker` in the message send. // // This is a purely textual match, and using e.g. `objc2::MainThreadMarker` // would fail - but that would just be detected as giving a wrong number // of arguments, so it's fine for now.
(
($receiver:expr)
($($sel_rest:tt)*)
($arg:ident: MainThreadMarker $(, $($params_rest:tt)*)?)
// Notice the "+" here; we must make sure we actually _did_ parse // a selector, and haven't just gotten an empty `#[unsafe(method())]`.
($($sel_parsed:tt)+)
($($arg_parsed:tt)*)
($($method_family:tt)*)
) => {
$crate::__msg_send_helper! {
($receiver)
($($method_family)*)
(MsgSend::send_message)
($($sel_parsed)*)
($($arg_parsed)*)
}
};
// Error return
(
($receiver:expr) // `sel:_` without a corresponding argument
($sel:ident : _)
()
($($sel_parsed:tt)*)
($($arg_parsed:tt)*)
($($method_family:tt)*)
) => ({
$crate::__macro_helpers::compile_error!( "number of arguments in function and selector did not match"
)
});
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-08-25)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.