havok_classes/generated/
hkbStateMachineTimeInterval_.rs

1use super::class_requires::*;
2use super::*;
3/// # C++ Info
4/// - name: `hkbStateMachineTimeInterval`
5/// - version: `0`
6/// - signature: `0x60a881e5`
7/// - size: ` 16`(x86)/` 16`(x86_64)
8/// -  vtable: `false`
9#[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 hkbStateMachineTimeInterval {
15    /// # Unique index for this class
16    /// - Represents a pointer on XML (`<hkobject name="#0001"></hkobject>`)
17    /// - [`Option::None`] => This class is `class in field`.(`<hkobject></hkobject>`)
18    ///
19    /// # Note
20    /// Not present in the binary & Not exist actual C++ field.
21    #[cfg_attr(
22        feature = "serde",
23        serde(skip_serializing_if = "Option::is_none", default)
24    )]
25    pub __ptr: Option<Pointer>,
26    /// # C++ Info
27    /// - name: `enterEventId`(ctype: `hkInt32`)
28    /// - offset: `  0`(x86)/`  0`(x86_64)
29    /// - type_size: `  4`(x86)/`  4`(x86_64)
30    #[cfg_attr(feature = "json_schema", schemars(rename = "enterEventId"))]
31    #[cfg_attr(feature = "serde", serde(rename = "enterEventId"))]
32    pub m_enterEventId: i32,
33    /// # C++ Info
34    /// - name: `exitEventId`(ctype: `hkInt32`)
35    /// - offset: `  4`(x86)/`  4`(x86_64)
36    /// - type_size: `  4`(x86)/`  4`(x86_64)
37    #[cfg_attr(feature = "json_schema", schemars(rename = "exitEventId"))]
38    #[cfg_attr(feature = "serde", serde(rename = "exitEventId"))]
39    pub m_exitEventId: i32,
40    /// # C++ Info
41    /// - name: `enterTime`(ctype: `hkReal`)
42    /// - offset: `  8`(x86)/`  8`(x86_64)
43    /// - type_size: `  4`(x86)/`  4`(x86_64)
44    #[cfg_attr(feature = "json_schema", schemars(rename = "enterTime"))]
45    #[cfg_attr(feature = "serde", serde(rename = "enterTime"))]
46    pub m_enterTime: f32,
47    /// # C++ Info
48    /// - name: `exitTime`(ctype: `hkReal`)
49    /// - offset: ` 12`(x86)/` 12`(x86_64)
50    /// - type_size: `  4`(x86)/`  4`(x86_64)
51    #[cfg_attr(feature = "json_schema", schemars(rename = "exitTime"))]
52    #[cfg_attr(feature = "serde", serde(rename = "exitTime"))]
53    pub m_exitTime: f32,
54}
55const _: () = {
56    use havok_serde as _serde;
57    impl _serde::HavokClass for hkbStateMachineTimeInterval {
58        #[inline]
59        fn name(&self) -> &'static str {
60            "hkbStateMachineTimeInterval"
61        }
62        #[inline]
63        fn signature(&self) -> _serde::__private::Signature {
64            _serde::__private::Signature::new(0x60a881e5)
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
70        }
71    }
72    impl _serde::Serialize for hkbStateMachineTimeInterval {
73        fn serialize<S>(&self, __serializer: S) -> Result<S::Ok, S::Error>
74        where
75            S: _serde::ser::Serializer,
76        {
77            let class_meta = self
78                .__ptr
79                .map(|name| (name, _serde::__private::Signature::new(0x60a881e5)));
80            let mut serializer = __serializer
81                .serialize_struct(
82                    "hkbStateMachineTimeInterval",
83                    class_meta,
84                    (16u64, 16u64),
85                )?;
86            serializer.serialize_field("enterEventId", &self.m_enterEventId)?;
87            serializer.serialize_field("exitEventId", &self.m_exitEventId)?;
88            serializer.serialize_field("enterTime", &self.m_enterTime)?;
89            serializer.serialize_field("exitTime", &self.m_exitTime)?;
90            serializer.end()
91        }
92    }
93};
94#[doc(hidden)]
95#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
96const _: () = {
97    use havok_serde as _serde;
98    #[automatically_derived]
99    impl<'de> _serde::Deserialize<'de> for hkbStateMachineTimeInterval {
100        fn deserialize<__D>(deserializer: __D) -> core::result::Result<Self, __D::Error>
101        where
102            __D: _serde::Deserializer<'de>,
103        {
104            #[allow(non_camel_case_types)]
105            enum __Field {
106                m_enterEventId,
107                m_exitEventId,
108                m_enterTime,
109                m_exitTime,
110                __ignore,
111            }
112            struct __FieldVisitor;
113            impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
114                type Value = __Field;
115                fn expecting(
116                    &self,
117                    __formatter: &mut core::fmt::Formatter,
118                ) -> core::fmt::Result {
119                    core::fmt::Formatter::write_str(__formatter, "field identifier")
120                }
121                /// Intended for use in XML.
122                #[allow(clippy::match_single_binding)]
123                #[allow(clippy::reversed_empty_ranges)]
124                #[allow(clippy::single_match)]
125                fn visit_key<__E>(
126                    self,
127                    __value: &str,
128                ) -> core::result::Result<Self::Value, __E>
129                where
130                    __E: _serde::de::Error,
131                {
132                    match __value {
133                        "enterEventId" => Ok(__Field::m_enterEventId),
134                        "exitEventId" => Ok(__Field::m_exitEventId),
135                        "enterTime" => Ok(__Field::m_enterTime),
136                        "exitTime" => Ok(__Field::m_exitTime),
137                        _ => Ok(__Field::__ignore),
138                    }
139                }
140            }
141            impl<'de> _serde::Deserialize<'de> for __Field {
142                #[inline]
143                fn deserialize<__D>(
144                    __deserializer: __D,
145                ) -> core::result::Result<Self, __D::Error>
146                where
147                    __D: _serde::Deserializer<'de>,
148                {
149                    _serde::Deserializer::deserialize_key(__deserializer, __FieldVisitor)
150                }
151            }
152            struct __hkbStateMachineTimeIntervalVisitor<'de> {
153                marker: _serde::__private::PhantomData<hkbStateMachineTimeInterval>,
154                lifetime: _serde::__private::PhantomData<&'de ()>,
155            }
156            #[allow(clippy::match_single_binding)]
157            #[allow(clippy::reversed_empty_ranges)]
158            #[allow(clippy::single_match)]
159            impl<'de> _serde::de::Visitor<'de>
160            for __hkbStateMachineTimeIntervalVisitor<'de> {
161                type Value = hkbStateMachineTimeInterval;
162                fn expecting(
163                    &self,
164                    __formatter: &mut core::fmt::Formatter,
165                ) -> core::fmt::Result {
166                    core::fmt::Formatter::write_str(
167                        __formatter,
168                        "struct hkbStateMachineTimeInterval",
169                    )
170                }
171                fn visit_struct_for_bytes<__A>(
172                    self,
173                    mut __map: __A,
174                ) -> _serde::__private::Result<Self::Value, __A::Error>
175                where
176                    __A: _serde::de::MapAccess<'de>,
177                {
178                    let __ptr = __A::class_ptr(&mut __map);
179                    let mut m_enterEventId: _serde::__private::Option<i32> = _serde::__private::None;
180                    let mut m_exitEventId: _serde::__private::Option<i32> = _serde::__private::None;
181                    let mut m_enterTime: _serde::__private::Option<f32> = _serde::__private::None;
182                    let mut m_exitTime: _serde::__private::Option<f32> = _serde::__private::None;
183                    for i in 0..4usize {
184                        match i {
185                            0usize => {
186                                if _serde::__private::Option::is_some(&m_enterEventId) {
187                                    return _serde::__private::Err(
188                                        <__A::Error as _serde::de::Error>::duplicate_field(
189                                            "enterEventId",
190                                        ),
191                                    );
192                                }
193                                m_enterEventId = _serde::__private::Some(
194                                    match __A::next_value::<i32>(&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_exitEventId) {
204                                    return _serde::__private::Err(
205                                        <__A::Error as _serde::de::Error>::duplicate_field(
206                                            "exitEventId",
207                                        ),
208                                    );
209                                }
210                                m_exitEventId = _serde::__private::Some(
211                                    match __A::next_value::<i32>(&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_enterTime) {
221                                    return _serde::__private::Err(
222                                        <__A::Error as _serde::de::Error>::duplicate_field(
223                                            "enterTime",
224                                        ),
225                                    );
226                                }
227                                m_enterTime = _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_exitTime) {
238                                    return _serde::__private::Err(
239                                        <__A::Error as _serde::de::Error>::duplicate_field(
240                                            "exitTime",
241                                        ),
242                                    );
243                                }
244                                m_exitTime = _serde::__private::Some(
245                                    match __A::next_value::<f32>(&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                    let m_enterEventId = match m_enterEventId {
257                        _serde::__private::Some(__field) => __field,
258                        _serde::__private::None => {
259                            return _serde::__private::Err(
260                                <__A::Error as _serde::de::Error>::missing_field(
261                                    "enterEventId",
262                                ),
263                            );
264                        }
265                    };
266                    let m_exitEventId = match m_exitEventId {
267                        _serde::__private::Some(__field) => __field,
268                        _serde::__private::None => {
269                            return _serde::__private::Err(
270                                <__A::Error as _serde::de::Error>::missing_field(
271                                    "exitEventId",
272                                ),
273                            );
274                        }
275                    };
276                    let m_enterTime = match m_enterTime {
277                        _serde::__private::Some(__field) => __field,
278                        _serde::__private::None => {
279                            return _serde::__private::Err(
280                                <__A::Error as _serde::de::Error>::missing_field(
281                                    "enterTime",
282                                ),
283                            );
284                        }
285                    };
286                    let m_exitTime = match m_exitTime {
287                        _serde::__private::Some(__field) => __field,
288                        _serde::__private::None => {
289                            return _serde::__private::Err(
290                                <__A::Error as _serde::de::Error>::missing_field("exitTime"),
291                            );
292                        }
293                    };
294                    _serde::__private::Ok(hkbStateMachineTimeInterval {
295                        __ptr,
296                        m_enterEventId,
297                        m_exitEventId,
298                        m_enterTime,
299                        m_exitTime,
300                    })
301                }
302                #[allow(clippy::manual_unwrap_or_default)]
303                fn visit_struct<__A>(
304                    self,
305                    mut __map: __A,
306                ) -> _serde::__private::Result<Self::Value, __A::Error>
307                where
308                    __A: _serde::de::MapAccess<'de>,
309                {
310                    let mut m_enterEventId: _serde::__private::Option<i32> = _serde::__private::None;
311                    let mut m_exitEventId: _serde::__private::Option<i32> = _serde::__private::None;
312                    let mut m_enterTime: _serde::__private::Option<f32> = _serde::__private::None;
313                    let mut m_exitTime: _serde::__private::Option<f32> = _serde::__private::None;
314                    while let _serde::__private::Some(__key) = {
315                        __A::next_key::<__Field>(&mut __map)?
316                    } {
317                        match __key {
318                            __Field::m_enterEventId => {
319                                #[cfg(
320                                    any(feature = "strict", feature = "ignore_duplicates")
321                                )]
322                                if _serde::__private::Option::is_some(&m_enterEventId) {
323                                    #[cfg(feature = "ignore_duplicates")]
324                                    {
325                                        __A::skip_value(&mut __map)?;
326                                        continue;
327                                    }
328                                    #[cfg(feature = "strict")]
329                                    return _serde::__private::Err(
330                                        <__A::Error as _serde::de::Error>::duplicate_field(
331                                            "enterEventId",
332                                        ),
333                                    );
334                                }
335                                m_enterEventId = _serde::__private::Some(
336                                    match __A::next_value::<i32>(&mut __map) {
337                                        _serde::__private::Ok(__val) => __val,
338                                        _serde::__private::Err(__err) => {
339                                            return _serde::__private::Err(__err);
340                                        }
341                                    },
342                                );
343                            }
344                            __Field::m_exitEventId => {
345                                #[cfg(
346                                    any(feature = "strict", feature = "ignore_duplicates")
347                                )]
348                                if _serde::__private::Option::is_some(&m_exitEventId) {
349                                    #[cfg(feature = "ignore_duplicates")]
350                                    {
351                                        __A::skip_value(&mut __map)?;
352                                        continue;
353                                    }
354                                    #[cfg(feature = "strict")]
355                                    return _serde::__private::Err(
356                                        <__A::Error as _serde::de::Error>::duplicate_field(
357                                            "exitEventId",
358                                        ),
359                                    );
360                                }
361                                m_exitEventId = _serde::__private::Some(
362                                    match __A::next_value::<i32>(&mut __map) {
363                                        _serde::__private::Ok(__val) => __val,
364                                        _serde::__private::Err(__err) => {
365                                            return _serde::__private::Err(__err);
366                                        }
367                                    },
368                                );
369                            }
370                            __Field::m_enterTime => {
371                                #[cfg(
372                                    any(feature = "strict", feature = "ignore_duplicates")
373                                )]
374                                if _serde::__private::Option::is_some(&m_enterTime) {
375                                    #[cfg(feature = "ignore_duplicates")]
376                                    {
377                                        __A::skip_value(&mut __map)?;
378                                        continue;
379                                    }
380                                    #[cfg(feature = "strict")]
381                                    return _serde::__private::Err(
382                                        <__A::Error as _serde::de::Error>::duplicate_field(
383                                            "enterTime",
384                                        ),
385                                    );
386                                }
387                                m_enterTime = _serde::__private::Some(
388                                    match __A::next_value::<f32>(&mut __map) {
389                                        _serde::__private::Ok(__val) => __val,
390                                        _serde::__private::Err(__err) => {
391                                            return _serde::__private::Err(__err);
392                                        }
393                                    },
394                                );
395                            }
396                            __Field::m_exitTime => {
397                                #[cfg(
398                                    any(feature = "strict", feature = "ignore_duplicates")
399                                )]
400                                if _serde::__private::Option::is_some(&m_exitTime) {
401                                    #[cfg(feature = "ignore_duplicates")]
402                                    {
403                                        __A::skip_value(&mut __map)?;
404                                        continue;
405                                    }
406                                    #[cfg(feature = "strict")]
407                                    return _serde::__private::Err(
408                                        <__A::Error as _serde::de::Error>::duplicate_field(
409                                            "exitTime",
410                                        ),
411                                    );
412                                }
413                                m_exitTime = _serde::__private::Some(
414                                    match __A::next_value::<f32>(&mut __map) {
415                                        _serde::__private::Ok(__val) => __val,
416                                        _serde::__private::Err(__err) => {
417                                            return _serde::__private::Err(__err);
418                                        }
419                                    },
420                                );
421                            }
422                            _ => __A::skip_value(&mut __map)?,
423                        }
424                    }
425                    let m_enterEventId = match m_enterEventId {
426                        _serde::__private::Some(__field) => __field,
427                        _serde::__private::None => {
428                            #[cfg(feature = "strict")]
429                            return _serde::__private::Err(
430                                <__A::Error as _serde::de::Error>::missing_field(
431                                    "enterEventId",
432                                ),
433                            );
434                            #[cfg(not(feature = "strict"))] Default::default()
435                        }
436                    };
437                    let m_exitEventId = match m_exitEventId {
438                        _serde::__private::Some(__field) => __field,
439                        _serde::__private::None => {
440                            #[cfg(feature = "strict")]
441                            return _serde::__private::Err(
442                                <__A::Error as _serde::de::Error>::missing_field(
443                                    "exitEventId",
444                                ),
445                            );
446                            #[cfg(not(feature = "strict"))] Default::default()
447                        }
448                    };
449                    let m_enterTime = match m_enterTime {
450                        _serde::__private::Some(__field) => __field,
451                        _serde::__private::None => {
452                            #[cfg(feature = "strict")]
453                            return _serde::__private::Err(
454                                <__A::Error as _serde::de::Error>::missing_field(
455                                    "enterTime",
456                                ),
457                            );
458                            #[cfg(not(feature = "strict"))] Default::default()
459                        }
460                    };
461                    let m_exitTime = match m_exitTime {
462                        _serde::__private::Some(__field) => __field,
463                        _serde::__private::None => {
464                            #[cfg(feature = "strict")]
465                            return _serde::__private::Err(
466                                <__A::Error as _serde::de::Error>::missing_field("exitTime"),
467                            );
468                            #[cfg(not(feature = "strict"))] Default::default()
469                        }
470                    };
471                    let __ptr = __A::class_ptr(&mut __map);
472                    _serde::__private::Ok(hkbStateMachineTimeInterval {
473                        __ptr,
474                        m_enterEventId,
475                        m_exitEventId,
476                        m_enterTime,
477                        m_exitTime,
478                    })
479                }
480            }
481            const FIELDS: &[&str] = &[
482                "enterEventId",
483                "exitEventId",
484                "enterTime",
485                "exitTime",
486            ];
487            _serde::Deserializer::deserialize_struct(
488                deserializer,
489                "hkbStateMachineTimeInterval",
490                FIELDS,
491                __hkbStateMachineTimeIntervalVisitor {
492                    marker: _serde::__private::PhantomData::<
493                        hkbStateMachineTimeInterval,
494                    >,
495                    lifetime: _serde::__private::PhantomData,
496                },
497            )
498        }
499    }
500};