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 hkRootLevelContainer<'a> {
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 = "serde", serde(borrow))]
31 #[cfg_attr(feature = "json_schema", schemars(rename = "namedVariants"))]
32 #[cfg_attr(feature = "serde", serde(rename = "namedVariants"))]
33 pub m_namedVariants: Vec<hkRootLevelContainerNamedVariant<'a>>,
34}
35const _: () = {
36 use havok_serde as _serde;
37 impl<'a> _serde::HavokClass for hkRootLevelContainer<'a> {
38 #[inline]
39 fn name(&self) -> &'static str {
40 "hkRootLevelContainer"
41 }
42 #[inline]
43 fn signature(&self) -> _serde::__private::Signature {
44 _serde::__private::Signature::new(0x2772c11e)
45 }
46 #[allow(clippy::let_and_return, clippy::vec_init_then_push)]
47 fn deps_indexes(&self) -> Vec<usize> {
48 let mut v = Vec::new();
49 v.extend(
50 self
51 .m_namedVariants
52 .iter()
53 .flat_map(|class| class.deps_indexes())
54 .collect::<Vec<usize>>(),
55 );
56 v
57 }
58 }
59 impl<'a> _serde::Serialize for hkRootLevelContainer<'a> {
60 fn serialize<S>(&self, __serializer: S) -> Result<S::Ok, S::Error>
61 where
62 S: _serde::ser::Serializer,
63 {
64 let class_meta = self
65 .__ptr
66 .map(|name| (name, _serde::__private::Signature::new(0x2772c11e)));
67 let mut serializer = __serializer
68 .serialize_struct("hkRootLevelContainer", class_meta, (12u64, 16u64))?;
69 serializer
70 .serialize_array_field(
71 "namedVariants",
72 &self.m_namedVariants,
73 TypeSize::Struct {
74 size_x86: 12u64,
75 size_x86_64: 24u64,
76 },
77 )?;
78 serializer.end()
79 }
80 }
81};
82#[doc(hidden)]
83#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
84const _: () = {
85 use havok_serde as _serde;
86 #[automatically_derived]
87 impl<'de> _serde::Deserialize<'de> for hkRootLevelContainer<'de> {
88 fn deserialize<__D>(deserializer: __D) -> core::result::Result<Self, __D::Error>
89 where
90 __D: _serde::Deserializer<'de>,
91 {
92 #[allow(non_camel_case_types)]
93 enum __Field {
94 m_namedVariants,
95 __ignore,
96 }
97 struct __FieldVisitor;
98 impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
99 type Value = __Field;
100 fn expecting(
101 &self,
102 __formatter: &mut core::fmt::Formatter,
103 ) -> core::fmt::Result {
104 core::fmt::Formatter::write_str(__formatter, "field identifier")
105 }
106 #[allow(clippy::match_single_binding)]
108 #[allow(clippy::reversed_empty_ranges)]
109 #[allow(clippy::single_match)]
110 fn visit_key<__E>(
111 self,
112 __value: &str,
113 ) -> core::result::Result<Self::Value, __E>
114 where
115 __E: _serde::de::Error,
116 {
117 match __value {
118 "namedVariants" => Ok(__Field::m_namedVariants),
119 _ => Ok(__Field::__ignore),
120 }
121 }
122 }
123 impl<'de> _serde::Deserialize<'de> for __Field {
124 #[inline]
125 fn deserialize<__D>(
126 __deserializer: __D,
127 ) -> core::result::Result<Self, __D::Error>
128 where
129 __D: _serde::Deserializer<'de>,
130 {
131 _serde::Deserializer::deserialize_key(__deserializer, __FieldVisitor)
132 }
133 }
134 struct __hkRootLevelContainerVisitor<'de> {
135 marker: _serde::__private::PhantomData<hkRootLevelContainer<'de>>,
136 lifetime: _serde::__private::PhantomData<&'de ()>,
137 }
138 #[allow(clippy::match_single_binding)]
139 #[allow(clippy::reversed_empty_ranges)]
140 #[allow(clippy::single_match)]
141 impl<'de> _serde::de::Visitor<'de> for __hkRootLevelContainerVisitor<'de> {
142 type Value = hkRootLevelContainer<'de>;
143 fn expecting(
144 &self,
145 __formatter: &mut core::fmt::Formatter,
146 ) -> core::fmt::Result {
147 core::fmt::Formatter::write_str(
148 __formatter,
149 "struct hkRootLevelContainer",
150 )
151 }
152 fn visit_struct_for_bytes<__A>(
153 self,
154 mut __map: __A,
155 ) -> _serde::__private::Result<Self::Value, __A::Error>
156 where
157 __A: _serde::de::MapAccess<'de>,
158 {
159 let __ptr = __A::class_ptr(&mut __map);
160 let mut m_namedVariants: _serde::__private::Option<
161 Vec<hkRootLevelContainerNamedVariant<'de>>,
162 > = _serde::__private::None;
163 for i in 0..1usize {
164 match i {
165 0usize => {
166 if _serde::__private::Option::is_some(&m_namedVariants) {
167 return _serde::__private::Err(
168 <__A::Error as _serde::de::Error>::duplicate_field(
169 "namedVariants",
170 ),
171 );
172 }
173 m_namedVariants = _serde::__private::Some(
174 match __A::next_value::<
175 Vec<hkRootLevelContainerNamedVariant<'de>>,
176 >(&mut __map) {
177 _serde::__private::Ok(__val) => __val,
178 _serde::__private::Err(__err) => {
179 return _serde::__private::Err(__err);
180 }
181 },
182 );
183 }
184 _ => {}
185 }
186 }
187 let m_namedVariants = match m_namedVariants {
188 _serde::__private::Some(__field) => __field,
189 _serde::__private::None => {
190 return _serde::__private::Err(
191 <__A::Error as _serde::de::Error>::missing_field(
192 "namedVariants",
193 ),
194 );
195 }
196 };
197 _serde::__private::Ok(hkRootLevelContainer {
198 __ptr,
199 m_namedVariants,
200 })
201 }
202 #[allow(clippy::manual_unwrap_or_default)]
203 fn visit_struct<__A>(
204 self,
205 mut __map: __A,
206 ) -> _serde::__private::Result<Self::Value, __A::Error>
207 where
208 __A: _serde::de::MapAccess<'de>,
209 {
210 let mut m_namedVariants: _serde::__private::Option<
211 Vec<hkRootLevelContainerNamedVariant<'de>>,
212 > = _serde::__private::None;
213 while let _serde::__private::Some(__key) = {
214 __A::next_key::<__Field>(&mut __map)?
215 } {
216 match __key {
217 __Field::m_namedVariants => {
218 #[cfg(
219 any(feature = "strict", feature = "ignore_duplicates")
220 )]
221 if _serde::__private::Option::is_some(&m_namedVariants) {
222 #[cfg(feature = "ignore_duplicates")]
223 {
224 __A::skip_value(&mut __map)?;
225 continue;
226 }
227 #[cfg(feature = "strict")]
228 return _serde::__private::Err(
229 <__A::Error as _serde::de::Error>::duplicate_field(
230 "namedVariants",
231 ),
232 );
233 }
234 m_namedVariants = _serde::__private::Some(
235 match __A::next_value::<
236 Vec<hkRootLevelContainerNamedVariant<'de>>,
237 >(&mut __map) {
238 _serde::__private::Ok(__val) => __val,
239 _serde::__private::Err(__err) => {
240 return _serde::__private::Err(__err);
241 }
242 },
243 );
244 }
245 _ => __A::skip_value(&mut __map)?,
246 }
247 }
248 let m_namedVariants = match m_namedVariants {
249 _serde::__private::Some(__field) => __field,
250 _serde::__private::None => {
251 #[cfg(feature = "strict")]
252 return _serde::__private::Err(
253 <__A::Error as _serde::de::Error>::missing_field(
254 "namedVariants",
255 ),
256 );
257 #[cfg(not(feature = "strict"))] Default::default()
258 }
259 };
260 let __ptr = __A::class_ptr(&mut __map);
261 _serde::__private::Ok(hkRootLevelContainer {
262 __ptr,
263 m_namedVariants,
264 })
265 }
266 }
267 const FIELDS: &[&str] = &["namedVariants"];
268 _serde::Deserializer::deserialize_struct(
269 deserializer,
270 "hkRootLevelContainer",
271 FIELDS,
272 __hkRootLevelContainerVisitor {
273 marker: _serde::__private::PhantomData::<hkRootLevelContainer>,
274 lifetime: _serde::__private::PhantomData,
275 },
276 )
277 }
278 }
279};