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