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 hkpPhysicsData {
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: hkReferencedObject,
30 #[cfg_attr(feature = "json_schema", schemars(rename = "worldCinfo"))]
35 #[cfg_attr(feature = "serde", serde(rename = "worldCinfo"))]
36 pub m_worldCinfo: Pointer,
37 #[cfg_attr(feature = "json_schema", schemars(rename = "systems"))]
42 #[cfg_attr(feature = "serde", serde(rename = "systems"))]
43 pub m_systems: Vec<Pointer>,
44}
45const _: () = {
46 use havok_serde as _serde;
47 impl _serde::HavokClass for hkpPhysicsData {
48 #[inline]
49 fn name(&self) -> &'static str {
50 "hkpPhysicsData"
51 }
52 #[inline]
53 fn signature(&self) -> _serde::__private::Signature {
54 _serde::__private::Signature::new(0xc2a461e4)
55 }
56 #[allow(clippy::let_and_return, clippy::vec_init_then_push)]
57 fn deps_indexes(&self) -> Vec<usize> {
58 let mut v = Vec::new();
59 v.push(self.m_worldCinfo.get());
60 v.extend(self.m_systems.iter().map(|ptr| ptr.get()));
61 v
62 }
63 }
64 impl _serde::Serialize for hkpPhysicsData {
65 fn serialize<S>(&self, __serializer: S) -> Result<S::Ok, S::Error>
66 where
67 S: _serde::ser::Serializer,
68 {
69 let class_meta = self
70 .__ptr
71 .map(|name| (name, _serde::__private::Signature::new(0xc2a461e4)));
72 let mut serializer = __serializer
73 .serialize_struct("hkpPhysicsData", class_meta, (24u64, 40u64))?;
74 serializer.pad_field([0u8; 4usize].as_slice(), [0u8; 8usize].as_slice())?;
75 serializer.skip_field("memSizeAndFlags", &self.parent.m_memSizeAndFlags)?;
76 serializer.skip_field("referenceCount", &self.parent.m_referenceCount)?;
77 serializer.pad_field([0u8; 0usize].as_slice(), [0u8; 4usize].as_slice())?;
78 serializer.serialize_field("worldCinfo", &self.m_worldCinfo)?;
79 serializer
80 .serialize_array_field("systems", &self.m_systems, TypeSize::NonPtr)?;
81 serializer.end()
82 }
83 }
84};
85#[doc(hidden)]
86#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
87const _: () = {
88 use havok_serde as _serde;
89 #[automatically_derived]
90 impl<'de> _serde::Deserialize<'de> for hkpPhysicsData {
91 fn deserialize<__D>(deserializer: __D) -> core::result::Result<Self, __D::Error>
92 where
93 __D: _serde::Deserializer<'de>,
94 {
95 #[allow(non_camel_case_types)]
96 enum __Field {
97 m_worldCinfo,
98 m_systems,
99 __ignore,
100 }
101 struct __FieldVisitor;
102 impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
103 type Value = __Field;
104 fn expecting(
105 &self,
106 __formatter: &mut core::fmt::Formatter,
107 ) -> core::fmt::Result {
108 core::fmt::Formatter::write_str(__formatter, "field identifier")
109 }
110 #[allow(clippy::match_single_binding)]
112 #[allow(clippy::reversed_empty_ranges)]
113 #[allow(clippy::single_match)]
114 fn visit_key<__E>(
115 self,
116 __value: &str,
117 ) -> core::result::Result<Self::Value, __E>
118 where
119 __E: _serde::de::Error,
120 {
121 match __value {
122 "worldCinfo" => Ok(__Field::m_worldCinfo),
123 "systems" => Ok(__Field::m_systems),
124 _ => Ok(__Field::__ignore),
125 }
126 }
127 }
128 impl<'de> _serde::Deserialize<'de> for __Field {
129 #[inline]
130 fn deserialize<__D>(
131 __deserializer: __D,
132 ) -> core::result::Result<Self, __D::Error>
133 where
134 __D: _serde::Deserializer<'de>,
135 {
136 _serde::Deserializer::deserialize_key(__deserializer, __FieldVisitor)
137 }
138 }
139 struct __hkpPhysicsDataVisitor<'de> {
140 marker: _serde::__private::PhantomData<hkpPhysicsData>,
141 lifetime: _serde::__private::PhantomData<&'de ()>,
142 }
143 #[allow(clippy::match_single_binding)]
144 #[allow(clippy::reversed_empty_ranges)]
145 #[allow(clippy::single_match)]
146 impl<'de> _serde::de::Visitor<'de> for __hkpPhysicsDataVisitor<'de> {
147 type Value = hkpPhysicsData;
148 fn expecting(
149 &self,
150 __formatter: &mut core::fmt::Formatter,
151 ) -> core::fmt::Result {
152 core::fmt::Formatter::write_str(__formatter, "struct hkpPhysicsData")
153 }
154 fn visit_struct_for_bytes<__A>(
155 self,
156 mut __map: __A,
157 ) -> _serde::__private::Result<Self::Value, __A::Error>
158 where
159 __A: _serde::de::MapAccess<'de>,
160 {
161 let __ptr = __A::class_ptr(&mut __map);
162 let parent = __A::parent_value(&mut __map)?;
163 let mut m_worldCinfo: _serde::__private::Option<Pointer> = _serde::__private::None;
164 let mut m_systems: _serde::__private::Option<Vec<Pointer>> = _serde::__private::None;
165 for i in 0..2usize {
166 match i {
167 0usize => {
168 if _serde::__private::Option::is_some(&m_worldCinfo) {
169 return _serde::__private::Err(
170 <__A::Error as _serde::de::Error>::duplicate_field(
171 "worldCinfo",
172 ),
173 );
174 }
175 m_worldCinfo = _serde::__private::Some(
176 match __A::next_value::<Pointer>(&mut __map) {
177 _serde::__private::Ok(__val) => __val,
178 _serde::__private::Err(__err) => {
179 return _serde::__private::Err(__err);
180 }
181 },
182 );
183 }
184 1usize => {
185 if _serde::__private::Option::is_some(&m_systems) {
186 return _serde::__private::Err(
187 <__A::Error as _serde::de::Error>::duplicate_field(
188 "systems",
189 ),
190 );
191 }
192 m_systems = _serde::__private::Some(
193 match __A::next_value::<Vec<Pointer>>(&mut __map) {
194 _serde::__private::Ok(__val) => __val,
195 _serde::__private::Err(__err) => {
196 return _serde::__private::Err(__err);
197 }
198 },
199 );
200 }
201 _ => {}
202 }
203 }
204 let m_worldCinfo = match m_worldCinfo {
205 _serde::__private::Some(__field) => __field,
206 _serde::__private::None => {
207 return _serde::__private::Err(
208 <__A::Error as _serde::de::Error>::missing_field(
209 "worldCinfo",
210 ),
211 );
212 }
213 };
214 let m_systems = match m_systems {
215 _serde::__private::Some(__field) => __field,
216 _serde::__private::None => {
217 return _serde::__private::Err(
218 <__A::Error as _serde::de::Error>::missing_field("systems"),
219 );
220 }
221 };
222 _serde::__private::Ok(hkpPhysicsData {
223 __ptr,
224 parent,
225 m_worldCinfo,
226 m_systems,
227 })
228 }
229 #[allow(clippy::manual_unwrap_or_default)]
230 fn visit_struct<__A>(
231 self,
232 mut __map: __A,
233 ) -> _serde::__private::Result<Self::Value, __A::Error>
234 where
235 __A: _serde::de::MapAccess<'de>,
236 {
237 let mut m_worldCinfo: _serde::__private::Option<Pointer> = _serde::__private::None;
238 let mut m_systems: _serde::__private::Option<Vec<Pointer>> = _serde::__private::None;
239 while let _serde::__private::Some(__key) = {
240 __A::next_key::<__Field>(&mut __map)?
241 } {
242 match __key {
243 __Field::m_worldCinfo => {
244 #[cfg(
245 any(feature = "strict", feature = "ignore_duplicates")
246 )]
247 if _serde::__private::Option::is_some(&m_worldCinfo) {
248 #[cfg(feature = "ignore_duplicates")]
249 {
250 __A::skip_value(&mut __map)?;
251 continue;
252 }
253 #[cfg(feature = "strict")]
254 return _serde::__private::Err(
255 <__A::Error as _serde::de::Error>::duplicate_field(
256 "worldCinfo",
257 ),
258 );
259 }
260 m_worldCinfo = _serde::__private::Some(
261 match __A::next_value::<Pointer>(&mut __map) {
262 _serde::__private::Ok(__val) => __val,
263 _serde::__private::Err(__err) => {
264 return _serde::__private::Err(__err);
265 }
266 },
267 );
268 }
269 __Field::m_systems => {
270 #[cfg(
271 any(feature = "strict", feature = "ignore_duplicates")
272 )]
273 if _serde::__private::Option::is_some(&m_systems) {
274 #[cfg(feature = "ignore_duplicates")]
275 {
276 __A::skip_value(&mut __map)?;
277 continue;
278 }
279 #[cfg(feature = "strict")]
280 return _serde::__private::Err(
281 <__A::Error as _serde::de::Error>::duplicate_field(
282 "systems",
283 ),
284 );
285 }
286 m_systems = _serde::__private::Some(
287 match __A::next_value::<Vec<Pointer>>(&mut __map) {
288 _serde::__private::Ok(__val) => __val,
289 _serde::__private::Err(__err) => {
290 return _serde::__private::Err(__err);
291 }
292 },
293 );
294 }
295 _ => __A::skip_value(&mut __map)?,
296 }
297 }
298 let m_worldCinfo = match m_worldCinfo {
299 _serde::__private::Some(__field) => __field,
300 _serde::__private::None => {
301 #[cfg(feature = "strict")]
302 return _serde::__private::Err(
303 <__A::Error as _serde::de::Error>::missing_field(
304 "worldCinfo",
305 ),
306 );
307 #[cfg(not(feature = "strict"))] Default::default()
308 }
309 };
310 let m_systems = match m_systems {
311 _serde::__private::Some(__field) => __field,
312 _serde::__private::None => {
313 #[cfg(feature = "strict")]
314 return _serde::__private::Err(
315 <__A::Error as _serde::de::Error>::missing_field("systems"),
316 );
317 #[cfg(not(feature = "strict"))] Default::default()
318 }
319 };
320 let __ptr = None;
321 let parent = hkBaseObject { __ptr };
322 let parent = hkReferencedObject {
323 __ptr,
324 parent,
325 ..Default::default()
326 };
327 let __ptr = __A::class_ptr(&mut __map);
328 _serde::__private::Ok(hkpPhysicsData {
329 __ptr,
330 parent,
331 m_worldCinfo,
332 m_systems,
333 })
334 }
335 }
336 const FIELDS: &[&str] = &["worldCinfo", "systems"];
337 _serde::Deserializer::deserialize_struct(
338 deserializer,
339 "hkpPhysicsData",
340 FIELDS,
341 __hkpPhysicsDataVisitor {
342 marker: _serde::__private::PhantomData::<hkpPhysicsData>,
343 lifetime: _serde::__private::PhantomData,
344 },
345 )
346 }
347 }
348};