havok_classes/generated/
hkbBehaviorInfoIdToNamePair_.rs

1use super::class_requires::*;
2use super::*;
3/// # C++ Info
4/// - name: `hkbBehaviorInfoIdToNamePair`
5/// - version: `0`
6/// - signature: `0x35a0439a`
7/// - size: ` 12`(x86)/` 24`(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 hkbBehaviorInfoIdToNamePair<'a> {
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: `behaviorName`(ctype: `hkStringPtr`)
28    /// - offset: `  0`(x86)/`  0`(x86_64)
29    /// - type_size: `  4`(x86)/`  8`(x86_64)
30    #[cfg_attr(feature = "serde", serde(borrow))]
31    #[cfg_attr(feature = "json_schema", schemars(rename = "behaviorName"))]
32    #[cfg_attr(feature = "serde", serde(rename = "behaviorName"))]
33    pub m_behaviorName: StringPtr<'a>,
34    /// # C++ Info
35    /// - name: `nodeName`(ctype: `hkStringPtr`)
36    /// - offset: `  4`(x86)/`  8`(x86_64)
37    /// - type_size: `  4`(x86)/`  8`(x86_64)
38    #[cfg_attr(feature = "serde", serde(borrow))]
39    #[cfg_attr(feature = "json_schema", schemars(rename = "nodeName"))]
40    #[cfg_attr(feature = "serde", serde(rename = "nodeName"))]
41    pub m_nodeName: StringPtr<'a>,
42    /// # C++ Info
43    /// - name: `toolType`(ctype: `enum ToolNodeType`)
44    /// - offset: `  8`(x86)/` 16`(x86_64)
45    /// - type_size: `  1`(x86)/`  1`(x86_64)
46    #[cfg_attr(feature = "json_schema", schemars(rename = "toolType"))]
47    #[cfg_attr(feature = "serde", serde(rename = "toolType"))]
48    pub m_toolType: ToolNodeType,
49    /// # C++ Info
50    /// - name: `id`(ctype: `hkInt16`)
51    /// - offset: ` 10`(x86)/` 18`(x86_64)
52    /// - type_size: `  2`(x86)/`  2`(x86_64)
53    #[cfg_attr(feature = "json_schema", schemars(rename = "id"))]
54    #[cfg_attr(feature = "serde", serde(rename = "id"))]
55    pub m_id: i16,
56}
57const _: () = {
58    use havok_serde as _serde;
59    impl<'a> _serde::HavokClass for hkbBehaviorInfoIdToNamePair<'a> {
60        #[inline]
61        fn name(&self) -> &'static str {
62            "hkbBehaviorInfoIdToNamePair"
63        }
64        #[inline]
65        fn signature(&self) -> _serde::__private::Signature {
66            _serde::__private::Signature::new(0x35a0439a)
67        }
68        #[allow(clippy::let_and_return, clippy::vec_init_then_push)]
69        fn deps_indexes(&self) -> Vec<usize> {
70            let mut v = Vec::new();
71            v
72        }
73    }
74    impl<'a> _serde::Serialize for hkbBehaviorInfoIdToNamePair<'a> {
75        fn serialize<S>(&self, __serializer: S) -> Result<S::Ok, S::Error>
76        where
77            S: _serde::ser::Serializer,
78        {
79            let class_meta = self
80                .__ptr
81                .map(|name| (name, _serde::__private::Signature::new(0x35a0439a)));
82            let mut serializer = __serializer
83                .serialize_struct(
84                    "hkbBehaviorInfoIdToNamePair",
85                    class_meta,
86                    (12u64, 24u64),
87                )?;
88            serializer.serialize_field("behaviorName", &self.m_behaviorName)?;
89            serializer.serialize_field("nodeName", &self.m_nodeName)?;
90            serializer.serialize_field("toolType", &self.m_toolType)?;
91            serializer.pad_field([0u8; 1usize].as_slice(), [0u8; 1usize].as_slice())?;
92            serializer.serialize_field("id", &self.m_id)?;
93            serializer.pad_field([0u8; 0usize].as_slice(), [0u8; 4usize].as_slice())?;
94            serializer.end()
95        }
96    }
97};
98#[doc(hidden)]
99#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
100const _: () = {
101    use havok_serde as _serde;
102    #[automatically_derived]
103    impl<'de> _serde::Deserialize<'de> for hkbBehaviorInfoIdToNamePair<'de> {
104        fn deserialize<__D>(deserializer: __D) -> core::result::Result<Self, __D::Error>
105        where
106            __D: _serde::Deserializer<'de>,
107        {
108            #[allow(non_camel_case_types)]
109            enum __Field {
110                m_behaviorName,
111                m_nodeName,
112                m_toolType,
113                m_id,
114                __ignore,
115            }
116            struct __FieldVisitor;
117            impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
118                type Value = __Field;
119                fn expecting(
120                    &self,
121                    __formatter: &mut core::fmt::Formatter,
122                ) -> core::fmt::Result {
123                    core::fmt::Formatter::write_str(__formatter, "field identifier")
124                }
125                /// Intended for use in XML.
126                #[allow(clippy::match_single_binding)]
127                #[allow(clippy::reversed_empty_ranges)]
128                #[allow(clippy::single_match)]
129                fn visit_key<__E>(
130                    self,
131                    __value: &str,
132                ) -> core::result::Result<Self::Value, __E>
133                where
134                    __E: _serde::de::Error,
135                {
136                    match __value {
137                        "behaviorName" => Ok(__Field::m_behaviorName),
138                        "nodeName" => Ok(__Field::m_nodeName),
139                        "toolType" => Ok(__Field::m_toolType),
140                        "id" => Ok(__Field::m_id),
141                        _ => Ok(__Field::__ignore),
142                    }
143                }
144            }
145            impl<'de> _serde::Deserialize<'de> for __Field {
146                #[inline]
147                fn deserialize<__D>(
148                    __deserializer: __D,
149                ) -> core::result::Result<Self, __D::Error>
150                where
151                    __D: _serde::Deserializer<'de>,
152                {
153                    _serde::Deserializer::deserialize_key(__deserializer, __FieldVisitor)
154                }
155            }
156            struct __hkbBehaviorInfoIdToNamePairVisitor<'de> {
157                marker: _serde::__private::PhantomData<hkbBehaviorInfoIdToNamePair<'de>>,
158                lifetime: _serde::__private::PhantomData<&'de ()>,
159            }
160            #[allow(clippy::match_single_binding)]
161            #[allow(clippy::reversed_empty_ranges)]
162            #[allow(clippy::single_match)]
163            impl<'de> _serde::de::Visitor<'de>
164            for __hkbBehaviorInfoIdToNamePairVisitor<'de> {
165                type Value = hkbBehaviorInfoIdToNamePair<'de>;
166                fn expecting(
167                    &self,
168                    __formatter: &mut core::fmt::Formatter,
169                ) -> core::fmt::Result {
170                    core::fmt::Formatter::write_str(
171                        __formatter,
172                        "struct hkbBehaviorInfoIdToNamePair",
173                    )
174                }
175                fn visit_struct_for_bytes<__A>(
176                    self,
177                    mut __map: __A,
178                ) -> _serde::__private::Result<Self::Value, __A::Error>
179                where
180                    __A: _serde::de::MapAccess<'de>,
181                {
182                    let __ptr = __A::class_ptr(&mut __map);
183                    let mut m_behaviorName: _serde::__private::Option<StringPtr<'de>> = _serde::__private::None;
184                    let mut m_nodeName: _serde::__private::Option<StringPtr<'de>> = _serde::__private::None;
185                    let mut m_toolType: _serde::__private::Option<ToolNodeType> = _serde::__private::None;
186                    let mut m_id: _serde::__private::Option<i16> = _serde::__private::None;
187                    for i in 0..4usize {
188                        match i {
189                            0usize => {
190                                if _serde::__private::Option::is_some(&m_behaviorName) {
191                                    return _serde::__private::Err(
192                                        <__A::Error as _serde::de::Error>::duplicate_field(
193                                            "behaviorName",
194                                        ),
195                                    );
196                                }
197                                m_behaviorName = _serde::__private::Some(
198                                    match __A::next_value::<StringPtr<'de>>(&mut __map) {
199                                        _serde::__private::Ok(__val) => __val,
200                                        _serde::__private::Err(__err) => {
201                                            return _serde::__private::Err(__err);
202                                        }
203                                    },
204                                );
205                            }
206                            1usize => {
207                                if _serde::__private::Option::is_some(&m_nodeName) {
208                                    return _serde::__private::Err(
209                                        <__A::Error as _serde::de::Error>::duplicate_field(
210                                            "nodeName",
211                                        ),
212                                    );
213                                }
214                                m_nodeName = _serde::__private::Some(
215                                    match __A::next_value::<StringPtr<'de>>(&mut __map) {
216                                        _serde::__private::Ok(__val) => __val,
217                                        _serde::__private::Err(__err) => {
218                                            return _serde::__private::Err(__err);
219                                        }
220                                    },
221                                );
222                            }
223                            2usize => {
224                                if _serde::__private::Option::is_some(&m_toolType) {
225                                    return _serde::__private::Err(
226                                        <__A::Error as _serde::de::Error>::duplicate_field(
227                                            "toolType",
228                                        ),
229                                    );
230                                }
231                                m_toolType = _serde::__private::Some(
232                                    match __A::next_value::<ToolNodeType>(&mut __map) {
233                                        _serde::__private::Ok(__val) => __val,
234                                        _serde::__private::Err(__err) => {
235                                            return _serde::__private::Err(__err);
236                                        }
237                                    },
238                                );
239                            }
240                            3usize => {
241                                if _serde::__private::Option::is_some(&m_id) {
242                                    return _serde::__private::Err(
243                                        <__A::Error as _serde::de::Error>::duplicate_field("id"),
244                                    );
245                                }
246                                __A::pad(&mut __map, 1usize, 1usize)?;
247                                m_id = _serde::__private::Some(
248                                    match __A::next_value::<i16>(&mut __map) {
249                                        _serde::__private::Ok(__val) => __val,
250                                        _serde::__private::Err(__err) => {
251                                            return _serde::__private::Err(__err);
252                                        }
253                                    },
254                                );
255                            }
256                            _ => {}
257                        }
258                    }
259                    __A::pad(&mut __map, 0usize, 4usize)?;
260                    let m_behaviorName = match m_behaviorName {
261                        _serde::__private::Some(__field) => __field,
262                        _serde::__private::None => {
263                            return _serde::__private::Err(
264                                <__A::Error as _serde::de::Error>::missing_field(
265                                    "behaviorName",
266                                ),
267                            );
268                        }
269                    };
270                    let m_nodeName = match m_nodeName {
271                        _serde::__private::Some(__field) => __field,
272                        _serde::__private::None => {
273                            return _serde::__private::Err(
274                                <__A::Error as _serde::de::Error>::missing_field("nodeName"),
275                            );
276                        }
277                    };
278                    let m_toolType = match m_toolType {
279                        _serde::__private::Some(__field) => __field,
280                        _serde::__private::None => {
281                            return _serde::__private::Err(
282                                <__A::Error as _serde::de::Error>::missing_field("toolType"),
283                            );
284                        }
285                    };
286                    let m_id = match m_id {
287                        _serde::__private::Some(__field) => __field,
288                        _serde::__private::None => {
289                            return _serde::__private::Err(
290                                <__A::Error as _serde::de::Error>::missing_field("id"),
291                            );
292                        }
293                    };
294                    _serde::__private::Ok(hkbBehaviorInfoIdToNamePair {
295                        __ptr,
296                        m_behaviorName,
297                        m_nodeName,
298                        m_toolType,
299                        m_id,
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_behaviorName: _serde::__private::Option<StringPtr<'de>> = _serde::__private::None;
311                    let mut m_nodeName: _serde::__private::Option<StringPtr<'de>> = _serde::__private::None;
312                    let mut m_toolType: _serde::__private::Option<ToolNodeType> = _serde::__private::None;
313                    let mut m_id: _serde::__private::Option<i16> = _serde::__private::None;
314                    while let _serde::__private::Some(__key) = {
315                        __A::next_key::<__Field>(&mut __map)?
316                    } {
317                        match __key {
318                            __Field::m_behaviorName => {
319                                #[cfg(
320                                    any(feature = "strict", feature = "ignore_duplicates")
321                                )]
322                                if _serde::__private::Option::is_some(&m_behaviorName) {
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                                            "behaviorName",
332                                        ),
333                                    );
334                                }
335                                m_behaviorName = _serde::__private::Some(
336                                    match __A::next_value::<StringPtr<'de>>(&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_nodeName => {
345                                #[cfg(
346                                    any(feature = "strict", feature = "ignore_duplicates")
347                                )]
348                                if _serde::__private::Option::is_some(&m_nodeName) {
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                                            "nodeName",
358                                        ),
359                                    );
360                                }
361                                m_nodeName = _serde::__private::Some(
362                                    match __A::next_value::<StringPtr<'de>>(&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_toolType => {
371                                #[cfg(
372                                    any(feature = "strict", feature = "ignore_duplicates")
373                                )]
374                                if _serde::__private::Option::is_some(&m_toolType) {
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                                            "toolType",
384                                        ),
385                                    );
386                                }
387                                m_toolType = _serde::__private::Some(
388                                    match __A::next_value::<ToolNodeType>(&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_id => {
397                                #[cfg(
398                                    any(feature = "strict", feature = "ignore_duplicates")
399                                )]
400                                if _serde::__private::Option::is_some(&m_id) {
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("id"),
409                                    );
410                                }
411                                m_id = _serde::__private::Some(
412                                    match __A::next_value::<i16>(&mut __map) {
413                                        _serde::__private::Ok(__val) => __val,
414                                        _serde::__private::Err(__err) => {
415                                            return _serde::__private::Err(__err);
416                                        }
417                                    },
418                                );
419                            }
420                            _ => __A::skip_value(&mut __map)?,
421                        }
422                    }
423                    let m_behaviorName = match m_behaviorName {
424                        _serde::__private::Some(__field) => __field,
425                        _serde::__private::None => {
426                            #[cfg(feature = "strict")]
427                            return _serde::__private::Err(
428                                <__A::Error as _serde::de::Error>::missing_field(
429                                    "behaviorName",
430                                ),
431                            );
432                            #[cfg(not(feature = "strict"))] Default::default()
433                        }
434                    };
435                    let m_nodeName = match m_nodeName {
436                        _serde::__private::Some(__field) => __field,
437                        _serde::__private::None => {
438                            #[cfg(feature = "strict")]
439                            return _serde::__private::Err(
440                                <__A::Error as _serde::de::Error>::missing_field("nodeName"),
441                            );
442                            #[cfg(not(feature = "strict"))] Default::default()
443                        }
444                    };
445                    let m_toolType = match m_toolType {
446                        _serde::__private::Some(__field) => __field,
447                        _serde::__private::None => {
448                            #[cfg(feature = "strict")]
449                            return _serde::__private::Err(
450                                <__A::Error as _serde::de::Error>::missing_field("toolType"),
451                            );
452                            #[cfg(not(feature = "strict"))] Default::default()
453                        }
454                    };
455                    let m_id = match m_id {
456                        _serde::__private::Some(__field) => __field,
457                        _serde::__private::None => {
458                            #[cfg(feature = "strict")]
459                            return _serde::__private::Err(
460                                <__A::Error as _serde::de::Error>::missing_field("id"),
461                            );
462                            #[cfg(not(feature = "strict"))] Default::default()
463                        }
464                    };
465                    let __ptr = __A::class_ptr(&mut __map);
466                    _serde::__private::Ok(hkbBehaviorInfoIdToNamePair {
467                        __ptr,
468                        m_behaviorName,
469                        m_nodeName,
470                        m_toolType,
471                        m_id,
472                    })
473                }
474            }
475            const FIELDS: &[&str] = &["behaviorName", "nodeName", "toolType", "id"];
476            _serde::Deserializer::deserialize_struct(
477                deserializer,
478                "hkbBehaviorInfoIdToNamePair",
479                FIELDS,
480                __hkbBehaviorInfoIdToNamePairVisitor {
481                    marker: _serde::__private::PhantomData::<
482                        hkbBehaviorInfoIdToNamePair,
483                    >,
484                    lifetime: _serde::__private::PhantomData,
485                },
486            )
487        }
488    }
489};
490/// # C++ Info
491/// - name: `ToolNodeType`(ctype: `hkEnum<ToolNodeType, hkUint8>`)
492#[allow(non_upper_case_globals, non_snake_case)]
493#[cfg_attr(feature = "json_schema", derive(schemars::JsonSchema))]
494#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
495#[derive(
496    Debug,
497    Clone,
498    Default,
499    PartialEq,
500    Eq,
501    PartialOrd,
502    Ord,
503    num_derive::ToPrimitive,
504    num_derive::FromPrimitive,
505)]
506pub enum ToolNodeType {
507    #[default]
508    NODE_TYPE_UNKNOWN = 0isize,
509    NODE_TYPE_STATE_MACHINE = 1isize,
510    NODE_TYPE_CLIP = 2isize,
511    NODE_TYPE_BLEND = 3isize,
512    NODE_TYPE_MODIFIER = 4isize,
513    NODE_TYPE_GENERATOR = 5isize,
514    NODE_TYPE_MODIFIER_GENERATOR = 6isize,
515    NODE_TYPE_TRANSITION_EFFECT = 7isize,
516    NODE_TYPE_BEHAVIOR_FILE_REFERENCE = 8isize,
517}
518const _: () = {
519    use havok_serde as __serde;
520    impl __serde::Serialize for ToolNodeType {
521        fn serialize<S>(&self, __serializer: S) -> Result<S::Ok, S::Error>
522        where
523            S: __serde::ser::Serializer,
524        {
525            let mut __serializer = __serializer.serialize_enum_flags()?;
526            match self {
527                Self::NODE_TYPE_UNKNOWN => {
528                    __serializer.serialize_field("NODE_TYPE_UNKNOWN", &0u64)
529                }
530                Self::NODE_TYPE_STATE_MACHINE => {
531                    __serializer.serialize_field("NODE_TYPE_STATE_MACHINE", &1u64)
532                }
533                Self::NODE_TYPE_CLIP => {
534                    __serializer.serialize_field("NODE_TYPE_CLIP", &2u64)
535                }
536                Self::NODE_TYPE_BLEND => {
537                    __serializer.serialize_field("NODE_TYPE_BLEND", &3u64)
538                }
539                Self::NODE_TYPE_MODIFIER => {
540                    __serializer.serialize_field("NODE_TYPE_MODIFIER", &4u64)
541                }
542                Self::NODE_TYPE_GENERATOR => {
543                    __serializer.serialize_field("NODE_TYPE_GENERATOR", &5u64)
544                }
545                Self::NODE_TYPE_MODIFIER_GENERATOR => {
546                    __serializer.serialize_field("NODE_TYPE_MODIFIER_GENERATOR", &6u64)
547                }
548                Self::NODE_TYPE_TRANSITION_EFFECT => {
549                    __serializer.serialize_field("NODE_TYPE_TRANSITION_EFFECT", &7u64)
550                }
551                Self::NODE_TYPE_BEHAVIOR_FILE_REFERENCE => {
552                    __serializer
553                        .serialize_field("NODE_TYPE_BEHAVIOR_FILE_REFERENCE", &8u64)
554                }
555            }?;
556            use num_traits::ToPrimitive as _;
557            let num = self
558                .to_u8()
559                .ok_or(S::Error::custom("Failed enum ToolNodeType to_u8"))?;
560            __serializer.serialize_bits(&num)?;
561            __serializer.end()
562        }
563    }
564};
565#[doc(hidden)]
566#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
567const _: () = {
568    #[allow(unused_extern_crates, clippy::useless_attribute)]
569    extern crate havok_serde as _serde;
570    #[automatically_derived]
571    impl<'de> _serde::Deserialize<'de> for ToolNodeType {
572        fn deserialize<__D>(
573            __deserializer: __D,
574        ) -> _serde::__private::Result<Self, __D::Error>
575        where
576            __D: _serde::Deserializer<'de>,
577        {
578            #[allow(non_camel_case_types)]
579            #[doc(hidden)]
580            enum __Field {
581                __field0,
582                __field1,
583                __field2,
584                __field3,
585                __field4,
586                __field5,
587                __field6,
588                __field7,
589                __field8,
590            }
591            #[doc(hidden)]
592            struct __FieldVisitor;
593            impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
594                type Value = __Field;
595                fn expecting(
596                    &self,
597                    __formatter: &mut _serde::__private::Formatter,
598                ) -> _serde::__private::fmt::Result {
599                    _serde::__private::Formatter::write_str(
600                        __formatter,
601                        "variant identifier",
602                    )
603                }
604                fn visit_uint8<__E>(
605                    self,
606                    __value: u8,
607                ) -> _serde::__private::Result<Self::Value, __E>
608                where
609                    __E: _serde::de::Error,
610                {
611                    match __value {
612                        0u8 => _serde::__private::Ok(__Field::__field0),
613                        1u8 => _serde::__private::Ok(__Field::__field1),
614                        2u8 => _serde::__private::Ok(__Field::__field2),
615                        3u8 => _serde::__private::Ok(__Field::__field3),
616                        4u8 => _serde::__private::Ok(__Field::__field4),
617                        5u8 => _serde::__private::Ok(__Field::__field5),
618                        6u8 => _serde::__private::Ok(__Field::__field6),
619                        7u8 => _serde::__private::Ok(__Field::__field7),
620                        8u8 => _serde::__private::Ok(__Field::__field8),
621                        _ => {
622                            _serde::__private::Err(
623                                _serde::de::Error::invalid_value(
624                                    _serde::de::Unexpected::Uint8(__value),
625                                    &"value(u8) of variant is one of 0, 1, 2, 3, 4, 5, 6, 7, 8",
626                                ),
627                            )
628                        }
629                    }
630                }
631                fn visit_stringptr<__E>(
632                    self,
633                    __value: StringPtr<'de>,
634                ) -> _serde::__private::Result<Self::Value, __E>
635                where
636                    __E: _serde::de::Error,
637                {
638                    if let Some(__value) = __value.into_inner() {
639                        match __value.as_ref() {
640                            v if v == "0"
641                                || v.eq_ignore_ascii_case("NODE_TYPE_UNKNOWN") => {
642                                _serde::__private::Ok(__Field::__field0)
643                            }
644                            v if v == "1"
645                                || v.eq_ignore_ascii_case("NODE_TYPE_STATE_MACHINE") => {
646                                _serde::__private::Ok(__Field::__field1)
647                            }
648                            v if v == "2" || v.eq_ignore_ascii_case("NODE_TYPE_CLIP") => {
649                                _serde::__private::Ok(__Field::__field2)
650                            }
651                            v if v == "3"
652                                || v.eq_ignore_ascii_case("NODE_TYPE_BLEND") => {
653                                _serde::__private::Ok(__Field::__field3)
654                            }
655                            v if v == "4"
656                                || v.eq_ignore_ascii_case("NODE_TYPE_MODIFIER") => {
657                                _serde::__private::Ok(__Field::__field4)
658                            }
659                            v if v == "5"
660                                || v.eq_ignore_ascii_case("NODE_TYPE_GENERATOR") => {
661                                _serde::__private::Ok(__Field::__field5)
662                            }
663                            v if v == "6"
664                                || v
665                                    .eq_ignore_ascii_case("NODE_TYPE_MODIFIER_GENERATOR") => {
666                                _serde::__private::Ok(__Field::__field6)
667                            }
668                            v if v == "7"
669                                || v.eq_ignore_ascii_case("NODE_TYPE_TRANSITION_EFFECT") => {
670                                _serde::__private::Ok(__Field::__field7)
671                            }
672                            v if v == "8"
673                                || v
674                                    .eq_ignore_ascii_case(
675                                        "NODE_TYPE_BEHAVIOR_FILE_REFERENCE",
676                                    ) => _serde::__private::Ok(__Field::__field8),
677                            _ => {
678                                _serde::__private::Err(
679                                    _serde::de::Error::unknown_variant(&__value, VARIANTS),
680                                )
681                            }
682                        }
683                    } else {
684                        _serde::__private::Err(
685                            _serde::de::Error::unknown_variant("None", VARIANTS),
686                        )
687                    }
688                }
689            }
690            impl<'de> _serde::Deserialize<'de> for __Field {
691                #[inline]
692                fn deserialize<__D>(
693                    __deserializer: __D,
694                ) -> _serde::__private::Result<Self, __D::Error>
695                where
696                    __D: _serde::Deserializer<'de>,
697                {
698                    _serde::Deserializer::deserialize_identifier(
699                        __deserializer,
700                        _serde::de::ReadEnumSize::Uint8,
701                        __FieldVisitor,
702                    )
703                }
704            }
705            #[doc(hidden)]
706            struct __Visitor<'de> {
707                marker: _serde::__private::PhantomData<ToolNodeType>,
708                lifetime: _serde::__private::PhantomData<&'de ()>,
709            }
710            impl<'de> _serde::de::Visitor<'de> for __Visitor<'de> {
711                type Value = ToolNodeType;
712                fn expecting(
713                    &self,
714                    __formatter: &mut _serde::__private::Formatter,
715                ) -> _serde::__private::fmt::Result {
716                    _serde::__private::Formatter::write_str(
717                        __formatter,
718                        "enum ToolNodeType",
719                    )
720                }
721                fn visit_enum<__A>(
722                    self,
723                    __data: __A,
724                ) -> _serde::__private::Result<Self::Value, __A::Error>
725                where
726                    __A: _serde::de::EnumAccess<'de>,
727                {
728                    match _serde::de::EnumAccess::variant(__data)? {
729                        (__Field::__field0, __variant) => {
730                            _serde::de::VariantAccess::unit_variant(__variant)?;
731                            _serde::__private::Ok(ToolNodeType::NODE_TYPE_UNKNOWN)
732                        }
733                        (__Field::__field1, __variant) => {
734                            _serde::de::VariantAccess::unit_variant(__variant)?;
735                            _serde::__private::Ok(ToolNodeType::NODE_TYPE_STATE_MACHINE)
736                        }
737                        (__Field::__field2, __variant) => {
738                            _serde::de::VariantAccess::unit_variant(__variant)?;
739                            _serde::__private::Ok(ToolNodeType::NODE_TYPE_CLIP)
740                        }
741                        (__Field::__field3, __variant) => {
742                            _serde::de::VariantAccess::unit_variant(__variant)?;
743                            _serde::__private::Ok(ToolNodeType::NODE_TYPE_BLEND)
744                        }
745                        (__Field::__field4, __variant) => {
746                            _serde::de::VariantAccess::unit_variant(__variant)?;
747                            _serde::__private::Ok(ToolNodeType::NODE_TYPE_MODIFIER)
748                        }
749                        (__Field::__field5, __variant) => {
750                            _serde::de::VariantAccess::unit_variant(__variant)?;
751                            _serde::__private::Ok(ToolNodeType::NODE_TYPE_GENERATOR)
752                        }
753                        (__Field::__field6, __variant) => {
754                            _serde::de::VariantAccess::unit_variant(__variant)?;
755                            _serde::__private::Ok(
756                                ToolNodeType::NODE_TYPE_MODIFIER_GENERATOR,
757                            )
758                        }
759                        (__Field::__field7, __variant) => {
760                            _serde::de::VariantAccess::unit_variant(__variant)?;
761                            _serde::__private::Ok(
762                                ToolNodeType::NODE_TYPE_TRANSITION_EFFECT,
763                            )
764                        }
765                        (__Field::__field8, __variant) => {
766                            _serde::de::VariantAccess::unit_variant(__variant)?;
767                            _serde::__private::Ok(
768                                ToolNodeType::NODE_TYPE_BEHAVIOR_FILE_REFERENCE,
769                            )
770                        }
771                    }
772                }
773            }
774            #[doc(hidden)]
775            const VARIANTS: &'static [&'static str] = &[
776                "NODE_TYPE_UNKNOWN",
777                "NODE_TYPE_STATE_MACHINE",
778                "NODE_TYPE_CLIP",
779                "NODE_TYPE_BLEND",
780                "NODE_TYPE_MODIFIER",
781                "NODE_TYPE_GENERATOR",
782                "NODE_TYPE_MODIFIER_GENERATOR",
783                "NODE_TYPE_TRANSITION_EFFECT",
784                "NODE_TYPE_BEHAVIOR_FILE_REFERENCE",
785            ];
786            _serde::Deserializer::deserialize_enum(
787                __deserializer,
788                "ToolNodeType",
789                VARIANTS,
790                __Visitor {
791                    marker: _serde::__private::PhantomData::<ToolNodeType>,
792                    lifetime: _serde::__private::PhantomData,
793                },
794            )
795        }
796    }
797};