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 hkbBlenderGeneratorChild {
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: hkbBindable,
30 #[cfg_attr(feature = "json_schema", schemars(rename = "generator"))]
36 #[cfg_attr(feature = "serde", serde(rename = "generator"))]
37 pub m_generator: Pointer,
38 #[cfg_attr(feature = "json_schema", schemars(rename = "boneWeights"))]
43 #[cfg_attr(feature = "serde", serde(rename = "boneWeights"))]
44 pub m_boneWeights: Pointer,
45 #[cfg_attr(feature = "json_schema", schemars(rename = "weight"))]
50 #[cfg_attr(feature = "serde", serde(rename = "weight"))]
51 pub m_weight: f32,
52 #[cfg_attr(feature = "json_schema", schemars(rename = "worldFromModelWeight"))]
57 #[cfg_attr(feature = "serde", serde(rename = "worldFromModelWeight"))]
58 pub m_worldFromModelWeight: f32,
59}
60const _: () = {
61 use havok_serde as _serde;
62 impl _serde::HavokClass for hkbBlenderGeneratorChild {
63 #[inline]
64 fn name(&self) -> &'static str {
65 "hkbBlenderGeneratorChild"
66 }
67 #[inline]
68 fn signature(&self) -> _serde::__private::Signature {
69 _serde::__private::Signature::new(0xe2b384b0)
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.push(self.parent.m_variableBindingSet.get());
75 v.push(self.m_generator.get());
76 v.push(self.m_boneWeights.get());
77 v
78 }
79 }
80 impl _serde::Serialize for hkbBlenderGeneratorChild {
81 fn serialize<S>(&self, __serializer: S) -> Result<S::Ok, S::Error>
82 where
83 S: _serde::ser::Serializer,
84 {
85 let class_meta = self
86 .__ptr
87 .map(|name| (name, _serde::__private::Signature::new(0xe2b384b0)));
88 let mut serializer = __serializer
89 .serialize_struct(
90 "hkbBlenderGeneratorChild",
91 class_meta,
92 (48u64, 80u64),
93 )?;
94 serializer.pad_field([0u8; 4usize].as_slice(), [0u8; 8usize].as_slice())?;
95 serializer
96 .skip_field("memSizeAndFlags", &self.parent.parent.m_memSizeAndFlags)?;
97 serializer
98 .skip_field("referenceCount", &self.parent.parent.m_referenceCount)?;
99 serializer.pad_field([0u8; 0usize].as_slice(), [0u8; 4usize].as_slice())?;
100 serializer
101 .serialize_field(
102 "variableBindingSet",
103 &self.parent.m_variableBindingSet,
104 )?;
105 serializer
106 .skip_array_field(
107 "cachedBindables",
108 &self.parent.m_cachedBindables,
109 TypeSize::NonPtr,
110 )?;
111 serializer
112 .skip_field("areBindablesCached", &self.parent.m_areBindablesCached)?;
113 serializer.pad_field([0u8; 3usize].as_slice(), [0u8; 7usize].as_slice())?;
114 serializer.pad_field([0u8; 4usize].as_slice(), [0u8; 0usize].as_slice())?;
115 serializer.serialize_field("generator", &self.m_generator)?;
116 serializer.serialize_field("boneWeights", &self.m_boneWeights)?;
117 serializer.serialize_field("weight", &self.m_weight)?;
118 serializer
119 .serialize_field("worldFromModelWeight", &self.m_worldFromModelWeight)?;
120 serializer.pad_field([0u8; 0usize].as_slice(), [0u8; 8usize].as_slice())?;
121 serializer.end()
122 }
123 }
124};
125#[doc(hidden)]
126#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
127const _: () = {
128 use havok_serde as _serde;
129 #[automatically_derived]
130 impl<'de> _serde::Deserialize<'de> for hkbBlenderGeneratorChild {
131 fn deserialize<__D>(deserializer: __D) -> core::result::Result<Self, __D::Error>
132 where
133 __D: _serde::Deserializer<'de>,
134 {
135 #[allow(non_camel_case_types)]
136 enum __Field {
137 m_variableBindingSet,
138 m_generator,
139 m_boneWeights,
140 m_weight,
141 m_worldFromModelWeight,
142 __ignore,
143 }
144 struct __FieldVisitor;
145 impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
146 type Value = __Field;
147 fn expecting(
148 &self,
149 __formatter: &mut core::fmt::Formatter,
150 ) -> core::fmt::Result {
151 core::fmt::Formatter::write_str(__formatter, "field identifier")
152 }
153 #[allow(clippy::match_single_binding)]
155 #[allow(clippy::reversed_empty_ranges)]
156 #[allow(clippy::single_match)]
157 fn visit_key<__E>(
158 self,
159 __value: &str,
160 ) -> core::result::Result<Self::Value, __E>
161 where
162 __E: _serde::de::Error,
163 {
164 match __value {
165 "variableBindingSet" => Ok(__Field::m_variableBindingSet),
166 "generator" => Ok(__Field::m_generator),
167 "boneWeights" => Ok(__Field::m_boneWeights),
168 "weight" => Ok(__Field::m_weight),
169 "worldFromModelWeight" => Ok(__Field::m_worldFromModelWeight),
170 _ => Ok(__Field::__ignore),
171 }
172 }
173 }
174 impl<'de> _serde::Deserialize<'de> for __Field {
175 #[inline]
176 fn deserialize<__D>(
177 __deserializer: __D,
178 ) -> core::result::Result<Self, __D::Error>
179 where
180 __D: _serde::Deserializer<'de>,
181 {
182 _serde::Deserializer::deserialize_key(__deserializer, __FieldVisitor)
183 }
184 }
185 struct __hkbBlenderGeneratorChildVisitor<'de> {
186 marker: _serde::__private::PhantomData<hkbBlenderGeneratorChild>,
187 lifetime: _serde::__private::PhantomData<&'de ()>,
188 }
189 #[allow(clippy::match_single_binding)]
190 #[allow(clippy::reversed_empty_ranges)]
191 #[allow(clippy::single_match)]
192 impl<'de> _serde::de::Visitor<'de>
193 for __hkbBlenderGeneratorChildVisitor<'de> {
194 type Value = hkbBlenderGeneratorChild;
195 fn expecting(
196 &self,
197 __formatter: &mut core::fmt::Formatter,
198 ) -> core::fmt::Result {
199 core::fmt::Formatter::write_str(
200 __formatter,
201 "struct hkbBlenderGeneratorChild",
202 )
203 }
204 fn visit_struct_for_bytes<__A>(
205 self,
206 mut __map: __A,
207 ) -> _serde::__private::Result<Self::Value, __A::Error>
208 where
209 __A: _serde::de::MapAccess<'de>,
210 {
211 let __ptr = __A::class_ptr(&mut __map);
212 let parent = __A::parent_value(&mut __map)?;
213 let mut m_generator: _serde::__private::Option<Pointer> = _serde::__private::None;
214 let mut m_boneWeights: _serde::__private::Option<Pointer> = _serde::__private::None;
215 let mut m_weight: _serde::__private::Option<f32> = _serde::__private::None;
216 let mut m_worldFromModelWeight: _serde::__private::Option<f32> = _serde::__private::None;
217 for i in 0..4usize {
218 match i {
219 0usize => {
220 if _serde::__private::Option::is_some(&m_generator) {
221 return _serde::__private::Err(
222 <__A::Error as _serde::de::Error>::duplicate_field(
223 "generator",
224 ),
225 );
226 }
227 __A::pad(&mut __map, 4usize, 0usize)?;
228 m_generator = _serde::__private::Some(
229 match __A::next_value::<Pointer>(&mut __map) {
230 _serde::__private::Ok(__val) => __val,
231 _serde::__private::Err(__err) => {
232 return _serde::__private::Err(__err);
233 }
234 },
235 );
236 }
237 1usize => {
238 if _serde::__private::Option::is_some(&m_boneWeights) {
239 return _serde::__private::Err(
240 <__A::Error as _serde::de::Error>::duplicate_field(
241 "boneWeights",
242 ),
243 );
244 }
245 m_boneWeights = _serde::__private::Some(
246 match __A::next_value::<Pointer>(&mut __map) {
247 _serde::__private::Ok(__val) => __val,
248 _serde::__private::Err(__err) => {
249 return _serde::__private::Err(__err);
250 }
251 },
252 );
253 }
254 2usize => {
255 if _serde::__private::Option::is_some(&m_weight) {
256 return _serde::__private::Err(
257 <__A::Error as _serde::de::Error>::duplicate_field("weight"),
258 );
259 }
260 m_weight = _serde::__private::Some(
261 match __A::next_value::<f32>(&mut __map) {
262 _serde::__private::Ok(__val) => __val,
263 _serde::__private::Err(__err) => {
264 return _serde::__private::Err(__err);
265 }
266 },
267 );
268 }
269 3usize => {
270 if _serde::__private::Option::is_some(
271 &m_worldFromModelWeight,
272 ) {
273 return _serde::__private::Err(
274 <__A::Error as _serde::de::Error>::duplicate_field(
275 "worldFromModelWeight",
276 ),
277 );
278 }
279 m_worldFromModelWeight = _serde::__private::Some(
280 match __A::next_value::<f32>(&mut __map) {
281 _serde::__private::Ok(__val) => __val,
282 _serde::__private::Err(__err) => {
283 return _serde::__private::Err(__err);
284 }
285 },
286 );
287 }
288 _ => {}
289 }
290 }
291 __A::pad(&mut __map, 0usize, 8usize)?;
292 let m_generator = match m_generator {
293 _serde::__private::Some(__field) => __field,
294 _serde::__private::None => {
295 return _serde::__private::Err(
296 <__A::Error as _serde::de::Error>::missing_field(
297 "generator",
298 ),
299 );
300 }
301 };
302 let m_boneWeights = match m_boneWeights {
303 _serde::__private::Some(__field) => __field,
304 _serde::__private::None => {
305 return _serde::__private::Err(
306 <__A::Error as _serde::de::Error>::missing_field(
307 "boneWeights",
308 ),
309 );
310 }
311 };
312 let m_weight = match m_weight {
313 _serde::__private::Some(__field) => __field,
314 _serde::__private::None => {
315 return _serde::__private::Err(
316 <__A::Error as _serde::de::Error>::missing_field("weight"),
317 );
318 }
319 };
320 let m_worldFromModelWeight = match m_worldFromModelWeight {
321 _serde::__private::Some(__field) => __field,
322 _serde::__private::None => {
323 return _serde::__private::Err(
324 <__A::Error as _serde::de::Error>::missing_field(
325 "worldFromModelWeight",
326 ),
327 );
328 }
329 };
330 _serde::__private::Ok(hkbBlenderGeneratorChild {
331 __ptr,
332 parent,
333 m_generator,
334 m_boneWeights,
335 m_weight,
336 m_worldFromModelWeight,
337 })
338 }
339 #[allow(clippy::manual_unwrap_or_default)]
340 fn visit_struct<__A>(
341 self,
342 mut __map: __A,
343 ) -> _serde::__private::Result<Self::Value, __A::Error>
344 where
345 __A: _serde::de::MapAccess<'de>,
346 {
347 let mut m_variableBindingSet: _serde::__private::Option<Pointer> = _serde::__private::None;
348 let mut m_generator: _serde::__private::Option<Pointer> = _serde::__private::None;
349 let mut m_boneWeights: _serde::__private::Option<Pointer> = _serde::__private::None;
350 let mut m_weight: _serde::__private::Option<f32> = _serde::__private::None;
351 let mut m_worldFromModelWeight: _serde::__private::Option<f32> = _serde::__private::None;
352 while let _serde::__private::Some(__key) = {
353 __A::next_key::<__Field>(&mut __map)?
354 } {
355 match __key {
356 __Field::m_variableBindingSet => {
357 #[cfg(
358 any(feature = "strict", feature = "ignore_duplicates")
359 )]
360 if _serde::__private::Option::is_some(
361 &m_variableBindingSet,
362 ) {
363 #[cfg(feature = "ignore_duplicates")]
364 {
365 __A::skip_value(&mut __map)?;
366 continue;
367 }
368 #[cfg(feature = "strict")]
369 return _serde::__private::Err(
370 <__A::Error as _serde::de::Error>::duplicate_field(
371 "variableBindingSet",
372 ),
373 );
374 }
375 m_variableBindingSet = _serde::__private::Some(
376 match __A::next_value::<Pointer>(&mut __map) {
377 _serde::__private::Ok(__val) => __val,
378 _serde::__private::Err(__err) => {
379 return _serde::__private::Err(__err);
380 }
381 },
382 );
383 }
384 __Field::m_generator => {
385 #[cfg(
386 any(feature = "strict", feature = "ignore_duplicates")
387 )]
388 if _serde::__private::Option::is_some(&m_generator) {
389 #[cfg(feature = "ignore_duplicates")]
390 {
391 __A::skip_value(&mut __map)?;
392 continue;
393 }
394 #[cfg(feature = "strict")]
395 return _serde::__private::Err(
396 <__A::Error as _serde::de::Error>::duplicate_field(
397 "generator",
398 ),
399 );
400 }
401 m_generator = _serde::__private::Some(
402 match __A::next_value::<Pointer>(&mut __map) {
403 _serde::__private::Ok(__val) => __val,
404 _serde::__private::Err(__err) => {
405 return _serde::__private::Err(__err);
406 }
407 },
408 );
409 }
410 __Field::m_boneWeights => {
411 #[cfg(
412 any(feature = "strict", feature = "ignore_duplicates")
413 )]
414 if _serde::__private::Option::is_some(&m_boneWeights) {
415 #[cfg(feature = "ignore_duplicates")]
416 {
417 __A::skip_value(&mut __map)?;
418 continue;
419 }
420 #[cfg(feature = "strict")]
421 return _serde::__private::Err(
422 <__A::Error as _serde::de::Error>::duplicate_field(
423 "boneWeights",
424 ),
425 );
426 }
427 m_boneWeights = _serde::__private::Some(
428 match __A::next_value::<Pointer>(&mut __map) {
429 _serde::__private::Ok(__val) => __val,
430 _serde::__private::Err(__err) => {
431 return _serde::__private::Err(__err);
432 }
433 },
434 );
435 }
436 __Field::m_weight => {
437 #[cfg(
438 any(feature = "strict", feature = "ignore_duplicates")
439 )]
440 if _serde::__private::Option::is_some(&m_weight) {
441 #[cfg(feature = "ignore_duplicates")]
442 {
443 __A::skip_value(&mut __map)?;
444 continue;
445 }
446 #[cfg(feature = "strict")]
447 return _serde::__private::Err(
448 <__A::Error as _serde::de::Error>::duplicate_field("weight"),
449 );
450 }
451 m_weight = _serde::__private::Some(
452 match __A::next_value::<f32>(&mut __map) {
453 _serde::__private::Ok(__val) => __val,
454 _serde::__private::Err(__err) => {
455 return _serde::__private::Err(__err);
456 }
457 },
458 );
459 }
460 __Field::m_worldFromModelWeight => {
461 #[cfg(
462 any(feature = "strict", feature = "ignore_duplicates")
463 )]
464 if _serde::__private::Option::is_some(
465 &m_worldFromModelWeight,
466 ) {
467 #[cfg(feature = "ignore_duplicates")]
468 {
469 __A::skip_value(&mut __map)?;
470 continue;
471 }
472 #[cfg(feature = "strict")]
473 return _serde::__private::Err(
474 <__A::Error as _serde::de::Error>::duplicate_field(
475 "worldFromModelWeight",
476 ),
477 );
478 }
479 m_worldFromModelWeight = _serde::__private::Some(
480 match __A::next_value::<f32>(&mut __map) {
481 _serde::__private::Ok(__val) => __val,
482 _serde::__private::Err(__err) => {
483 return _serde::__private::Err(__err);
484 }
485 },
486 );
487 }
488 _ => __A::skip_value(&mut __map)?,
489 }
490 }
491 let m_variableBindingSet = match m_variableBindingSet {
492 _serde::__private::Some(__field) => __field,
493 _serde::__private::None => {
494 #[cfg(feature = "strict")]
495 return _serde::__private::Err(
496 <__A::Error as _serde::de::Error>::missing_field(
497 "variableBindingSet",
498 ),
499 );
500 #[cfg(not(feature = "strict"))] Default::default()
501 }
502 };
503 let m_generator = match m_generator {
504 _serde::__private::Some(__field) => __field,
505 _serde::__private::None => {
506 #[cfg(feature = "strict")]
507 return _serde::__private::Err(
508 <__A::Error as _serde::de::Error>::missing_field(
509 "generator",
510 ),
511 );
512 #[cfg(not(feature = "strict"))] Default::default()
513 }
514 };
515 let m_boneWeights = match m_boneWeights {
516 _serde::__private::Some(__field) => __field,
517 _serde::__private::None => {
518 #[cfg(feature = "strict")]
519 return _serde::__private::Err(
520 <__A::Error as _serde::de::Error>::missing_field(
521 "boneWeights",
522 ),
523 );
524 #[cfg(not(feature = "strict"))] Default::default()
525 }
526 };
527 let m_weight = match m_weight {
528 _serde::__private::Some(__field) => __field,
529 _serde::__private::None => {
530 #[cfg(feature = "strict")]
531 return _serde::__private::Err(
532 <__A::Error as _serde::de::Error>::missing_field("weight"),
533 );
534 #[cfg(not(feature = "strict"))] Default::default()
535 }
536 };
537 let m_worldFromModelWeight = match m_worldFromModelWeight {
538 _serde::__private::Some(__field) => __field,
539 _serde::__private::None => {
540 #[cfg(feature = "strict")]
541 return _serde::__private::Err(
542 <__A::Error as _serde::de::Error>::missing_field(
543 "worldFromModelWeight",
544 ),
545 );
546 #[cfg(not(feature = "strict"))] Default::default()
547 }
548 };
549 let __ptr = None;
550 let parent = hkBaseObject { __ptr };
551 let parent = hkReferencedObject {
552 __ptr,
553 parent,
554 ..Default::default()
555 };
556 let parent = hkbBindable {
557 __ptr,
558 parent,
559 m_variableBindingSet,
560 ..Default::default()
561 };
562 let __ptr = __A::class_ptr(&mut __map);
563 _serde::__private::Ok(hkbBlenderGeneratorChild {
564 __ptr,
565 parent,
566 m_generator,
567 m_boneWeights,
568 m_weight,
569 m_worldFromModelWeight,
570 })
571 }
572 }
573 const FIELDS: &[&str] = &[
574 "generator",
575 "boneWeights",
576 "weight",
577 "worldFromModelWeight",
578 ];
579 _serde::Deserializer::deserialize_struct(
580 deserializer,
581 "hkbBlenderGeneratorChild",
582 FIELDS,
583 __hkbBlenderGeneratorChildVisitor {
584 marker: _serde::__private::PhantomData::<hkbBlenderGeneratorChild>,
585 lifetime: _serde::__private::PhantomData,
586 },
587 )
588 }
589 }
590};