Skip to main content

engage/generated/moon_sharp/interpreter/interop/
methodmemberdescriptor.rs

1// @generated by il2cpp-bindgen — do not edit by hand.
2
3#[cfg(feature = "moon_sharp-interpreter-interop-methodmemberdescriptor-types")]
4mod __types {
5    #[allow(unused_imports)] use ::unity::prelude::*;
6
7    use super::*;
8    use crate::{
9        moon_sharp::interpreter::interop::functionmemberdescriptorbase::{FunctionMemberDescriptorBase, IFunctionMemberDescriptorBase},
10        system::object::{IObject, Object},
11    };
12
13    #[doc=include_str!(concat!(env!("CARGO_MANIFEST_DIR"),"/","docs/moon_sharp/interpreter/interop/methodmemberdescriptor/MethodMemberDescriptor.md"))]
14    #[::unity::class(namespace = "MoonSharp.Interpreter.Interop", name = "MethodMemberDescriptor")]
15    #[parent(crate::moon_sharp::interpreter::interop::functionmemberdescriptorbase::FunctionMemberDescriptorBase)]
16    pub struct MethodMemberDescriptor {
17        #[offset(88)]
18        #[rename(name = "m_OptimizedFunc")]
19        pub m_optimized_func: crate::system::func_3::Func_3<
20            crate::system::object::Object,
21            ::unity::Array<crate::system::object::Object>,
22            crate::system::object::Object,
23        >,
24        #[offset(96)]
25        #[rename(name = "m_OptimizedAction")]
26        pub m_optimized_action: crate::system::action_2::Action_2<crate::system::object::Object, ::unity::Array<crate::system::object::Object>>,
27        #[offset(104)]
28        #[rename(name = "m_IsAction")]
29        pub m_is_action: bool,
30        #[offset(105)]
31        #[rename(name = "m_IsArrayCtor")]
32        pub m_is_array_ctor: bool,
33    }
34}
35
36#[cfg(feature = "moon_sharp-interpreter-interop-methodmemberdescriptor-types")]
37pub use __types::*;
38
39#[cfg(feature = "moon_sharp-interpreter-interop-methodmemberdescriptor")]
40#[doc(hidden)]
41#[allow(non_snake_case, non_camel_case_types, clippy::too_many_arguments)]
42mod __MethodMemberDescriptor_unity_raw {
43    use super::*;
44    #[doc(hidden)]
45    #[allow(non_snake_case)]
46    pub mod __lookup_get_method_info {
47        use super::*;
48        static METHOD: ::std::sync::LazyLock<::unity::Il2CppResult<&'static ::unity::il2cpp::MethodInfo>> = ::std::sync::LazyLock::new(|| {
49            let param_types: &[&'static ::unity::il2cpp::Il2CppType] = &[];
50            ::unity::lookup::method_info_on_class_with_signature(
51                <MethodMemberDescriptor as ::unity::ClassIdentity>::class(),
52                "get_MethodInfo",
53                0,
54                param_types,
55                false,
56            )
57        });
58        pub fn get_method_info() -> &'static ::unity::il2cpp::MethodInfo {
59            match &*METHOD {
60                ::core::result::Result::Ok(mi) => *mi,
61                ::core::result::Result::Err(e) => {
62                    panic!(
63                        "method lookup failed: {}
64::{}
65: {}
66",
67                        <MethodMemberDescriptor as ::unity::ClassIdentity>::NAME,
68                        "get_MethodInfo",
69                        e
70                    )
71                },
72            }
73        }
74    }
75    #[doc(hidden)]
76    #[allow(non_snake_case)]
77    pub mod __lookup_set_method_info {
78        use super::*;
79        static METHOD: ::std::sync::LazyLock<::unity::Il2CppResult<&'static ::unity::il2cpp::MethodInfo>> = ::std::sync::LazyLock::new(|| {
80            let param_types: &[&'static ::unity::il2cpp::Il2CppType] =
81                &[<crate::system::reflection::methodbase::MethodBase as ::unity::IlType>::il_type()];
82            ::unity::lookup::method_info_on_class_with_signature(
83                <MethodMemberDescriptor as ::unity::ClassIdentity>::class(),
84                "set_MethodInfo",
85                1,
86                param_types,
87                false,
88            )
89        });
90        pub fn get_method_info() -> &'static ::unity::il2cpp::MethodInfo {
91            match &*METHOD {
92                ::core::result::Result::Ok(mi) => *mi,
93                ::core::result::Result::Err(e) => {
94                    panic!(
95                        "method lookup failed: {}
96::{}
97: {}
98",
99                        <MethodMemberDescriptor as ::unity::ClassIdentity>::NAME,
100                        "set_MethodInfo",
101                        e
102                    )
103                },
104            }
105        }
106    }
107    #[doc(hidden)]
108    #[allow(non_snake_case)]
109    pub mod __lookup_get_access_mode {
110        use super::*;
111        static METHOD: ::std::sync::LazyLock<::unity::Il2CppResult<&'static ::unity::il2cpp::MethodInfo>> = ::std::sync::LazyLock::new(|| {
112            let param_types: &[&'static ::unity::il2cpp::Il2CppType] = &[];
113            ::unity::lookup::method_info_on_class_with_signature(
114                <MethodMemberDescriptor as ::unity::ClassIdentity>::class(),
115                "get_AccessMode",
116                0,
117                param_types,
118                false,
119            )
120        });
121        pub fn get_method_info() -> &'static ::unity::il2cpp::MethodInfo {
122            match &*METHOD {
123                ::core::result::Result::Ok(mi) => *mi,
124                ::core::result::Result::Err(e) => {
125                    panic!(
126                        "method lookup failed: {}
127::{}
128: {}
129",
130                        <MethodMemberDescriptor as ::unity::ClassIdentity>::NAME,
131                        "get_AccessMode",
132                        e
133                    )
134                },
135            }
136        }
137    }
138    #[doc(hidden)]
139    #[allow(non_snake_case)]
140    pub mod __lookup_set_access_mode {
141        use super::*;
142        static METHOD: ::std::sync::LazyLock<::unity::Il2CppResult<&'static ::unity::il2cpp::MethodInfo>> = ::std::sync::LazyLock::new(|| {
143            let param_types: &[&'static ::unity::il2cpp::Il2CppType] =
144                &[<crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode as ::unity::IlType>::il_type()];
145            ::unity::lookup::method_info_on_class_with_signature(
146                <MethodMemberDescriptor as ::unity::ClassIdentity>::class(),
147                "set_AccessMode",
148                1,
149                param_types,
150                false,
151            )
152        });
153        pub fn get_method_info() -> &'static ::unity::il2cpp::MethodInfo {
154            match &*METHOD {
155                ::core::result::Result::Ok(mi) => *mi,
156                ::core::result::Result::Err(e) => {
157                    panic!(
158                        "method lookup failed: {}
159::{}
160: {}
161",
162                        <MethodMemberDescriptor as ::unity::ClassIdentity>::NAME,
163                        "set_AccessMode",
164                        e
165                    )
166                },
167            }
168        }
169    }
170    #[doc(hidden)]
171    #[allow(non_snake_case)]
172    pub mod __lookup_get_is_constructor {
173        use super::*;
174        static METHOD: ::std::sync::LazyLock<::unity::Il2CppResult<&'static ::unity::il2cpp::MethodInfo>> = ::std::sync::LazyLock::new(|| {
175            let param_types: &[&'static ::unity::il2cpp::Il2CppType] = &[];
176            ::unity::lookup::method_info_on_class_with_signature(
177                <MethodMemberDescriptor as ::unity::ClassIdentity>::class(),
178                "get_IsConstructor",
179                0,
180                param_types,
181                false,
182            )
183        });
184        pub fn get_method_info() -> &'static ::unity::il2cpp::MethodInfo {
185            match &*METHOD {
186                ::core::result::Result::Ok(mi) => *mi,
187                ::core::result::Result::Err(e) => {
188                    panic!(
189                        "method lookup failed: {}
190::{}
191: {}
192",
193                        <MethodMemberDescriptor as ::unity::ClassIdentity>::NAME,
194                        "get_IsConstructor",
195                        e
196                    )
197                },
198            }
199        }
200    }
201    #[doc(hidden)]
202    #[allow(non_snake_case)]
203    pub mod __lookup_set_is_constructor {
204        use super::*;
205        static METHOD: ::std::sync::LazyLock<::unity::Il2CppResult<&'static ::unity::il2cpp::MethodInfo>> = ::std::sync::LazyLock::new(|| {
206            let param_types: &[&'static ::unity::il2cpp::Il2CppType] = &[<bool as ::unity::IlType>::il_type()];
207            ::unity::lookup::method_info_on_class_with_signature(
208                <MethodMemberDescriptor as ::unity::ClassIdentity>::class(),
209                "set_IsConstructor",
210                1,
211                param_types,
212                false,
213            )
214        });
215        pub fn get_method_info() -> &'static ::unity::il2cpp::MethodInfo {
216            match &*METHOD {
217                ::core::result::Result::Ok(mi) => *mi,
218                ::core::result::Result::Err(e) => {
219                    panic!(
220                        "method lookup failed: {}
221::{}
222: {}
223",
224                        <MethodMemberDescriptor as ::unity::ClassIdentity>::NAME,
225                        "set_IsConstructor",
226                        e
227                    )
228                },
229            }
230        }
231    }
232    #[doc(hidden)]
233    #[allow(non_snake_case)]
234    pub mod __lookup_ctor {
235        use super::*;
236        static METHOD: ::std::sync::LazyLock<::unity::Il2CppResult<&'static ::unity::il2cpp::MethodInfo>> = ::std::sync::LazyLock::new(|| {
237            let param_types: &[&'static ::unity::il2cpp::Il2CppType] = &[
238                <crate::system::reflection::methodbase::MethodBase as ::unity::IlType>::il_type(),
239                <crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode as ::unity::IlType>::il_type(),
240            ];
241            ::unity::lookup::method_info_on_class_with_signature(
242                <MethodMemberDescriptor as ::unity::ClassIdentity>::class(),
243                ".ctor",
244                2,
245                param_types,
246                false,
247            )
248        });
249        pub fn get_method_info() -> &'static ::unity::il2cpp::MethodInfo {
250            match &*METHOD {
251                ::core::result::Result::Ok(mi) => *mi,
252                ::core::result::Result::Err(e) => {
253                    panic!(
254                        "method lookup failed: {}
255::{}
256: {}
257",
258                        <MethodMemberDescriptor as ::unity::ClassIdentity>::NAME,
259                        ".ctor",
260                        e
261                    )
262                },
263            }
264        }
265    }
266    #[doc(hidden)]
267    #[allow(non_snake_case)]
268    pub mod __lookup_try_create_if_visible {
269        use super::*;
270        static METHOD: ::std::sync::LazyLock<::unity::Il2CppResult<&'static ::unity::il2cpp::MethodInfo>> = ::std::sync::LazyLock::new(|| {
271            let param_types: &[&'static ::unity::il2cpp::Il2CppType] = &[
272                <crate::system::reflection::methodbase::MethodBase as ::unity::IlType>::il_type(),
273                <crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode as ::unity::IlType>::il_type(),
274                <bool as ::unity::IlType>::il_type(),
275            ];
276            ::unity::lookup::method_info_on_class_with_signature(
277                <MethodMemberDescriptor as ::unity::ClassIdentity>::class(),
278                "TryCreateIfVisible",
279                3,
280                param_types,
281                true,
282            )
283        });
284        pub fn get_method_info() -> &'static ::unity::il2cpp::MethodInfo {
285            match &*METHOD {
286                ::core::result::Result::Ok(mi) => *mi,
287                ::core::result::Result::Err(e) => {
288                    panic!(
289                        "method lookup failed: {}
290::{}
291: {}
292",
293                        <MethodMemberDescriptor as ::unity::ClassIdentity>::NAME,
294                        "TryCreateIfVisible",
295                        e
296                    )
297                },
298            }
299        }
300    }
301    #[doc(hidden)]
302    #[allow(non_snake_case)]
303    pub mod __lookup_check_method_is_compatible {
304        use super::*;
305        static METHOD: ::std::sync::LazyLock<::unity::Il2CppResult<&'static ::unity::il2cpp::MethodInfo>> = ::std::sync::LazyLock::new(|| {
306            let param_types: &[&'static ::unity::il2cpp::Il2CppType] = &[
307                <crate::system::reflection::methodbase::MethodBase as ::unity::IlType>::il_type(),
308                <bool as ::unity::IlType>::il_type(),
309            ];
310            ::unity::lookup::method_info_on_class_with_signature(
311                <MethodMemberDescriptor as ::unity::ClassIdentity>::class(),
312                "CheckMethodIsCompatible",
313                2,
314                param_types,
315                true,
316            )
317        });
318        pub fn get_method_info() -> &'static ::unity::il2cpp::MethodInfo {
319            match &*METHOD {
320                ::core::result::Result::Ok(mi) => *mi,
321                ::core::result::Result::Err(e) => {
322                    panic!(
323                        "method lookup failed: {}
324::{}
325: {}
326",
327                        <MethodMemberDescriptor as ::unity::ClassIdentity>::NAME,
328                        "CheckMethodIsCompatible",
329                        e
330                    )
331                },
332            }
333        }
334    }
335}
336
337#[cfg(feature = "moon_sharp-interpreter-interop-methodmemberdescriptor")]
338impl MethodMemberDescriptor {
339    #[doc = "`TryCreateIfVisible(crate::system::reflection::methodbase::MethodBase, crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode, bool)` overload"]
340    pub fn try_create_if_visible(
341        method_base: impl ::core::convert::Into<crate::system::reflection::methodbase::MethodBase>,
342        access_mode: impl ::core::convert::Into<crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode>,
343        force_visibility: impl ::core::convert::Into<bool>,
344    ) -> crate::moon_sharp::interpreter::interop::methodmemberdescriptor::MethodMemberDescriptor {
345        unsafe {
346            ::unity::il2cpp_call!(__MethodMemberDescriptor_unity_raw::__lookup_try_create_if_visible::get_method_info().method_ptr,crate::moon_sharp::interpreter::interop::methodmemberdescriptor::MethodMemberDescriptor;
347(crate::system::reflection::methodbase::MethodBase)::core::convert::Into::into(method_base),(crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode)::core::convert::Into::into(access_mode),(bool)::core::convert::Into::into(force_visibility))
348        }
349    }
350
351    #[doc = "`CheckMethodIsCompatible(crate::system::reflection::methodbase::MethodBase, bool)` overload"]
352    pub fn check_method_is_compatible(
353        method_base: impl ::core::convert::Into<crate::system::reflection::methodbase::MethodBase>,
354        throw_exception: impl ::core::convert::Into<bool>,
355    ) -> bool {
356        unsafe {
357            ::unity::il2cpp_call!(__MethodMemberDescriptor_unity_raw::__lookup_check_method_is_compatible::get_method_info().method_ptr,bool;
358(crate::system::reflection::methodbase::MethodBase)::core::convert::Into::into(method_base),(bool)::core::convert::Into::into(throw_exception))
359        }
360    }
361}
362
363#[cfg(feature = "moon_sharp-interpreter-interop-methodmemberdescriptor")]
364pub trait IMethodMemberDescriptorMethods: IMethodMemberDescriptor {
365    #[doc = "`get_MethodInfo()` overload"]
366    fn get_method_info(self) -> crate::system::reflection::methodbase::MethodBase {
367        unsafe {
368            let __receiver =
369                <MethodMemberDescriptor as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
370            ::unity::il2cpp_call!(__MethodMemberDescriptor_unity_raw::__lookup_get_method_info::get_method_info().method_ptr,crate::system::reflection::methodbase::MethodBase;
371(MethodMemberDescriptor)__receiver)
372        }
373    }
374    #[doc = "`set_MethodInfo(crate::system::reflection::methodbase::MethodBase)` overload"]
375    fn set_method_info(self, value: impl ::core::convert::Into<crate::system::reflection::methodbase::MethodBase>) -> () {
376        unsafe {
377            let __receiver =
378                <MethodMemberDescriptor as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
379            ::unity::il2cpp_call!(__MethodMemberDescriptor_unity_raw::__lookup_set_method_info::get_method_info().method_ptr,();
380(MethodMemberDescriptor)__receiver,(crate::system::reflection::methodbase::MethodBase)::core::convert::Into::into(value))
381        }
382    }
383    #[doc = "`get_AccessMode()` overload"]
384    fn get_access_mode(self) -> crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode {
385        unsafe {
386            let __receiver =
387                <MethodMemberDescriptor as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
388            ::unity::il2cpp_call!(__MethodMemberDescriptor_unity_raw::__lookup_get_access_mode::get_method_info().method_ptr,crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode;
389(MethodMemberDescriptor)__receiver)
390        }
391    }
392    #[doc = "`set_AccessMode(crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode)` overload"]
393    fn set_access_mode(self, value: impl ::core::convert::Into<crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode>) -> () {
394        unsafe {
395            let __receiver =
396                <MethodMemberDescriptor as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
397            ::unity::il2cpp_call!(__MethodMemberDescriptor_unity_raw::__lookup_set_access_mode::get_method_info().method_ptr,();
398(MethodMemberDescriptor)__receiver,(crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode)::core::convert::Into::into(value))
399        }
400    }
401    #[doc = "`get_IsConstructor()` overload"]
402    fn get_is_constructor(self) -> bool {
403        unsafe {
404            let __receiver =
405                <MethodMemberDescriptor as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
406            ::unity::il2cpp_call!(__MethodMemberDescriptor_unity_raw::__lookup_get_is_constructor::get_method_info().method_ptr,bool;
407(MethodMemberDescriptor)__receiver)
408        }
409    }
410    #[doc = "`set_IsConstructor(bool)` overload"]
411    fn set_is_constructor(self, value: impl ::core::convert::Into<bool>) -> () {
412        unsafe {
413            let __receiver =
414                <MethodMemberDescriptor as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
415            ::unity::il2cpp_call!(__MethodMemberDescriptor_unity_raw::__lookup_set_is_constructor::get_method_info().method_ptr,();
416(MethodMemberDescriptor)__receiver,(bool)::core::convert::Into::into(value))
417        }
418    }
419    #[doc = "`.ctor(crate::system::reflection::methodbase::MethodBase, crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode)` overload"]
420    fn ctor(
421        self,
422        method_base: impl ::core::convert::Into<crate::system::reflection::methodbase::MethodBase>,
423        access_mode: impl ::core::convert::Into<crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode>,
424    ) -> () {
425        unsafe {
426            let __receiver =
427                <MethodMemberDescriptor as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
428            ::unity::il2cpp_call!(__MethodMemberDescriptor_unity_raw::__lookup_ctor::get_method_info().method_ptr,();
429(MethodMemberDescriptor)__receiver,(crate::system::reflection::methodbase::MethodBase)::core::convert::Into::into(method_base),(crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode)::core::convert::Into::into(access_mode))
430        }
431    }
432    #[doc = "`Execute(crate::moon_sharp::interpreter::script::Script, crate::system::object::Object, crate::moon_sharp::interpreter::scriptexecutioncontext::ScriptExecutionContext, crate::moon_sharp::interpreter::callbackarguments::CallbackArguments)` overload"]
433    fn execute(
434        self,
435        script: impl ::core::convert::Into<crate::moon_sharp::interpreter::script::Script>,
436        obj: impl ::core::convert::Into<crate::system::object::Object>,
437        context: impl ::core::convert::Into<crate::moon_sharp::interpreter::scriptexecutioncontext::ScriptExecutionContext>,
438        args: impl ::core::convert::Into<crate::moon_sharp::interpreter::callbackarguments::CallbackArguments>,
439    ) -> crate::moon_sharp::interpreter::dynvalue::DynValue {
440        unsafe {
441            let __receiver =
442                <MethodMemberDescriptor as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
443            {
444                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
445                let __vi = *__vt.get(16usize).unwrap_or_else(|| {
446                    panic!(
447                        "unity: virtual slot {}
448 out of range (vtable len {}
449) on the runtime class behind {}
450 (method `{}
451`)",
452                        16usize,
453                        __vt.len(),
454                        <MethodMemberDescriptor as ::unity::ClassIdentity>::NAME,
455                        "Execute",
456                    )
457                });
458                let __inner: extern "C" fn(
459                    MethodMemberDescriptor,
460                    crate::moon_sharp::interpreter::script::Script,
461                    crate::system::object::Object,
462                    crate::moon_sharp::interpreter::scriptexecutioncontext::ScriptExecutionContext,
463                    crate::moon_sharp::interpreter::callbackarguments::CallbackArguments,
464                    ::unity::OptionalMethod,
465                ) -> crate::moon_sharp::interpreter::dynvalue::DynValue = ::core::mem::transmute(__vi.method_ptr);
466                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
467                __inner(
468                    __receiver,
469                    ::core::convert::Into::into(script),
470                    ::core::convert::Into::into(obj),
471                    ::core::convert::Into::into(context),
472                    ::core::convert::Into::into(args),
473                    __mi,
474                )
475            }
476        }
477    }
478    #[doc = "`MoonSharp.Interpreter.Interop.BasicDescriptors.IOptimizableDescriptor.Optimize()` overload"]
479    fn moon_sharp_interpreter_interop_basic_descriptors_i_optimizable_descriptor_optimize(self) -> () {
480        unsafe {
481            let __receiver =
482                <MethodMemberDescriptor as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
483            {
484                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
485                let __vi = *__vt.get(19usize).unwrap_or_else(|| {
486                    panic!(
487                        "unity: virtual slot {}
488 out of range (vtable len {}
489) on the runtime class behind {}
490 (method `{}
491`)",
492                        19usize,
493                        __vt.len(),
494                        <MethodMemberDescriptor as ::unity::ClassIdentity>::NAME,
495                        "MoonSharp.Interpreter.Interop.BasicDescriptors.IOptimizableDescriptor.Optimize",
496                    )
497                });
498                let __inner: extern "C" fn(MethodMemberDescriptor, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__vi.method_ptr);
499                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
500                __inner(__receiver, __mi)
501            }
502        }
503    }
504    #[doc = "`PrepareForWiring(crate::moon_sharp::interpreter::table::Table)` overload"]
505    fn prepare_for_wiring(self, t: impl ::core::convert::Into<crate::moon_sharp::interpreter::table::Table>) -> () {
506        unsafe {
507            let __receiver =
508                <MethodMemberDescriptor as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
509            {
510                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
511                let __vi = *__vt.get(20usize).unwrap_or_else(|| {
512                    panic!(
513                        "unity: virtual slot {}
514 out of range (vtable len {}
515) on the runtime class behind {}
516 (method `{}
517`)",
518                        20usize,
519                        __vt.len(),
520                        <MethodMemberDescriptor as ::unity::ClassIdentity>::NAME,
521                        "PrepareForWiring",
522                    )
523                });
524                let __inner: extern "C" fn(MethodMemberDescriptor, crate::moon_sharp::interpreter::table::Table, ::unity::OptionalMethod) -> () =
525                    ::core::mem::transmute(__vi.method_ptr);
526                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
527                __inner(__receiver, ::core::convert::Into::into(t), __mi)
528            }
529        }
530    }
531}
532
533#[cfg(feature = "moon_sharp-interpreter-interop-methodmemberdescriptor")]
534impl<__T: IMethodMemberDescriptor> IMethodMemberDescriptorMethods for __T {}
535
536#[cfg(feature = "moon_sharp-interpreter-interop-methodmemberdescriptor")]
537impl MethodMemberDescriptor {
538    pub fn get_method_info_method_info() -> &'static ::unity::il2cpp::MethodInfo {
539        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
540    }
541
542    pub fn set_method_info_method_info() -> &'static ::unity::il2cpp::MethodInfo {
543        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[1]
544    }
545
546    pub fn get_access_mode_method_info() -> &'static ::unity::il2cpp::MethodInfo {
547        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[2]
548    }
549
550    pub fn set_access_mode_method_info() -> &'static ::unity::il2cpp::MethodInfo {
551        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[3]
552    }
553
554    pub fn get_is_constructor_method_info() -> &'static ::unity::il2cpp::MethodInfo {
555        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[4]
556    }
557
558    pub fn set_is_constructor_method_info() -> &'static ::unity::il2cpp::MethodInfo {
559        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[5]
560    }
561
562    pub fn ctor_method_info() -> &'static ::unity::il2cpp::MethodInfo {
563        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[6]
564    }
565
566    pub fn try_create_if_visible_method_info() -> &'static ::unity::il2cpp::MethodInfo {
567        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[7]
568    }
569
570    pub fn check_method_is_compatible_method_info() -> &'static ::unity::il2cpp::MethodInfo {
571        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[8]
572    }
573
574    pub fn execute_method_info() -> &'static ::unity::il2cpp::MethodInfo {
575        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[9]
576    }
577
578    pub fn moon_sharp_interpreter_interop_basic_descriptors_i_optimizable_descriptor_optimize_method_info() -> &'static ::unity::il2cpp::MethodInfo {
579        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[10]
580    }
581
582    pub fn prepare_for_wiring_method_info() -> &'static ::unity::il2cpp::MethodInfo {
583        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[11]
584    }
585}
586
587#[cfg(feature = "moon_sharp-interpreter-interop-methodmemberdescriptor")]
588impl MethodMemberDescriptor {
589    #[doc = "Direct (non-virtual) call to `MethodMemberDescriptor`'s own `Execute`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
590    pub unsafe fn execute(
591        this: impl ::core::convert::Into<::unity::IlInstance>,
592        script: crate::moon_sharp::interpreter::script::Script,
593        obj: crate::system::object::Object,
594        context: crate::moon_sharp::interpreter::scriptexecutioncontext::ScriptExecutionContext,
595        args: crate::moon_sharp::interpreter::callbackarguments::CallbackArguments,
596    ) -> crate::moon_sharp::interpreter::dynvalue::DynValue {
597        let __mi = Self::execute_method_info();
598        let __inner: extern "C" fn(
599            ::unity::IlInstance,
600            crate::moon_sharp::interpreter::script::Script,
601            crate::system::object::Object,
602            crate::moon_sharp::interpreter::scriptexecutioncontext::ScriptExecutionContext,
603            crate::moon_sharp::interpreter::callbackarguments::CallbackArguments,
604            ::unity::OptionalMethod,
605        ) -> crate::moon_sharp::interpreter::dynvalue::DynValue = ::core::mem::transmute(__mi.method_ptr);
606        __inner(this.into(), script, obj, context, args, ::core::option::Option::None)
607    }
608
609    #[doc = "Direct (non-virtual) call to `MethodMemberDescriptor`'s own `MoonSharp.Interpreter.Interop.BasicDescriptors.IOptimizableDescriptor.Optimize`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
610    pub unsafe fn moon_sharp_interpreter_interop_basic_descriptors_i_optimizable_descriptor_optimize(
611        this: impl ::core::convert::Into<::unity::IlInstance>,
612    ) -> () {
613        let __mi = Self::moon_sharp_interpreter_interop_basic_descriptors_i_optimizable_descriptor_optimize_method_info();
614        let __inner: extern "C" fn(::unity::IlInstance, ::unity::OptionalMethod) -> () = ::core::mem::transmute(__mi.method_ptr);
615        __inner(this.into(), ::core::option::Option::None)
616    }
617
618    #[doc = "Direct (non-virtual) call to `MethodMemberDescriptor`'s own `PrepareForWiring`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
619    pub unsafe fn prepare_for_wiring(this: impl ::core::convert::Into<::unity::IlInstance>, t: crate::moon_sharp::interpreter::table::Table) -> () {
620        let __mi = Self::prepare_for_wiring_method_info();
621        let __inner: extern "C" fn(::unity::IlInstance, crate::moon_sharp::interpreter::table::Table, ::unity::OptionalMethod) -> () =
622            ::core::mem::transmute(__mi.method_ptr);
623        __inner(this.into(), t, ::core::option::Option::None)
624    }
625}
626
627#[cfg(feature = "moon_sharp-interpreter-interop-methodmemberdescriptor")]
628impl MethodMemberDescriptor {
629    #[doc = "`.ctor(crate::system::reflection::methodbase::MethodBase, crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode)` — overload selector"]
630    pub fn new(
631        method_base: crate::system::reflection::methodbase::MethodBase,
632        access_mode: crate::moon_sharp::interpreter::interopaccessmode::InteropAccessMode,
633    ) -> Self {
634        let this = <Self as ::unity::FromIlInstance>::instantiate().unwrap_or_else(|| {
635            panic!(
636                "{}
637::{}
638 failed to instantiate",
639                ::core::stringify!(MethodMemberDescriptor),
640                ::core::stringify!(new),
641            )
642        });
643        <Self as IMethodMemberDescriptorMethods>::ctor(this, method_base, access_mode);
644        this
645    }
646}
647
648#[cfg(feature = "moon_sharp-interpreter-interop-methodmemberdescriptor")]
649#[doc(hidden)]
650pub mod prelude {
651    pub use super::{IMethodMemberDescriptor, IMethodMemberDescriptorMethods, MethodMemberDescriptor};
652    #[cfg(feature = "moon_sharp-interpreter-interop-functionmemberdescriptorbase")]
653    pub use crate::moon_sharp::interpreter::interop::functionmemberdescriptorbase::IFunctionMemberDescriptorBaseMethods;
654    #[cfg(feature = "system-object")]
655    pub use crate::system::object::IObjectMethods;
656    pub use crate::{moon_sharp::interpreter::interop::functionmemberdescriptorbase::IFunctionMemberDescriptorBase, system::object::IObject};
657}