Skip to main content

engage/generated/system/collections/
compatiblecomparer.rs

1// @generated by il2cpp-bindgen — do not edit by hand.
2
3#[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}