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 hkpSerializedSubTrack1nInfo {
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: hkpSerializedTrack1nInfo,
30 #[cfg_attr(feature = "json_schema", schemars(rename = "sectorIndex"))]
35 #[cfg_attr(feature = "serde", serde(rename = "sectorIndex"))]
36 pub m_sectorIndex: i32,
37 #[cfg_attr(feature = "json_schema", schemars(rename = "offsetInSector"))]
42 #[cfg_attr(feature = "serde", serde(rename = "offsetInSector"))]
43 pub m_offsetInSector: i32,
44}
45const _: () = {
46 use havok_serde as _serde;
47 impl _serde::HavokClass for hkpSerializedSubTrack1nInfo {
48 #[inline]
49 fn name(&self) -> &'static str {
50 "hkpSerializedSubTrack1nInfo"
51 }
52 #[inline]
53 fn signature(&self) -> _serde::__private::Signature {
54 _serde::__private::Signature::new(0x10155a)
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.extend(self.parent.m_sectors.iter().map(|ptr| ptr.get()));
60 v.extend(self.parent.m_subTracks.iter().map(|ptr| ptr.get()));
61 v
62 }
63 }
64 impl _serde::Serialize for hkpSerializedSubTrack1nInfo {
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(0x10155a)));
72 let mut serializer = __serializer
73 .serialize_struct(
74 "hkpSerializedSubTrack1nInfo",
75 class_meta,
76 (32u64, 40u64),
77 )?;
78 serializer
79 .serialize_array_field(
80 "sectors",
81 &self.parent.m_sectors,
82 TypeSize::NonPtr,
83 )?;
84 serializer
85 .serialize_array_field(
86 "subTracks",
87 &self.parent.m_subTracks,
88 TypeSize::NonPtr,
89 )?;
90 serializer.serialize_field("sectorIndex", &self.m_sectorIndex)?;
91 serializer.serialize_field("offsetInSector", &self.m_offsetInSector)?;
92 serializer.end()
93 }
94 }
95};
96#[doc(hidden)]
97#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
98const _: () = {
99 use havok_serde as _serde;
100 #[automatically_derived]
101 impl<'de> _serde::Deserialize<'de> for hkpSerializedSubTrack1nInfo {
102 fn deserialize<__D>(deserializer: __D) -> core::result::Result<Self, __D::Error>
103 where
104 __D: _serde::Deserializer<'de>,
105 {
106 #[allow(non_camel_case_types)]
107 enum __Field {
108 m_sectors,
109 m_subTracks,
110 m_sectorIndex,
111 m_offsetInSector,
112 __ignore,
113 }
114 struct __FieldVisitor;
115 impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
116 type Value = __Field;
117 fn expecting(
118 &self,
119 __formatter: &mut core::fmt::Formatter,
120 ) -> core::fmt::Result {
121 core::fmt::Formatter::write_str(__formatter, "field identifier")
122 }
123 #[allow(clippy::match_single_binding)]
125 #[allow(clippy::reversed_empty_ranges)]
126 #[allow(clippy::single_match)]
127 fn visit_key<__E>(
128 self,
129 __value: &str,
130 ) -> core::result::Result<Self::Value, __E>
131 where
132 __E: _serde::de::Error,
133 {
134 match __value {
135 "sectors" => Ok(__Field::m_sectors),
136 "subTracks" => Ok(__Field::m_subTracks),
137 "sectorIndex" => Ok(__Field::m_sectorIndex),
138 "offsetInSector" => Ok(__Field::m_offsetInSector),
139 _ => Ok(__Field::__ignore),
140 }
141 }
142 }
143 impl<'de> _serde::Deserialize<'de> for __Field {
144 #[inline]
145 fn deserialize<__D>(
146 __deserializer: __D,
147 ) -> core::result::Result<Self, __D::Error>
148 where
149 __D: _serde::Deserializer<'de>,
150 {
151 _serde::Deserializer::deserialize_key(__deserializer, __FieldVisitor)
152 }
153 }
154 struct __hkpSerializedSubTrack1nInfoVisitor<'de> {
155 marker: _serde::__private::PhantomData<hkpSerializedSubTrack1nInfo>,
156 lifetime: _serde::__private::PhantomData<&'de ()>,
157 }
158 #[allow(clippy::match_single_binding)]
159 #[allow(clippy::reversed_empty_ranges)]
160 #[allow(clippy::single_match)]
161 impl<'de> _serde::de::Visitor<'de>
162 for __hkpSerializedSubTrack1nInfoVisitor<'de> {
163 type Value = hkpSerializedSubTrack1nInfo;
164 fn expecting(
165 &self,
166 __formatter: &mut core::fmt::Formatter,
167 ) -> core::fmt::Result {
168 core::fmt::Formatter::write_str(
169 __formatter,
170 "struct hkpSerializedSubTrack1nInfo",
171 )
172 }
173 fn visit_struct_for_bytes<__A>(
174 self,
175 mut __map: __A,
176 ) -> _serde::__private::Result<Self::Value, __A::Error>
177 where
178 __A: _serde::de::MapAccess<'de>,
179 {
180 let __ptr = __A::class_ptr(&mut __map);
181 let parent = __A::parent_value(&mut __map)?;
182 let mut m_sectorIndex: _serde::__private::Option<i32> = _serde::__private::None;
183 let mut m_offsetInSector: _serde::__private::Option<i32> = _serde::__private::None;
184 for i in 0..2usize {
185 match i {
186 0usize => {
187 if _serde::__private::Option::is_some(&m_sectorIndex) {
188 return _serde::__private::Err(
189 <__A::Error as _serde::de::Error>::duplicate_field(
190 "sectorIndex",
191 ),
192 );
193 }
194 m_sectorIndex = _serde::__private::Some(
195 match __A::next_value::<i32>(&mut __map) {
196 _serde::__private::Ok(__val) => __val,
197 _serde::__private::Err(__err) => {
198 return _serde::__private::Err(__err);
199 }
200 },
201 );
202 }
203 1usize => {
204 if _serde::__private::Option::is_some(&m_offsetInSector) {
205 return _serde::__private::Err(
206 <__A::Error as _serde::de::Error>::duplicate_field(
207 "offsetInSector",
208 ),
209 );
210 }
211 m_offsetInSector = _serde::__private::Some(
212 match __A::next_value::<i32>(&mut __map) {
213 _serde::__private::Ok(__val) => __val,
214 _serde::__private::Err(__err) => {
215 return _serde::__private::Err(__err);
216 }
217 },
218 );
219 }
220 _ => {}
221 }
222 }
223 let m_sectorIndex = match m_sectorIndex {
224 _serde::__private::Some(__field) => __field,
225 _serde::__private::None => {
226 return _serde::__private::Err(
227 <__A::Error as _serde::de::Error>::missing_field(
228 "sectorIndex",
229 ),
230 );
231 }
232 };
233 let m_offsetInSector = match m_offsetInSector {
234 _serde::__private::Some(__field) => __field,
235 _serde::__private::None => {
236 return _serde::__private::Err(
237 <__A::Error as _serde::de::Error>::missing_field(
238 "offsetInSector",
239 ),
240 );
241 }
242 };
243 _serde::__private::Ok(hkpSerializedSubTrack1nInfo {
244 __ptr,
245 parent,
246 m_sectorIndex,
247 m_offsetInSector,
248 })
249 }
250 #[allow(clippy::manual_unwrap_or_default)]
251 fn visit_struct<__A>(
252 self,
253 mut __map: __A,
254 ) -> _serde::__private::Result<Self::Value, __A::Error>
255 where
256 __A: _serde::de::MapAccess<'de>,
257 {
258 let mut m_sectors: _serde::__private::Option<Vec<Pointer>> = _serde::__private::None;
259 let mut m_subTracks: _serde::__private::Option<Vec<Pointer>> = _serde::__private::None;
260 let mut m_sectorIndex: _serde::__private::Option<i32> = _serde::__private::None;
261 let mut m_offsetInSector: _serde::__private::Option<i32> = _serde::__private::None;
262 while let _serde::__private::Some(__key) = {
263 __A::next_key::<__Field>(&mut __map)?
264 } {
265 match __key {
266 __Field::m_sectors => {
267 #[cfg(
268 any(feature = "strict", feature = "ignore_duplicates")
269 )]
270 if _serde::__private::Option::is_some(&m_sectors) {
271 #[cfg(feature = "ignore_duplicates")]
272 {
273 __A::skip_value(&mut __map)?;
274 continue;
275 }
276 #[cfg(feature = "strict")]
277 return _serde::__private::Err(
278 <__A::Error as _serde::de::Error>::duplicate_field(
279 "sectors",
280 ),
281 );
282 }
283 m_sectors = _serde::__private::Some(
284 match __A::next_value::<Vec<Pointer>>(&mut __map) {
285 _serde::__private::Ok(__val) => __val,
286 _serde::__private::Err(__err) => {
287 return _serde::__private::Err(__err);
288 }
289 },
290 );
291 }
292 __Field::m_subTracks => {
293 #[cfg(
294 any(feature = "strict", feature = "ignore_duplicates")
295 )]
296 if _serde::__private::Option::is_some(&m_subTracks) {
297 #[cfg(feature = "ignore_duplicates")]
298 {
299 __A::skip_value(&mut __map)?;
300 continue;
301 }
302 #[cfg(feature = "strict")]
303 return _serde::__private::Err(
304 <__A::Error as _serde::de::Error>::duplicate_field(
305 "subTracks",
306 ),
307 );
308 }
309 m_subTracks = _serde::__private::Some(
310 match __A::next_value::<Vec<Pointer>>(&mut __map) {
311 _serde::__private::Ok(__val) => __val,
312 _serde::__private::Err(__err) => {
313 return _serde::__private::Err(__err);
314 }
315 },
316 );
317 }
318 __Field::m_sectorIndex => {
319 #[cfg(
320 any(feature = "strict", feature = "ignore_duplicates")
321 )]
322 if _serde::__private::Option::is_some(&m_sectorIndex) {
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 "sectorIndex",
332 ),
333 );
334 }
335 m_sectorIndex = _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_offsetInSector => {
345 #[cfg(
346 any(feature = "strict", feature = "ignore_duplicates")
347 )]
348 if _serde::__private::Option::is_some(&m_offsetInSector) {
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 "offsetInSector",
358 ),
359 );
360 }
361 m_offsetInSector = _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 _ => __A::skip_value(&mut __map)?,
371 }
372 }
373 let m_sectors = match m_sectors {
374 _serde::__private::Some(__field) => __field,
375 _serde::__private::None => {
376 #[cfg(feature = "strict")]
377 return _serde::__private::Err(
378 <__A::Error as _serde::de::Error>::missing_field("sectors"),
379 );
380 #[cfg(not(feature = "strict"))] Default::default()
381 }
382 };
383 let m_subTracks = match m_subTracks {
384 _serde::__private::Some(__field) => __field,
385 _serde::__private::None => {
386 #[cfg(feature = "strict")]
387 return _serde::__private::Err(
388 <__A::Error as _serde::de::Error>::missing_field(
389 "subTracks",
390 ),
391 );
392 #[cfg(not(feature = "strict"))] Default::default()
393 }
394 };
395 let m_sectorIndex = match m_sectorIndex {
396 _serde::__private::Some(__field) => __field,
397 _serde::__private::None => {
398 #[cfg(feature = "strict")]
399 return _serde::__private::Err(
400 <__A::Error as _serde::de::Error>::missing_field(
401 "sectorIndex",
402 ),
403 );
404 #[cfg(not(feature = "strict"))] Default::default()
405 }
406 };
407 let m_offsetInSector = match m_offsetInSector {
408 _serde::__private::Some(__field) => __field,
409 _serde::__private::None => {
410 #[cfg(feature = "strict")]
411 return _serde::__private::Err(
412 <__A::Error as _serde::de::Error>::missing_field(
413 "offsetInSector",
414 ),
415 );
416 #[cfg(not(feature = "strict"))] Default::default()
417 }
418 };
419 let __ptr = None;
420 let parent = hkpSerializedTrack1nInfo {
421 __ptr,
422 m_sectors,
423 m_subTracks,
424 };
425 let __ptr = __A::class_ptr(&mut __map);
426 _serde::__private::Ok(hkpSerializedSubTrack1nInfo {
427 __ptr,
428 parent,
429 m_sectorIndex,
430 m_offsetInSector,
431 })
432 }
433 }
434 const FIELDS: &[&str] = &["sectorIndex", "offsetInSector"];
435 _serde::Deserializer::deserialize_struct(
436 deserializer,
437 "hkpSerializedSubTrack1nInfo",
438 FIELDS,
439 __hkpSerializedSubTrack1nInfoVisitor {
440 marker: _serde::__private::PhantomData::<
441 hkpSerializedSubTrack1nInfo,
442 >,
443 lifetime: _serde::__private::PhantomData,
444 },
445 )
446 }
447 }
448};