engage/generated/unity_engine/resource_management/resource_providers/
instanceprovider.rs1#[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}