Skip to main content

engage/generated/moon_sharp/interpreter/interop/registration_policies/
permanentregistrationpolicy.rs

1// @generated by il2cpp-bindgen — do not edit by hand.
2
3#[cfg(feature = "moon_sharp-interpreter-interop-registration_policies-permanentregistrationpolicy-types")]
4mod __types {
5    #[allow(unused_imports)] use ::unity::prelude::*;
6
7    use super::*;
8    use crate::system::object::{IObject, Object};
9
10    #[doc=include_str!(concat!(env!("CARGO_MANIFEST_DIR"),"/","docs/moon_sharp/interpreter/interop/registration_policies/permanentregistrationpolicy/PermanentRegistrationPolicy.md"))]
11    #[::unity::class(namespace = "MoonSharp.Interpreter.Interop.RegistrationPolicies", name = "PermanentRegistrationPolicy")]
12    #[parent(crate::system::object::Object)]
13    pub struct PermanentRegistrationPolicy {}
14}
15
16#[cfg(feature = "moon_sharp-interpreter-interop-registration_policies-permanentregistrationpolicy-types")]
17pub use __types::*;
18
19#[cfg(feature = "moon_sharp-interpreter-interop-registration_policies-permanentregistrationpolicy")]
20#[doc(hidden)]
21#[allow(non_snake_case, non_camel_case_types, clippy::too_many_arguments)]
22mod __PermanentRegistrationPolicy_unity_raw {
23    use super::*;
24    #[doc(hidden)]
25    #[allow(non_snake_case)]
26    pub mod __lookup_ctor {
27        use super::*;
28        static METHOD: ::std::sync::LazyLock<::unity::Il2CppResult<&'static ::unity::il2cpp::MethodInfo>> = ::std::sync::LazyLock::new(|| {
29            let param_types: &[&'static ::unity::il2cpp::Il2CppType] = &[];
30            ::unity::lookup::method_info_on_class_with_signature(
31                <PermanentRegistrationPolicy as ::unity::ClassIdentity>::class(),
32                ".ctor",
33                0,
34                param_types,
35                false,
36            )
37        });
38        pub fn get_method_info() -> &'static ::unity::il2cpp::MethodInfo {
39            match &*METHOD {
40                ::core::result::Result::Ok(mi) => *mi,
41                ::core::result::Result::Err(e) => {
42                    panic!(
43                        "method lookup failed: {}
44::{}
45: {}
46",
47                        <PermanentRegistrationPolicy as ::unity::ClassIdentity>::NAME,
48                        ".ctor",
49                        e
50                    )
51                },
52            }
53        }
54    }
55}
56
57#[cfg(feature = "moon_sharp-interpreter-interop-registration_policies-permanentregistrationpolicy")]
58pub trait IPermanentRegistrationPolicyMethods: IPermanentRegistrationPolicy {
59    #[doc = "`HandleRegistration(crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor, crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor)` overload"]
60    fn handle_registration(
61        self,
62        new_descriptor: impl ::core::convert::Into<crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor>,
63        old_descriptor: impl ::core::convert::Into<crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor>,
64    ) -> crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor {
65        unsafe {
66            let __receiver =
67                <PermanentRegistrationPolicy as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
68            {
69                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
70                let __vi = *__vt.get(4usize).unwrap_or_else(|| {
71                    panic!(
72                        "unity: virtual slot {}
73 out of range (vtable len {}
74) on the runtime class behind {}
75 (method `{}
76`)",
77                        4usize,
78                        __vt.len(),
79                        <PermanentRegistrationPolicy as ::unity::ClassIdentity>::NAME,
80                        "HandleRegistration",
81                    )
82                });
83                let __inner: extern "C" fn(
84                    PermanentRegistrationPolicy,
85                    crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor,
86                    crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor,
87                    ::unity::OptionalMethod,
88                ) -> crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor = ::core::mem::transmute(__vi.method_ptr);
89                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
90                __inner(
91                    __receiver,
92                    ::core::convert::Into::into(new_descriptor),
93                    ::core::convert::Into::into(old_descriptor),
94                    __mi,
95                )
96            }
97        }
98    }
99    #[doc = "`AllowTypeAutoRegistration(::unity::SystemType)` overload"]
100    fn allow_type_auto_registration(self, r#type: impl ::core::convert::Into<::unity::SystemType>) -> bool {
101        unsafe {
102            let __receiver =
103                <PermanentRegistrationPolicy as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
104            {
105                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
106                let __vi = *__vt.get(5usize).unwrap_or_else(|| {
107                    panic!(
108                        "unity: virtual slot {}
109 out of range (vtable len {}
110) on the runtime class behind {}
111 (method `{}
112`)",
113                        5usize,
114                        __vt.len(),
115                        <PermanentRegistrationPolicy as ::unity::ClassIdentity>::NAME,
116                        "AllowTypeAutoRegistration",
117                    )
118                });
119                let __inner: extern "C" fn(PermanentRegistrationPolicy, ::unity::SystemType, ::unity::OptionalMethod) -> bool =
120                    ::core::mem::transmute(__vi.method_ptr);
121                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
122                __inner(__receiver, ::core::convert::Into::into(r#type), __mi)
123            }
124        }
125    }
126    #[doc = "`.ctor()` overload"]
127    fn ctor(self) -> () {
128        unsafe {
129            let __receiver =
130                <PermanentRegistrationPolicy as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
131            ::unity::il2cpp_call!(__PermanentRegistrationPolicy_unity_raw::__lookup_ctor::get_method_info().method_ptr,();
132(PermanentRegistrationPolicy)__receiver)
133        }
134    }
135}
136
137#[cfg(feature = "moon_sharp-interpreter-interop-registration_policies-permanentregistrationpolicy")]
138impl<__T: IPermanentRegistrationPolicy> IPermanentRegistrationPolicyMethods for __T {}
139
140#[cfg(feature = "moon_sharp-interpreter-interop-registration_policies-permanentregistrationpolicy")]
141impl PermanentRegistrationPolicy {
142    pub fn handle_registration_method_info() -> &'static ::unity::il2cpp::MethodInfo {
143        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
144    }
145
146    pub fn allow_type_auto_registration_method_info() -> &'static ::unity::il2cpp::MethodInfo {
147        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[1]
148    }
149
150    pub fn ctor_method_info() -> &'static ::unity::il2cpp::MethodInfo {
151        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[2]
152    }
153}
154
155#[cfg(feature = "moon_sharp-interpreter-interop-registration_policies-permanentregistrationpolicy")]
156impl PermanentRegistrationPolicy {
157    #[doc = "Direct (non-virtual) call to `PermanentRegistrationPolicy`'s own `HandleRegistration`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
158    pub unsafe fn handle_registration(
159        this: impl ::core::convert::Into<::unity::IlInstance>,
160        new_descriptor: crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor,
161        old_descriptor: crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor,
162    ) -> crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor {
163        let __mi = Self::handle_registration_method_info();
164        let __inner: extern "C" fn(
165            ::unity::IlInstance,
166            crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor,
167            crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor,
168            ::unity::OptionalMethod,
169        ) -> crate::moon_sharp::interpreter::interop::iuserdatadescriptor::IUserDataDescriptor = ::core::mem::transmute(__mi.method_ptr);
170        __inner(this.into(), new_descriptor, old_descriptor, ::core::option::Option::None)
171    }
172
173    #[doc = "Direct (non-virtual) call to `PermanentRegistrationPolicy`'s own `AllowTypeAutoRegistration`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
174    pub unsafe fn allow_type_auto_registration(this: impl ::core::convert::Into<::unity::IlInstance>, r#type: ::unity::SystemType) -> bool {
175        let __mi = Self::allow_type_auto_registration_method_info();
176        let __inner: extern "C" fn(::unity::IlInstance, ::unity::SystemType, ::unity::OptionalMethod) -> bool =
177            ::core::mem::transmute(__mi.method_ptr);
178        __inner(this.into(), r#type, ::core::option::Option::None)
179    }
180}
181
182#[cfg(feature = "moon_sharp-interpreter-interop-registration_policies-permanentregistrationpolicy")]
183impl PermanentRegistrationPolicy {
184    #[doc = "`.ctor()` — no args"]
185    pub fn new() -> Self {
186        let this = <Self as ::unity::FromIlInstance>::instantiate().unwrap_or_else(|| {
187            panic!(
188                "{}
189::{}
190 failed to instantiate",
191                ::core::stringify!(PermanentRegistrationPolicy),
192                ::core::stringify!(new),
193            )
194        });
195        <Self as IPermanentRegistrationPolicyMethods>::ctor(this);
196        this
197    }
198}
199
200#[cfg(feature = "moon_sharp-interpreter-interop-registration_policies-permanentregistrationpolicy")]
201#[doc(hidden)]
202pub mod prelude {
203    pub use super::{IPermanentRegistrationPolicy, IPermanentRegistrationPolicyMethods, PermanentRegistrationPolicy};
204    pub use crate::system::object::IObject;
205    #[cfg(feature = "system-object")]
206    pub use crate::system::object::IObjectMethods;
207}