Skip to main content

engage/generated/unity_engine/resource_management/resource_providers/
instanceprovider.rs

1// @generated by il2cpp-bindgen — do not edit by hand.
2
3#[cfg(feature = "unity_engine-resource_management-resource_providers-instanceprovider-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/unity_engine/resource_management/resource_providers/instanceprovider/InstanceProvider.md"))]
11    #[::unity::class(namespace = "UnityEngine.ResourceManagement.ResourceProviders", name = "InstanceProvider")]
12    #[parent(crate::system::object::Object)]
13    pub struct InstanceProvider {
14        #[offset(16)]
15        #[rename(name = "m_InstanceObjectToPrefabHandle")]
16        pub m_instance_object_to_prefab_handle: crate::system::collections::generic::dictionary_2::Dictionary_2<
17            crate::unity_engine::gameobject::GameObject,
18            crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
19                crate::unity_engine::gameobject::GameObject,
20            >,
21        >,
22    }
23}
24
25#[cfg(feature = "unity_engine-resource_management-resource_providers-instanceprovider-types")]
26pub use __types::*;
27
28#[cfg(feature = "unity_engine-resource_management-resource_providers-instanceprovider")]
29#[doc(hidden)]
30#[allow(non_snake_case, non_camel_case_types, clippy::too_many_arguments)]
31mod __InstanceProvider_unity_raw {
32    use super::*;
33    #[doc(hidden)]
34    #[allow(non_snake_case)]
35    pub mod __lookup_ctor {
36        use super::*;
37        static METHOD: ::std::sync::LazyLock<::unity::Il2CppResult<&'static ::unity::il2cpp::MethodInfo>> = ::std::sync::LazyLock::new(|| {
38            let param_types: &[&'static ::unity::il2cpp::Il2CppType] = &[];
39            ::unity::lookup::method_info_on_class_with_signature(
40                <InstanceProvider as ::unity::ClassIdentity>::class(),
41                ".ctor",
42                0,
43                param_types,
44                false,
45            )
46        });
47        pub fn get_method_info() -> &'static ::unity::il2cpp::MethodInfo {
48            match &*METHOD {
49                ::core::result::Result::Ok(mi) => *mi,
50                ::core::result::Result::Err(e) => {
51                    panic!(
52                        "method lookup failed: {}
53::{}
54: {}
55",
56                        <InstanceProvider as ::unity::ClassIdentity>::NAME,
57                        ".ctor",
58                        e
59                    )
60                },
61            }
62        }
63    }
64}
65
66#[cfg(feature = "unity_engine-resource_management-resource_providers-instanceprovider")]
67pub trait IInstanceProviderMethods: IInstanceProvider {
68    #[doc = "`ProvideInstance(crate::unity_engine::resource_management::resourcemanager::ResourceManager, crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<crate::unity_engine::gameobject::GameObject>, crate::unity_engine::resource_management::resource_providers::instantiationparameters::InstantiationParameters)` overload"]
69    fn provide_instance(
70        self,
71        resource_manager: impl ::core::convert::Into<crate::unity_engine::resource_management::resourcemanager::ResourceManager>,
72        prefab_handle: impl ::core::convert::Into<
73            crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
74                crate::unity_engine::gameobject::GameObject,
75            >,
76        >,
77        instantiate_parameters: impl ::core::convert::Into<
78            crate::unity_engine::resource_management::resource_providers::instantiationparameters::InstantiationParameters,
79        >,
80    ) -> crate::unity_engine::gameobject::GameObject {
81        unsafe {
82            let __receiver = <InstanceProvider as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
83            {
84                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
85                let __vi = *__vt.get(4usize).unwrap_or_else(|| {
86                    panic!(
87                        "unity: virtual slot {}
88 out of range (vtable len {}
89) on the runtime class behind {}
90 (method `{}
91`)",
92                        4usize,
93                        __vt.len(),
94                        <InstanceProvider as ::unity::ClassIdentity>::NAME,
95                        "ProvideInstance",
96                    )
97                });
98                let __inner: extern "C" fn(
99                    InstanceProvider,
100                    crate::unity_engine::resource_management::resourcemanager::ResourceManager,
101                    crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
102                        crate::unity_engine::gameobject::GameObject,
103                    >,
104                    crate::unity_engine::resource_management::resource_providers::instantiationparameters::InstantiationParameters,
105                    ::unity::OptionalMethod,
106                ) -> crate::unity_engine::gameobject::GameObject = ::core::mem::transmute(__vi.method_ptr);
107                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
108                __inner(
109                    __receiver,
110                    ::core::convert::Into::into(resource_manager),
111                    ::core::convert::Into::into(prefab_handle),
112                    ::core::convert::Into::into(instantiate_parameters),
113                    __mi,
114                )
115            }
116        }
117    }
118    #[doc = "`ReleaseInstance(crate::unity_engine::resource_management::resourcemanager::ResourceManager, crate::unity_engine::gameobject::GameObject)` overload"]
119    fn release_instance(
120        self,
121        resource_manager: impl ::core::convert::Into<crate::unity_engine::resource_management::resourcemanager::ResourceManager>,
122        instance: impl ::core::convert::Into<crate::unity_engine::gameobject::GameObject>,
123    ) -> () {
124        unsafe {
125            let __receiver = <InstanceProvider as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
126            {
127                let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
128                let __vi = *__vt.get(5usize).unwrap_or_else(|| {
129                    panic!(
130                        "unity: virtual slot {}
131 out of range (vtable len {}
132) on the runtime class behind {}
133 (method `{}
134`)",
135                        5usize,
136                        __vt.len(),
137                        <InstanceProvider as ::unity::ClassIdentity>::NAME,
138                        "ReleaseInstance",
139                    )
140                });
141                let __inner: extern "C" fn(
142                    InstanceProvider,
143                    crate::unity_engine::resource_management::resourcemanager::ResourceManager,
144                    crate::unity_engine::gameobject::GameObject,
145                    ::unity::OptionalMethod,
146                ) -> () = ::core::mem::transmute(__vi.method_ptr);
147                let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
148                __inner(
149                    __receiver,
150                    ::core::convert::Into::into(resource_manager),
151                    ::core::convert::Into::into(instance),
152                    __mi,
153                )
154            }
155        }
156    }
157    #[doc = "`.ctor()` overload"]
158    fn ctor(self) -> () {
159        unsafe {
160            let __receiver = <InstanceProvider as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
161            ::unity::il2cpp_call!(__InstanceProvider_unity_raw::__lookup_ctor::get_method_info().method_ptr,();
162(InstanceProvider)__receiver)
163        }
164    }
165}
166
167#[cfg(feature = "unity_engine-resource_management-resource_providers-instanceprovider")]
168impl<__T: IInstanceProvider> IInstanceProviderMethods for __T {}
169
170#[cfg(feature = "unity_engine-resource_management-resource_providers-instanceprovider")]
171impl InstanceProvider {
172    pub fn provide_instance_method_info() -> &'static ::unity::il2cpp::MethodInfo {
173        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
174    }
175
176    pub fn release_instance_method_info() -> &'static ::unity::il2cpp::MethodInfo {
177        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[1]
178    }
179
180    pub fn ctor_method_info() -> &'static ::unity::il2cpp::MethodInfo {
181        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[2]
182    }
183}
184
185#[cfg(feature = "unity_engine-resource_management-resource_providers-instanceprovider")]
186impl InstanceProvider {
187    #[doc = "Direct (non-virtual) call to `InstanceProvider`'s own `ProvideInstance`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
188    pub unsafe fn provide_instance(
189        this: impl ::core::convert::Into<::unity::IlInstance>,
190        resource_manager: crate::unity_engine::resource_management::resourcemanager::ResourceManager,
191        prefab_handle: crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
192            crate::unity_engine::gameobject::GameObject,
193        >,
194        instantiate_parameters: crate::unity_engine::resource_management::resource_providers::instantiationparameters::InstantiationParameters,
195    ) -> crate::unity_engine::gameobject::GameObject {
196        let __mi = Self::provide_instance_method_info();
197        let __inner: extern "C" fn(
198            ::unity::IlInstance,
199            crate::unity_engine::resource_management::resourcemanager::ResourceManager,
200            crate::unity_engine::resource_management::async_operations::asyncoperationhandle_1::AsyncOperationHandle_1<
201                crate::unity_engine::gameobject::GameObject,
202            >,
203            crate::unity_engine::resource_management::resource_providers::instantiationparameters::InstantiationParameters,
204            ::unity::OptionalMethod,
205        ) -> crate::unity_engine::gameobject::GameObject = ::core::mem::transmute(__mi.method_ptr);
206        __inner(
207            this.into(),
208            resource_manager,
209            prefab_handle,
210            instantiate_parameters,
211            ::core::option::Option::None,
212        )
213    }
214
215    #[doc = "Direct (non-virtual) call to `InstanceProvider`'s own `ReleaseInstance`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
216    pub unsafe fn release_instance(
217        this: impl ::core::convert::Into<::unity::IlInstance>,
218        resource_manager: crate::unity_engine::resource_management::resourcemanager::ResourceManager,
219        instance: crate::unity_engine::gameobject::GameObject,
220    ) -> () {
221        let __mi = Self::release_instance_method_info();
222        let __inner: extern "C" fn(
223            ::unity::IlInstance,
224            crate::unity_engine::resource_management::resourcemanager::ResourceManager,
225            crate::unity_engine::gameobject::GameObject,
226            ::unity::OptionalMethod,
227        ) -> () = ::core::mem::transmute(__mi.method_ptr);
228        __inner(this.into(), resource_manager, instance, ::core::option::Option::None)
229    }
230}
231
232#[cfg(feature = "unity_engine-resource_management-resource_providers-instanceprovider")]
233impl InstanceProvider {
234    #[doc = "`.ctor()` — no args"]
235    pub fn new() -> Self {
236        let this = <Self as ::unity::FromIlInstance>::instantiate().unwrap_or_else(|| {
237            panic!(
238                "{}
239::{}
240 failed to instantiate",
241                ::core::stringify!(InstanceProvider),
242                ::core::stringify!(new),
243            )
244        });
245        <Self as IInstanceProviderMethods>::ctor(this);
246        this
247    }
248}
249
250#[cfg(feature = "unity_engine-resource_management-resource_providers-instanceprovider")]
251#[doc(hidden)]
252pub mod prelude {
253    pub use super::{IInstanceProvider, IInstanceProviderMethods, InstanceProvider};
254    pub use crate::system::object::IObject;
255    #[cfg(feature = "system-object")]
256    pub use crate::system::object::IObjectMethods;
257}