engage/generated/system/collections/specialized/
compatiblecomparer_2.rs1#[cfg(feature = "system-collections-specialized-compatiblecomparer_2-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/system/collections/specialized/compatiblecomparer_2/CompatibleComparer_2.md"))]
11 #[::unity::class(namespace = "System.Collections.Specialized", name = "CompatibleComparer")]
12 #[parent(crate::system::object::Object)]
13 pub struct CompatibleComparer_2 {
14 #[offset(16)]
15 #[rename(name = "_comparer")]
16 pub comparer: crate::system::collections::icomparer_interface::IComparer_Interface,
17 #[static_field]
18 #[rename(name = "defaultComparer")]
19 pub default_comparer: crate::system::collections::icomparer_interface::IComparer_Interface,
20 #[offset(24)]
21 #[rename(name = "_hcp")]
22 pub hcp: crate::system::collections::ihashcodeprovider::IHashCodeProvider,
23 #[static_field]
24 #[rename(name = "defaultHashProvider")]
25 pub default_hash_provider: crate::system::collections::ihashcodeprovider::IHashCodeProvider,
26 }
27}
28
29#[cfg(feature = "system-collections-specialized-compatiblecomparer_2-types")]
30pub use __types::*;
31
32#[cfg(feature = "system-collections-specialized-compatiblecomparer_2")]
33impl CompatibleComparer_2 {
34 #[doc = "`get_DefaultComparer()` overload"]
35 pub fn get_default_comparer() -> crate::system::collections::icomparer_interface::IComparer_Interface {
36 unsafe {
37 ::unity::il2cpp_call!((::unity::module_base()+0x354ddc0usize)as*mut u8,crate::system::collections::icomparer_interface::IComparer_Interface;
38 )
39 }
40 }
41
42 #[doc = "`get_DefaultHashCodeProvider()` overload"]
43 pub fn get_default_hash_code_provider() -> crate::system::collections::ihashcodeprovider::IHashCodeProvider {
44 unsafe {
45 ::unity::il2cpp_call!((::unity::module_base()+0x354deb0usize)as*mut u8,crate::system::collections::ihashcodeprovider::IHashCodeProvider;
46 )
47 }
48 }
49}
50
51#[cfg(feature = "system-collections-specialized-compatiblecomparer_2")]
52pub trait ICompatibleComparer_2Methods: ICompatibleComparer_2 {
53 #[doc = "`.ctor(crate::system::collections::icomparer_interface::IComparer_Interface, crate::system::collections::ihashcodeprovider::IHashCodeProvider)` overload"]
54 fn ctor(
55 self,
56 comparer: impl ::core::convert::Into<crate::system::collections::icomparer_interface::IComparer_Interface>,
57 hash_code_provider: impl ::core::convert::Into<crate::system::collections::ihashcodeprovider::IHashCodeProvider>,
58 ) -> () {
59 unsafe {
60 let __receiver = <CompatibleComparer_2 as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
61 ::unity::il2cpp_call!((::unity::module_base()+0x354da10usize)as*mut u8,();
62(CompatibleComparer_2)__receiver,(crate::system::collections::icomparer_interface::IComparer_Interface)::core::convert::Into::into(comparer),(crate::system::collections::ihashcodeprovider::IHashCodeProvider)::core::convert::Into::into(hash_code_provider))
63 }
64 }
65 #[doc = "`Equals(crate::system::object::Object, crate::system::object::Object)` overload"]
66 fn equals(
67 self,
68 a: impl ::core::convert::Into<crate::system::object::Object>,
69 b: impl ::core::convert::Into<crate::system::object::Object>,
70 ) -> bool {
71 unsafe {
72 let __receiver = <CompatibleComparer_2 as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
73 {
74 let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
75 let __vi = *__vt.get(4usize).unwrap_or_else(|| {
76 panic!(
77 "unity: virtual slot {}
78 out of range (vtable len {}
79) on the runtime class behind {}
80 (method `{}
81`)",
82 4usize,
83 __vt.len(),
84 <CompatibleComparer_2 as ::unity::ClassIdentity>::NAME,
85 "Equals",
86 )
87 });
88 let __inner: extern "C" fn(
89 CompatibleComparer_2,
90 crate::system::object::Object,
91 crate::system::object::Object,
92 ::unity::OptionalMethod,
93 ) -> bool = ::core::mem::transmute(__vi.method_ptr);
94 let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
95 __inner(__receiver, ::core::convert::Into::into(a), ::core::convert::Into::into(b), __mi)
96 }
97 }
98 }
99 #[doc = "`GetHashCode(crate::system::object::Object)` overload"]
100 fn get_hash_code(self, obj: impl ::core::convert::Into<crate::system::object::Object>) -> i32 {
101 unsafe {
102 let __receiver = <CompatibleComparer_2 as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
103 {
104 let __vt = ::unity::Cast::get_class(__receiver).raw().get_vtable();
105 let __vi = *__vt.get(5usize).unwrap_or_else(|| {
106 panic!(
107 "unity: virtual slot {}
108 out of range (vtable len {}
109) on the runtime class behind {}
110 (method `{}
111`)",
112 5usize,
113 __vt.len(),
114 <CompatibleComparer_2 as ::unity::ClassIdentity>::NAME,
115 "GetHashCode",
116 )
117 });
118 let __inner: extern "C" fn(CompatibleComparer_2, crate::system::object::Object, ::unity::OptionalMethod) -> i32 =
119 ::core::mem::transmute(__vi.method_ptr);
120 let __mi: ::unity::OptionalMethod = ::core::option::Option::Some(&*(__vi.method_info as *const ::unity::MethodInfo as *const ()));
121 __inner(__receiver, ::core::convert::Into::into(obj), __mi)
122 }
123 }
124 }
125 #[doc = "`get_Comparer()` overload"]
126 fn get_comparer(self) -> crate::system::collections::icomparer_interface::IComparer_Interface {
127 unsafe {
128 let __receiver = <CompatibleComparer_2 as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
129 ::unity::il2cpp_call!((::unity::module_base()+0x354dda0usize)as*mut u8,crate::system::collections::icomparer_interface::IComparer_Interface;
130(CompatibleComparer_2)__receiver)
131 }
132 }
133 #[doc = "`get_HashCodeProvider()` overload"]
134 fn get_hash_code_provider(self) -> crate::system::collections::ihashcodeprovider::IHashCodeProvider {
135 unsafe {
136 let __receiver = <CompatibleComparer_2 as ::unity::FromIlInstance>::from_il_instance(<Self as ::unity::SystemObject>::as_instance(self));
137 ::unity::il2cpp_call!((::unity::module_base()+0x354ddb0usize)as*mut u8,crate::system::collections::ihashcodeprovider::IHashCodeProvider;
138(CompatibleComparer_2)__receiver)
139 }
140 }
141}
142
143#[cfg(feature = "system-collections-specialized-compatiblecomparer_2")]
144impl<__T: ICompatibleComparer_2> ICompatibleComparer_2Methods for __T {}
145
146#[cfg(feature = "system-collections-specialized-compatiblecomparer_2")]
147impl CompatibleComparer_2 {
148 pub fn ctor_method_info() -> &'static ::unity::il2cpp::MethodInfo {
149 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[0]
150 }
151
152 pub fn equals_method_info() -> &'static ::unity::il2cpp::MethodInfo {
153 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[1]
154 }
155
156 pub fn get_hash_code_method_info() -> &'static ::unity::il2cpp::MethodInfo {
157 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[2]
158 }
159
160 pub fn get_comparer_method_info() -> &'static ::unity::il2cpp::MethodInfo {
161 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[3]
162 }
163
164 pub fn get_hash_code_provider_method_info() -> &'static ::unity::il2cpp::MethodInfo {
165 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[4]
166 }
167
168 pub fn get_default_comparer_method_info() -> &'static ::unity::il2cpp::MethodInfo {
169 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[5]
170 }
171
172 pub fn get_default_hash_code_provider_method_info() -> &'static ::unity::il2cpp::MethodInfo {
173 <Self as ::unity::ClassIdentity>::class().raw().get_methods()[6]
174 }
175}
176
177#[cfg(feature = "system-collections-specialized-compatiblecomparer_2")]
178impl CompatibleComparer_2 {
179 #[doc = "Direct (non-virtual) call to `CompatibleComparer_2`'s own `Equals`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
180 pub unsafe fn equals(
181 this: impl ::core::convert::Into<::unity::IlInstance>,
182 a: crate::system::object::Object,
183 b: crate::system::object::Object,
184 ) -> bool {
185 let __mi = Self::equals_method_info();
186 let __inner: extern "C" fn(
187 ::unity::IlInstance,
188 crate::system::object::Object,
189 crate::system::object::Object,
190 ::unity::OptionalMethod,
191 ) -> bool = ::core::mem::transmute(__mi.method_ptr);
192 __inner(this.into(), a, b, ::core::option::Option::None)
193 }
194
195 #[doc = "Direct (non-virtual) call to `CompatibleComparer_2`'s own `GetHashCode`. Bypasses the vtable, so it won't hit an override/patch — use it for base calls."]
196 pub unsafe fn get_hash_code(this: impl ::core::convert::Into<::unity::IlInstance>, obj: crate::system::object::Object) -> i32 {
197 let __mi = Self::get_hash_code_method_info();
198 let __inner: extern "C" fn(::unity::IlInstance, crate::system::object::Object, ::unity::OptionalMethod) -> i32 =
199 ::core::mem::transmute(__mi.method_ptr);
200 __inner(this.into(), obj, ::core::option::Option::None)
201 }
202}
203
204#[cfg(feature = "system-collections-specialized-compatiblecomparer_2")]
205impl CompatibleComparer_2 {
206 #[doc = "`.ctor(crate::system::collections::icomparer_interface::IComparer_Interface, crate::system::collections::ihashcodeprovider::IHashCodeProvider)` — overload selector"]
207 pub fn new(
208 comparer: crate::system::collections::icomparer_interface::IComparer_Interface,
209 hash_code_provider: crate::system::collections::ihashcodeprovider::IHashCodeProvider,
210 ) -> Self {
211 let this = <Self as ::unity::FromIlInstance>::instantiate().unwrap_or_else(|| {
212 panic!(
213 "{}
214::{}
215 failed to instantiate",
216 ::core::stringify!(CompatibleComparer_2),
217 ::core::stringify!(new),
218 )
219 });
220 <Self as ICompatibleComparer_2Methods>::ctor(this, comparer, hash_code_provider);
221 this
222 }
223}
224
225#[cfg(feature = "system-collections-specialized-compatiblecomparer_2")]
226#[doc(hidden)]
227pub mod prelude {
228 pub use super::{CompatibleComparer_2, ICompatibleComparer_2, ICompatibleComparer_2Methods};
229 pub use crate::system::object::IObject;
230 #[cfg(feature = "system-object")]
231 pub use crate::system::object::IObjectMethods;
232}