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