1use super::class_requires::*;
2use super::*;
3#[allow(non_upper_case_globals, non_snake_case)]
10#[cfg_attr(feature = "json_schema", derive(schemars::JsonSchema))]
11#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12#[derive(educe::Educe)]
13#[educe(Debug, Clone, Default, PartialEq)]
14pub struct hkpTypedBroadPhaseHandle {
15 #[cfg_attr(
22 feature = "serde",
23 serde(skip_serializing_if = "Option::is_none", default)
24 )]
25 pub __ptr: Option<Pointer>,
26 #[cfg_attr(feature = "json_schema", schemars(flatten))]
28 #[cfg_attr(feature = "serde", serde(flatten))]
29 pub parent: hkpBroadPhaseHandle,
30 #[cfg_attr(feature = "json_schema", schemars(rename = "type"))]
35 #[cfg_attr(feature = "serde", serde(rename = "type"))]
36 pub m_type: i8,
37 #[cfg_attr(feature = "json_schema", schemars(rename = "ownerOffset"))]
43 #[cfg_attr(feature = "serde", serde(rename = "ownerOffset"))]
44 pub m_ownerOffset: i8,
45 #[cfg_attr(feature = "json_schema", schemars(rename = "objectQualityType"))]
50 #[cfg_attr(feature = "serde", serde(rename = "objectQualityType"))]
51 pub m_objectQualityType: i8,
52 #[cfg_attr(feature = "json_schema", schemars(rename = "collisionFilterInfo"))]
57 #[cfg_attr(feature = "serde", serde(rename = "collisionFilterInfo"))]
58 pub m_collisionFilterInfo: u32,
59}
60const _: () = {
61 use havok_serde as _serde;
62 impl _serde::HavokClass for hkpTypedBroadPhaseHandle {
63 #[inline]
64 fn name(&self) -> &'static str {
65 "hkpTypedBroadPhaseHandle"
66 }
67 #[inline]
68 fn signature(&self) -> _serde::__private::Signature {
69 _serde::__private::Signature::new(0xf4b0f799)
70 }
71 #[allow(clippy::let_and_return, clippy::vec_init_then_push)]
72 fn deps_indexes(&self) -> Vec<usize> {
73 let mut v = Vec::new();
74 v
75 }
76 }
77 impl _serde::Serialize for hkpTypedBroadPhaseHandle {
78 fn serialize<S>(&self, __serializer: S) -> Result<S::Ok, S::Error>
79 where
80 S: _serde::ser::Serializer,
81 {
82 let class_meta = self
83 .__ptr
84 .map(|name| (name, _serde::__private::Signature::new(0xf4b0f799)));
85 let mut serializer = __serializer
86 .serialize_struct(
87 "hkpTypedBroadPhaseHandle",
88 class_meta,
89 (12u64, 12u64),
90 )?;
91 serializer.skip_field("id", &self.parent.m_id)?;
92 serializer.serialize_field("type", &self.m_type)?;
93 serializer.skip_field("ownerOffset", &self.m_ownerOffset)?;
94 serializer.serialize_field("objectQualityType", &self.m_objectQualityType)?;
95 serializer.pad_field([0u8; 1usize].as_slice(), [0u8; 1usize].as_slice())?;
96 serializer
97 .serialize_field("collisionFilterInfo", &self.m_collisionFilterInfo)?;
98 serializer.end()
99 }
100 }
101};
102#[doc(hidden)]
103#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
104const _: () = {
105 use havok_serde as _serde;
106 #[automatically_derived]
107 impl<'de> _serde::Deserialize<'de> for hkpTypedBroadPhaseHandle {
108 fn deserialize<__D>(deserializer: __D) -> core::result::Result<Self, __D::Error>
109 where
110 __D: _serde::Deserializer<'de>,
111 {
112 #[allow(non_camel_case_types)]
113 enum __Field {
114 m_type,
115 m_objectQualityType,
116 m_collisionFilterInfo,
117 __ignore,
118 }
119 struct __FieldVisitor;
120 impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
121 type Value = __Field;
122 fn expecting(
123 &self,
124 __formatter: &mut core::fmt::Formatter,
125 ) -> core::fmt::Result {
126 core::fmt::Formatter::write_str(__formatter, "field identifier")
127 }
128 #[allow(clippy::match_single_binding)]
130 #[allow(clippy::reversed_empty_ranges)]
131 #[allow(clippy::single_match)]
132 fn visit_key<__E>(
133 self,
134 __value: &str,
135 ) -> core::result::Result<Self::Value, __E>
136 where
137 __E: _serde::de::Error,
138 {
139 match __value {
140 "type" => Ok(__Field::m_type),
141 "objectQualityType" => Ok(__Field::m_objectQualityType),
142 "collisionFilterInfo" => Ok(__Field::m_collisionFilterInfo),
143 _ => Ok(__Field::__ignore),
144 }
145 }
146 }
147 impl<'de> _serde::Deserialize<'de> for __Field {
148 #[inline]
149 fn deserialize<__D>(
150 __deserializer: __D,
151 ) -> core::result::Result<Self, __D::Error>
152 where
153 __D: _serde::Deserializer<'de>,
154 {
155 _serde::Deserializer::deserialize_key(__deserializer, __FieldVisitor)
156 }
157 }
158 struct __hkpTypedBroadPhaseHandleVisitor<'de> {
159 marker: _serde::__private::PhantomData<hkpTypedBroadPhaseHandle>,
160 lifetime: _serde::__private::PhantomData<&'de ()>,
161 }
162 #[allow(clippy::match_single_binding)]
163 #[allow(clippy::reversed_empty_ranges)]
164 #[allow(clippy::single_match)]
165 impl<'de> _serde::de::Visitor<'de>
166 for __hkpTypedBroadPhaseHandleVisitor<'de> {
167 type Value = hkpTypedBroadPhaseHandle;
168 fn expecting(
169 &self,
170 __formatter: &mut core::fmt::Formatter,
171 ) -> core::fmt::Result {
172 core::fmt::Formatter::write_str(
173 __formatter,
174 "struct hkpTypedBroadPhaseHandle",
175 )
176 }
177 fn visit_struct_for_bytes<__A>(
178 self,
179 mut __map: __A,
180 ) -> _serde::__private::Result<Self::Value, __A::Error>
181 where
182 __A: _serde::de::MapAccess<'de>,
183 {
184 let __ptr = __A::class_ptr(&mut __map);
185 let parent = __A::parent_value(&mut __map)?;
186 let mut m_type: _serde::__private::Option<i8> = _serde::__private::None;
187 let mut m_ownerOffset: _serde::__private::Option<i8> = _serde::__private::None;
188 let mut m_objectQualityType: _serde::__private::Option<i8> = _serde::__private::None;
189 let mut m_collisionFilterInfo: _serde::__private::Option<u32> = _serde::__private::None;
190 for i in 0..4usize {
191 match i {
192 0usize => {
193 if _serde::__private::Option::is_some(&m_type) {
194 return _serde::__private::Err(
195 <__A::Error as _serde::de::Error>::duplicate_field("type"),
196 );
197 }
198 m_type = _serde::__private::Some(
199 match __A::next_value::<i8>(&mut __map) {
200 _serde::__private::Ok(__val) => __val,
201 _serde::__private::Err(__err) => {
202 return _serde::__private::Err(__err);
203 }
204 },
205 );
206 }
207 1usize => {
208 if _serde::__private::Option::is_some(&m_ownerOffset) {
209 return _serde::__private::Err(
210 <__A::Error as _serde::de::Error>::duplicate_field(
211 "ownerOffset",
212 ),
213 );
214 }
215 m_ownerOffset = _serde::__private::Some(
216 match __A::next_value::<i8>(&mut __map) {
217 _serde::__private::Ok(__val) => __val,
218 _serde::__private::Err(__err) => {
219 return _serde::__private::Err(__err);
220 }
221 },
222 );
223 }
224 2usize => {
225 if _serde::__private::Option::is_some(
226 &m_objectQualityType,
227 ) {
228 return _serde::__private::Err(
229 <__A::Error as _serde::de::Error>::duplicate_field(
230 "objectQualityType",
231 ),
232 );
233 }
234 m_objectQualityType = _serde::__private::Some(
235 match __A::next_value::<i8>(&mut __map) {
236 _serde::__private::Ok(__val) => __val,
237 _serde::__private::Err(__err) => {
238 return _serde::__private::Err(__err);
239 }
240 },
241 );
242 }
243 3usize => {
244 if _serde::__private::Option::is_some(
245 &m_collisionFilterInfo,
246 ) {
247 return _serde::__private::Err(
248 <__A::Error as _serde::de::Error>::duplicate_field(
249 "collisionFilterInfo",
250 ),
251 );
252 }
253 __A::pad(&mut __map, 1usize, 1usize)?;
254 m_collisionFilterInfo = _serde::__private::Some(
255 match __A::next_value::<u32>(&mut __map) {
256 _serde::__private::Ok(__val) => __val,
257 _serde::__private::Err(__err) => {
258 return _serde::__private::Err(__err);
259 }
260 },
261 );
262 }
263 _ => {}
264 }
265 }
266 let m_type = match m_type {
267 _serde::__private::Some(__field) => __field,
268 _serde::__private::None => {
269 return _serde::__private::Err(
270 <__A::Error as _serde::de::Error>::missing_field("type"),
271 );
272 }
273 };
274 let m_ownerOffset = match m_ownerOffset {
275 _serde::__private::Some(__field) => __field,
276 _serde::__private::None => {
277 return _serde::__private::Err(
278 <__A::Error as _serde::de::Error>::missing_field(
279 "ownerOffset",
280 ),
281 );
282 }
283 };
284 let m_objectQualityType = match m_objectQualityType {
285 _serde::__private::Some(__field) => __field,
286 _serde::__private::None => {
287 return _serde::__private::Err(
288 <__A::Error as _serde::de::Error>::missing_field(
289 "objectQualityType",
290 ),
291 );
292 }
293 };
294 let m_collisionFilterInfo = match m_collisionFilterInfo {
295 _serde::__private::Some(__field) => __field,
296 _serde::__private::None => {
297 return _serde::__private::Err(
298 <__A::Error as _serde::de::Error>::missing_field(
299 "collisionFilterInfo",
300 ),
301 );
302 }
303 };
304 _serde::__private::Ok(hkpTypedBroadPhaseHandle {
305 __ptr,
306 parent,
307 m_type,
308 m_ownerOffset,
309 m_objectQualityType,
310 m_collisionFilterInfo,
311 })
312 }
313 #[allow(clippy::manual_unwrap_or_default)]
314 fn visit_struct<__A>(
315 self,
316 mut __map: __A,
317 ) -> _serde::__private::Result<Self::Value, __A::Error>
318 where
319 __A: _serde::de::MapAccess<'de>,
320 {
321 let mut m_type: _serde::__private::Option<i8> = _serde::__private::None;
322 let mut m_objectQualityType: _serde::__private::Option<i8> = _serde::__private::None;
323 let mut m_collisionFilterInfo: _serde::__private::Option<u32> = _serde::__private::None;
324 while let _serde::__private::Some(__key) = {
325 __A::next_key::<__Field>(&mut __map)?
326 } {
327 match __key {
328 __Field::m_type => {
329 #[cfg(
330 any(feature = "strict", feature = "ignore_duplicates")
331 )]
332 if _serde::__private::Option::is_some(&m_type) {
333 #[cfg(feature = "ignore_duplicates")]
334 {
335 __A::skip_value(&mut __map)?;
336 continue;
337 }
338 #[cfg(feature = "strict")]
339 return _serde::__private::Err(
340 <__A::Error as _serde::de::Error>::duplicate_field("type"),
341 );
342 }
343 m_type = _serde::__private::Some(
344 match __A::next_value::<i8>(&mut __map) {
345 _serde::__private::Ok(__val) => __val,
346 _serde::__private::Err(__err) => {
347 return _serde::__private::Err(__err);
348 }
349 },
350 );
351 }
352 __Field::m_objectQualityType => {
353 #[cfg(
354 any(feature = "strict", feature = "ignore_duplicates")
355 )]
356 if _serde::__private::Option::is_some(
357 &m_objectQualityType,
358 ) {
359 #[cfg(feature = "ignore_duplicates")]
360 {
361 __A::skip_value(&mut __map)?;
362 continue;
363 }
364 #[cfg(feature = "strict")]
365 return _serde::__private::Err(
366 <__A::Error as _serde::de::Error>::duplicate_field(
367 "objectQualityType",
368 ),
369 );
370 }
371 m_objectQualityType = _serde::__private::Some(
372 match __A::next_value::<i8>(&mut __map) {
373 _serde::__private::Ok(__val) => __val,
374 _serde::__private::Err(__err) => {
375 return _serde::__private::Err(__err);
376 }
377 },
378 );
379 }
380 __Field::m_collisionFilterInfo => {
381 #[cfg(
382 any(feature = "strict", feature = "ignore_duplicates")
383 )]
384 if _serde::__private::Option::is_some(
385 &m_collisionFilterInfo,
386 ) {
387 #[cfg(feature = "ignore_duplicates")]
388 {
389 __A::skip_value(&mut __map)?;
390 continue;
391 }
392 #[cfg(feature = "strict")]
393 return _serde::__private::Err(
394 <__A::Error as _serde::de::Error>::duplicate_field(
395 "collisionFilterInfo",
396 ),
397 );
398 }
399 m_collisionFilterInfo = _serde::__private::Some(
400 match __A::next_value::<u32>(&mut __map) {
401 _serde::__private::Ok(__val) => __val,
402 _serde::__private::Err(__err) => {
403 return _serde::__private::Err(__err);
404 }
405 },
406 );
407 }
408 _ => __A::skip_value(&mut __map)?,
409 }
410 }
411 let m_type = match m_type {
412 _serde::__private::Some(__field) => __field,
413 _serde::__private::None => {
414 #[cfg(feature = "strict")]
415 return _serde::__private::Err(
416 <__A::Error as _serde::de::Error>::missing_field("type"),
417 );
418 #[cfg(not(feature = "strict"))] Default::default()
419 }
420 };
421 let m_objectQualityType = match m_objectQualityType {
422 _serde::__private::Some(__field) => __field,
423 _serde::__private::None => {
424 #[cfg(feature = "strict")]
425 return _serde::__private::Err(
426 <__A::Error as _serde::de::Error>::missing_field(
427 "objectQualityType",
428 ),
429 );
430 #[cfg(not(feature = "strict"))] Default::default()
431 }
432 };
433 let m_collisionFilterInfo = match m_collisionFilterInfo {
434 _serde::__private::Some(__field) => __field,
435 _serde::__private::None => {
436 #[cfg(feature = "strict")]
437 return _serde::__private::Err(
438 <__A::Error as _serde::de::Error>::missing_field(
439 "collisionFilterInfo",
440 ),
441 );
442 #[cfg(not(feature = "strict"))] Default::default()
443 }
444 };
445 let __ptr = None;
446 let parent = hkpBroadPhaseHandle {
447 __ptr,
448 ..Default::default()
449 };
450 let __ptr = __A::class_ptr(&mut __map);
451 _serde::__private::Ok(hkpTypedBroadPhaseHandle {
452 __ptr,
453 parent,
454 m_type,
455 m_objectQualityType,
456 m_collisionFilterInfo,
457 ..Default::default()
458 })
459 }
460 }
461 const FIELDS: &[&str] = &[
462 "type",
463 "ownerOffset",
464 "objectQualityType",
465 "collisionFilterInfo",
466 ];
467 _serde::Deserializer::deserialize_struct(
468 deserializer,
469 "hkpTypedBroadPhaseHandle",
470 FIELDS,
471 __hkpTypedBroadPhaseHandleVisitor {
472 marker: _serde::__private::PhantomData::<hkpTypedBroadPhaseHandle>,
473 lifetime: _serde::__private::PhantomData,
474 },
475 )
476 }
477 }
478};