1#[cfg(feature = "system-multicastdelegate-types")]
4mod __types {
5 #[allow(unused_imports)] use ::unity::prelude::*;
6
7 use super::*;
8 use crate::system::{
9 delegate::{Delegate, IDelegate},
10 object::{IObject, Object},
11 };
12
13 #[doc=include_str!(concat!(env!("CARGO_MANIFEST_DIR"),"/","docs/system/multicastdelegate/MulticastDelegate.md"))]
14 #[::unity::class(namespace = "System", name = "MulticastDelegate")]
15 #[parent(crate::system::delegate::Delegate)]
16 pub struct MulticastDelegate {
17 #[offset(104)]
18 #[rename(name = "delegates")]
19 pub delegates: ::unity::Array<crate::system::delegate::Delegate>,
20 }
21}
22
23#[cfg(feature = "system-multicastdelegate-types")]
24pub use __types::*;
25
26#[cfg(feature = "system-multicastdelegate")]
27pub trait IMulticastDelegateMethods: IMulticastDelegate {
28 #[doc = "`DynamicInvokeImpl(::unity::Array<crate::system::object::Object>)` overload"]
29 fn dynamic_invoke_impl(self, args: impl ::core::convert::Into<::unity::Array<crate::system::object::Object>>) -> crate::system::object::Object {
30 unsafe {
31 let __receiver = <MulticastDelegate as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
32 {
33 let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
34 let __vi = *__vt.get(6usize).unwrap_or_else(|| {
35 panic!(
36 "unity: virtual slot {}
37 out of range (vtable len {}
38) on the runtime class behind {}
39 (method `{}
40`)",
41 6usize,
42 __vt.len(),
43 <MulticastDelegate as ::unity::ClassIdentity>::NAME,
44 "DynamicInvokeImpl",
45 )
46 });
47 let __inner: extern "C" fn(
48 MulticastDelegate,
49 ::unity::Array<crate::system::object::Object>,
50 ::unity::OptionalMethod,
51 ) -> crate::system::object::Object = ::core::mem::transmute(__vi.method_ptr);
52 let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
53 __inner(__receiver, ::core::convert::Into::into(args), __mi)
54 }
55 }
56 }
57 #[doc = "`Equals(crate::system::object::Object)` overload"]
58 fn equals(self, obj: impl ::core::convert::Into<crate::system::object::Object>) -> bool {
59 unsafe {
60 let __receiver = <MulticastDelegate as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
61 {
62 let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
63 let __vi = *__vt.get(0usize).unwrap_or_else(|| {
64 panic!(
65 "unity: virtual slot {}
66 out of range (vtable len {}
67) on the runtime class behind {}
68 (method `{}
69`)",
70 0usize,
71 __vt.len(),
72 <MulticastDelegate as ::unity::ClassIdentity>::NAME,
73 "Equals",
74 )
75 });
76 let __inner: extern "C" fn(MulticastDelegate, crate::system::object::Object, ::unity::OptionalMethod) -> bool =
77 ::core::mem::transmute(__vi.method_ptr);
78 let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
79 __inner(__receiver, ::core::convert::Into::into(obj), __mi)
80 }
81 }
82 }
83 #[doc = "`GetHashCode()` overload"]
84 fn get_hash_code(self) -> i32 {
85 unsafe {
86 let __receiver = <MulticastDelegate as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
87 {
88 let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
89 let __vi = *__vt.get(2usize).unwrap_or_else(|| {
90 panic!(
91 "unity: virtual slot {}
92 out of range (vtable len {}
93) on the runtime class behind {}
94 (method `{}
95`)",
96 2usize,
97 __vt.len(),
98 <MulticastDelegate as ::unity::ClassIdentity>::NAME,
99 "GetHashCode",
100 )
101 });
102 let __inner: extern "C" fn(MulticastDelegate, ::unity::OptionalMethod) -> i32 = ::core::mem::transmute(__vi.method_ptr);
103 let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
104 __inner(__receiver, __mi)
105 }
106 }
107 }
108 #[doc = "`GetMethodImpl()` overload"]
109 fn get_method_impl(self) -> crate::system::reflection::methodinfo::MethodInfo {
110 unsafe {
111 let __receiver = <MulticastDelegate as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
112 {
113 let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
114 let __vi = *__vt.get(8usize).unwrap_or_else(|| {
115 panic!(
116 "unity: virtual slot {}
117 out of range (vtable len {}
118) on the runtime class behind {}
119 (method `{}
120`)",
121 8usize,
122 __vt.len(),
123 <MulticastDelegate as ::unity::ClassIdentity>::NAME,
124 "GetMethodImpl",
125 )
126 });
127 let __inner: extern "C" fn(MulticastDelegate, ::unity::OptionalMethod) -> crate::system::reflection::methodinfo::MethodInfo =
128 ::core::mem::transmute(__vi.method_ptr);
129 let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
130 __inner(__receiver, __mi)
131 }
132 }
133 }
134 #[doc = "`GetInvocationList()` overload"]
135 fn get_invocation_list(self) -> ::unity::Array<crate::system::delegate::Delegate> {
136 unsafe {
137 let __receiver = <MulticastDelegate as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
138 {
139 let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
140 let __vi = *__vt.get(10usize).unwrap_or_else(|| {
141 panic!(
142 "unity: virtual slot {}
143 out of range (vtable len {}
144) on the runtime class behind {}
145 (method `{}
146`)",
147 10usize,
148 __vt.len(),
149 <MulticastDelegate as ::unity::ClassIdentity>::NAME,
150 "GetInvocationList",
151 )
152 });
153 let __inner: extern "C" fn(MulticastDelegate, ::unity::OptionalMethod) -> ::unity::Array<crate::system::delegate::Delegate> =
154 ::core::mem::transmute(__vi.method_ptr);
155 let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
156 __inner(__receiver, __mi)
157 }
158 }
159 }
160 #[doc = "`CombineImpl(crate::system::delegate::Delegate)` overload"]
161 fn combine_impl(self, follow: impl ::core::convert::Into<crate::system::delegate::Delegate>) -> crate::system::delegate::Delegate {
162 unsafe {
163 let __receiver = <MulticastDelegate as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
164 {
165 let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
166 let __vi = *__vt.get(11usize).unwrap_or_else(|| {
167 panic!(
168 "unity: virtual slot {}
169 out of range (vtable len {}
170) on the runtime class behind {}
171 (method `{}
172`)",
173 11usize,
174 __vt.len(),
175 <MulticastDelegate as ::unity::ClassIdentity>::NAME,
176 "CombineImpl",
177 )
178 });
179 let __inner: extern "C" fn(
180 MulticastDelegate,
181 crate::system::delegate::Delegate,
182 ::unity::OptionalMethod,
183 ) -> crate::system::delegate::Delegate = ::core::mem::transmute(__vi.method_ptr);
184 let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
185 __inner(__receiver, ::core::convert::Into::into(follow), __mi)
186 }
187 }
188 }
189 #[doc = "`LastIndexOf(::unity::Array<crate::system::delegate::Delegate>, ::unity::Array<crate::system::delegate::Delegate>)` overload"]
190 fn last_index_of(
191 self,
192 haystack: impl ::core::convert::Into<::unity::Array<crate::system::delegate::Delegate>>,
193 needle: impl ::core::convert::Into<::unity::Array<crate::system::delegate::Delegate>>,
194 ) -> i32 {
195 unsafe {
196 let __receiver = <MulticastDelegate as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
197 ::unity::il2cpp_call!((::unity::module_base()+0x3385200usize)as*mut u8,i32;
198(MulticastDelegate)__receiver,(::unity::Array<crate::system::delegate::Delegate>)::core::convert::Into::into(haystack),(::unity::Array<crate::system::delegate::Delegate>)::core::convert::Into::into(needle))
199 }
200 }
201 #[doc = "`RemoveImpl(crate::system::delegate::Delegate)` overload"]
202 fn remove_impl(self, value: impl ::core::convert::Into<crate::system::delegate::Delegate>) -> crate::system::delegate::Delegate {
203 unsafe {
204 let __receiver = <MulticastDelegate as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
205 {
206 let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
207 let __vi = *__vt.get(12usize).unwrap_or_else(|| {
208 panic!(
209 "unity: virtual slot {}
210 out of range (vtable len {}
211) on the runtime class behind {}
212 (method `{}
213`)",
214 12usize,
215 __vt.len(),
216 <MulticastDelegate as ::unity::ClassIdentity>::NAME,
217 "RemoveImpl",
218 )
219 });
220 let __inner: extern "C" fn(
221 MulticastDelegate,
222 crate::system::delegate::Delegate,
223 ::unity::OptionalMethod,
224 ) -> crate::system::delegate::Delegate = ::core::mem::transmute(__vi.method_ptr);
225 let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
226 __inner(__receiver, ::core::convert::Into::into(value), __mi)
227 }
228 }
229 }
230}
231
232#[cfg(feature = "system-multicastdelegate")]
233impl<__T: IMulticastDelegate> IMulticastDelegateMethods for __T {}
234
235#[cfg(feature = "system-multicastdelegate")]
236impl MulticastDelegate {
237 pub fn dynamic_invoke_impl_method_info() -> &'static ::unity::il2cpp::MethodInfo {
238 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[1]
239 }
240
241 pub fn equals_method_info() -> &'static ::unity::il2cpp::MethodInfo {
242 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[2]
243 }
244
245 pub fn get_hash_code_method_info() -> &'static ::unity::il2cpp::MethodInfo {
246 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[3]
247 }
248
249 pub fn get_method_impl_method_info() -> &'static ::unity::il2cpp::MethodInfo {
250 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[4]
251 }
252
253 pub fn get_invocation_list_method_info() -> &'static ::unity::il2cpp::MethodInfo {
254 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[5]
255 }
256
257 pub fn combine_impl_method_info() -> &'static ::unity::il2cpp::MethodInfo {
258 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[6]
259 }
260
261 pub fn last_index_of_method_info() -> &'static ::unity::il2cpp::MethodInfo {
262 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[7]
263 }
264
265 pub fn remove_impl_method_info() -> &'static ::unity::il2cpp::MethodInfo {
266 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[8]
267 }
268}
269
270#[cfg(feature = "system-multicastdelegate")]
271impl MulticastDelegate {
272 #[doc = "Direct (non-virtual) call to `MulticastDelegate`'s own `DynamicInvokeImpl`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
273 pub unsafe fn dynamic_invoke_impl(
274 this: impl ::core::convert::Into<::unity::IlInstance>,
275 args: ::unity::Array<crate::system::object::Object>,
276 ) -> crate::system::object::Object {
277 let __mi = Self::dynamic_invoke_impl_method_info();
278 let __inner: extern "C" fn(
279 ::unity::IlInstance,
280 ::unity::Array<crate::system::object::Object>,
281 ::unity::OptionalMethod,
282 ) -> crate::system::object::Object = ::core::mem::transmute(__mi.method_ptr);
283 __inner(this.into(), args, ::core::option::Option::None)
284 }
285
286 #[doc = "Direct (non-virtual) call to `MulticastDelegate`'s own `Equals`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
287 pub unsafe fn equals(this: impl ::core::convert::Into<::unity::IlInstance>, obj: crate::system::object::Object) -> bool {
288 let __mi = Self::equals_method_info();
289 let __inner: extern "C" fn(::unity::IlInstance, crate::system::object::Object, ::unity::OptionalMethod) -> bool =
290 ::core::mem::transmute(__mi.method_ptr);
291 __inner(this.into(), obj, ::core::option::Option::None)
292 }
293
294 #[doc = "Direct (non-virtual) call to `MulticastDelegate`'s own `GetHashCode`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
295 pub unsafe fn get_hash_code(this: impl ::core::convert::Into<::unity::IlInstance>) -> i32 {
296 let __mi = Self::get_hash_code_method_info();
297 let __inner: extern "C" fn(::unity::IlInstance, ::unity::OptionalMethod) -> i32 = ::core::mem::transmute(__mi.method_ptr);
298 __inner(this.into(), ::core::option::Option::None)
299 }
300
301 #[doc = "Direct (non-virtual) call to `MulticastDelegate`'s own `GetMethodImpl`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
302 pub unsafe fn get_method_impl(this: impl ::core::convert::Into<::unity::IlInstance>) -> crate::system::reflection::methodinfo::MethodInfo {
303 let __mi = Self::get_method_impl_method_info();
304 let __inner: extern "C" fn(::unity::IlInstance, ::unity::OptionalMethod) -> crate::system::reflection::methodinfo::MethodInfo =
305 ::core::mem::transmute(__mi.method_ptr);
306 __inner(this.into(), ::core::option::Option::None)
307 }
308
309 #[doc = "Direct (non-virtual) call to `MulticastDelegate`'s own `GetInvocationList`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
310 pub unsafe fn get_invocation_list(this: impl ::core::convert::Into<::unity::IlInstance>) -> ::unity::Array<crate::system::delegate::Delegate> {
311 let __mi = Self::get_invocation_list_method_info();
312 let __inner: extern "C" fn(::unity::IlInstance, ::unity::OptionalMethod) -> ::unity::Array<crate::system::delegate::Delegate> =
313 ::core::mem::transmute(__mi.method_ptr);
314 __inner(this.into(), ::core::option::Option::None)
315 }
316
317 #[doc = "Direct (non-virtual) call to `MulticastDelegate`'s own `CombineImpl`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
318 pub unsafe fn combine_impl(
319 this: impl ::core::convert::Into<::unity::IlInstance>,
320 follow: crate::system::delegate::Delegate,
321 ) -> crate::system::delegate::Delegate {
322 let __mi = Self::combine_impl_method_info();
323 let __inner: extern "C" fn(
324 ::unity::IlInstance,
325 crate::system::delegate::Delegate,
326 ::unity::OptionalMethod,
327 ) -> crate::system::delegate::Delegate = ::core::mem::transmute(__mi.method_ptr);
328 __inner(this.into(), follow, ::core::option::Option::None)
329 }
330
331 #[doc = "Direct (non-virtual) call to `MulticastDelegate`'s own `RemoveImpl`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
332 pub unsafe fn remove_impl(
333 this: impl ::core::convert::Into<::unity::IlInstance>,
334 value: crate::system::delegate::Delegate,
335 ) -> crate::system::delegate::Delegate {
336 let __mi = Self::remove_impl_method_info();
337 let __inner: extern "C" fn(
338 ::unity::IlInstance,
339 crate::system::delegate::Delegate,
340 ::unity::OptionalMethod,
341 ) -> crate::system::delegate::Delegate = ::core::mem::transmute(__mi.method_ptr);
342 __inner(this.into(), value, ::core::option::Option::None)
343 }
344}
345
346#[cfg(feature = "system-multicastdelegate")]
347#[doc(hidden)]
348pub mod prelude {
349 pub use super::{IMulticastDelegate, IMulticastDelegateMethods, MulticastDelegate};
350 #[cfg(feature = "system-delegate")]
351 pub use crate::system::delegate::IDelegateMethods;
352 #[cfg(feature = "system-object")]
353 pub use crate::system::object::IObjectMethods;
354 pub use crate::system::{delegate::IDelegate, object::IObject};
355}