Skip to main content

engage/generated/unity_engine/
scriptableobject.rs

1// @generated by il2cpp-bindgen — do not edit by hand.
2
3#[cfg(feature = "unity_engine-scriptableobject-types")]
4mod __types {
5    #[allow(unused_imports)] use ::unity::prelude::*;
6
7    use super::*;
8    use crate::{
9        system::object::{IObject, Object},
10        unity_engine::object_2::{IObject_2, Object_2},
11    };
12
13    #[doc=include_str!(concat!(env!("CARGO_MANIFEST_DIR"),"/","docs/unity_engine/scriptableobject/ScriptableObject.md"))]
14    #[::unity::class(namespace = "UnityEngine", name = "ScriptableObject")]
15    #[parent(crate::unity_engine::object_2::Object_2)]
16    pub struct ScriptableObject {}
17}
18
19#[cfg(feature = "unity_engine-scriptableobject-types")]
20pub use __types::*;
21
22#[cfg(feature = "unity_engine-scriptableobject")]
23impl ScriptableObject {
24    #[doc = "`CreateInstance(::unity::SystemType)` overload"]
25    pub fn create_instance(r#type: impl ::core::convert::Into<::unity::SystemType>) -> crate::unity_engine::scriptableobject::ScriptableObject {
26        unsafe {
27            ::unity::il2cpp_call!((::unity::module_base()+0x2f8c730usize)as*mut u8,crate::unity_engine::scriptableobject::ScriptableObject;
28(::unity::SystemType)::core::convert::Into::into(r#type))
29        }
30    }
31
32    pub fn create_instance_2<M0: ::unity::IlType + ::core::marker::Copy + ::unity::ClassIdentity>() -> M0 {
33        static OPEN: ::std::sync::LazyLock<::unity::Il2CppResult<&'static ::unity::il2cpp::MethodInfo>> = ::std::sync::LazyLock::new(|| {
34            ::unity::lookup::method_info_on_class(<ScriptableObject as ::unity::ClassIdentity>::class(), "CreateInstance", 0)
35        });
36        #[allow(clippy::type_complexity)]
37        static CACHE: ::std::sync::OnceLock<::std::sync::Mutex<::std::collections::HashMap<usize, &'static ::unity::il2cpp::MethodInfo>>> =
38            ::std::sync::OnceLock::new();
39        let _ = true;
40        let __open: &'static ::unity::il2cpp::MethodInfo = match &*OPEN {
41            ::core::result::Result::Ok(mi) => *mi,
42            ::core::result::Result::Err(e) => {
43                panic!(
44                    "method lookup failed: {}
45::{}
46: {}
47",
48                    <ScriptableObject as ::unity::ClassIdentity>::NAME,
49                    "CreateInstance",
50                    e
51                )
52            },
53        };
54        let __cache = CACHE.get_or_init(|| ::std::sync::Mutex::new(::std::collections::HashMap::new()));
55        let __key: usize = <M0 as ::unity::IlType>::il_type() as *const _ as usize;
56        let __inflated: &'static ::unity::il2cpp::MethodInfo = {
57            let mut __guard = __cache.lock().unwrap();
58            *__guard
59                .entry(__key)
60                .or_insert_with(|| ::unity::il2cpp::generic::create_generic_method_info(__open, &[<M0 as ::unity::IlType>::il_type()]))
61        };
62        unsafe {
63            let __f: extern "C" fn(::unity::OptionalMethod) -> M0 = ::core::mem::transmute(__inflated.method_ptr);
64            let __mi_opaque: &'static () = &*(__inflated as *const _ as *const ());
65            __f(::core::option::Option::Some(__mi_opaque))
66        }
67    }
68
69    #[doc = "`CreateScriptableObject(crate::unity_engine::scriptableobject::ScriptableObject)` overload"]
70    pub fn create_scriptable_object(self_: impl ::core::convert::Into<crate::unity_engine::scriptableobject::ScriptableObject>) -> () {
71        unsafe {
72            ::unity::il2cpp_call!((::unity::module_base()+0x2f8c6e0usize)as*mut u8,();
73(crate::unity_engine::scriptableobject::ScriptableObject)::core::convert::Into::into(self_))
74        }
75    }
76
77    #[doc = "`CreateScriptableObjectInstanceFromType(::unity::SystemType, bool)` overload"]
78    pub fn create_scriptable_object_instance_from_type(
79        r#type: impl ::core::convert::Into<::unity::SystemType>,
80        apply_defaults_and_reset: impl ::core::convert::Into<bool>,
81    ) -> crate::unity_engine::scriptableobject::ScriptableObject {
82        unsafe {
83            ::unity::il2cpp_call!((::unity::module_base()+0x2f8c780usize)as*mut u8,crate::unity_engine::scriptableobject::ScriptableObject;
84(::unity::SystemType)::core::convert::Into::into(r#type),(bool)::core::convert::Into::into(apply_defaults_and_reset))
85        }
86    }
87}
88
89#[cfg(feature = "unity_engine-scriptableobject")]
90pub trait IScriptableObjectMethods: IScriptableObject {
91    #[doc = "`.ctor()` overload"]
92    fn ctor(self) -> () {
93        unsafe {
94            let __receiver = <ScriptableObject as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
95            ::unity::il2cpp_call!((::unity::module_base()+0x2f80f80usize)as*mut u8,();
96(ScriptableObject)__receiver)
97        }
98    }
99}
100
101#[cfg(feature = "unity_engine-scriptableobject")]
102impl<__T: IScriptableObject> IScriptableObjectMethods for __T {}
103
104#[cfg(feature = "unity_engine-scriptableobject")]
105impl ScriptableObject {
106    pub fn ctor_method_info() -> &'static ::unity::il2cpp::MethodInfo {
107        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
108    }
109
110    pub fn create_instance_method_info() -> &'static ::unity::il2cpp::MethodInfo {
111        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[1]
112    }
113
114    pub fn create_scriptable_object_method_info() -> &'static ::unity::il2cpp::MethodInfo {
115        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[3]
116    }
117
118    pub fn create_scriptable_object_instance_from_type_method_info() -> &'static ::unity::il2cpp::MethodInfo {
119        <Self as ::unity::ClassIdentity>::class().raw().get_methods()[4]
120    }
121}
122
123#[cfg(feature = "unity_engine-scriptableobject")]
124impl ScriptableObject {
125    #[doc = "`.ctor()` — no args"]
126    pub fn new() -> Self {
127        let this = <Self as ::unity::FromIlInstance>::instantiate().unwrap_or_else(|| {
128            panic!(
129                "{}
130::{}
131 failed to instantiate",
132                ::core::stringify!(ScriptableObject),
133                ::core::stringify!(new),
134            )
135        });
136        <Self as IScriptableObjectMethods>::ctor(this);
137        this
138    }
139}
140
141#[cfg(feature = "unity_engine-scriptableobject")]
142#[doc(hidden)]
143pub mod prelude {
144    pub use super::{IScriptableObject, IScriptableObjectMethods, ScriptableObject};
145    #[cfg(feature = "system-object")]
146    pub use crate::system::object::IObjectMethods;
147    #[cfg(feature = "unity_engine-object_2")]
148    pub use crate::unity_engine::object_2::IObject_2Methods;
149    pub use crate::{system::object::IObject, unity_engine::object_2::IObject_2};
150}