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 hkxTextureInplace<'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 = "json_schema", schemars(flatten))]
28 #[cfg_attr(feature = "serde", serde(flatten))]
29 pub parent: hkReferencedObject,
30 #[cfg_attr(feature = "json_schema", schemars(rename = "fileType"))]
35 #[cfg_attr(feature = "serde", serde(rename = "fileType"))]
36 pub m_fileType: [char; 4usize],
37 #[cfg_attr(feature = "json_schema", schemars(rename = "data"))]
42 #[cfg_attr(feature = "serde", serde(rename = "data"))]
43 pub m_data: Vec<u8>,
44 #[cfg_attr(feature = "serde", serde(borrow))]
49 #[cfg_attr(feature = "json_schema", schemars(rename = "name"))]
50 #[cfg_attr(feature = "serde", serde(rename = "name"))]
51 pub m_name: StringPtr<'a>,
52 #[cfg_attr(feature = "serde", serde(borrow))]
57 #[cfg_attr(feature = "json_schema", schemars(rename = "originalFilename"))]
58 #[cfg_attr(feature = "serde", serde(rename = "originalFilename"))]
59 pub m_originalFilename: StringPtr<'a>,
60}
61const _: () = {
62 use havok_serde as _serde;
63 impl<'a> _serde::HavokClass for hkxTextureInplace<'a> {
64 #[inline]
65 fn name(&self) -> &'static str {
66 "hkxTextureInplace"
67 }
68 #[inline]
69 fn signature(&self) -> _serde::__private::Signature {
70 _serde::__private::Signature::new(0xd45841d6)
71 }
72 #[allow(clippy::let_and_return, clippy::vec_init_then_push)]
73 fn deps_indexes(&self) -> Vec<usize> {
74 let mut v = Vec::new();
75 v
76 }
77 }
78 impl<'a> _serde::Serialize for hkxTextureInplace<'a> {
79 fn serialize<S>(&self, __serializer: S) -> Result<S::Ok, S::Error>
80 where
81 S: _serde::ser::Serializer,
82 {
83 let class_meta = self
84 .__ptr
85 .map(|name| (name, _serde::__private::Signature::new(0xd45841d6)));
86 let mut serializer = __serializer
87 .serialize_struct("hkxTextureInplace", class_meta, (32u64, 56u64))?;
88 serializer.pad_field([0u8; 4usize].as_slice(), [0u8; 8usize].as_slice())?;
89 serializer.skip_field("memSizeAndFlags", &self.parent.m_memSizeAndFlags)?;
90 serializer.skip_field("referenceCount", &self.parent.m_referenceCount)?;
91 serializer.pad_field([0u8; 0usize].as_slice(), [0u8; 4usize].as_slice())?;
92 serializer
93 .serialize_fixed_array_field(
94 "fileType",
95 self.m_fileType.as_slice(),
96 TypeSize::NonPtr,
97 )?;
98 serializer.pad_field([0u8; 0usize].as_slice(), [0u8; 4usize].as_slice())?;
99 serializer.serialize_array_field("data", &self.m_data, TypeSize::NonPtr)?;
100 serializer.serialize_field("name", &self.m_name)?;
101 serializer.serialize_field("originalFilename", &self.m_originalFilename)?;
102 serializer.end()
103 }
104 }
105};
106#[doc(hidden)]
107#[allow(non_upper_case_globals, unused_attributes, unused_qualifications)]
108const _: () = {
109 use havok_serde as _serde;
110 #[automatically_derived]
111 impl<'de> _serde::Deserialize<'de> for hkxTextureInplace<'de> {
112 fn deserialize<__D>(deserializer: __D) -> core::result::Result<Self, __D::Error>
113 where
114 __D: _serde::Deserializer<'de>,
115 {
116 #[allow(non_camel_case_types)]
117 enum __Field {
118 m_fileType,
119 m_data,
120 m_name,
121 m_originalFilename,
122 __ignore,
123 }
124 struct __FieldVisitor;
125 impl<'de> _serde::de::Visitor<'de> for __FieldVisitor {
126 type Value = __Field;
127 fn expecting(
128 &self,
129 __formatter: &mut core::fmt::Formatter,
130 ) -> core::fmt::Result {
131 core::fmt::Formatter::write_str(__formatter, "field identifier")
132 }
133 #[allow(clippy::match_single_binding)]
135 #[allow(clippy::reversed_empty_ranges)]
136 #[allow(clippy::single_match)]
137 fn visit_key<__E>(
138 self,
139 __value: &str,
140 ) -> core::result::Result<Self::Value, __E>
141 where
142 __E: _serde::de::Error,
143 {
144 match __value {
145 "fileType" => Ok(__Field::m_fileType),
146 "data" => Ok(__Field::m_data),
147 "name" => Ok(__Field::m_name),
148 "originalFilename" => Ok(__Field::m_originalFilename),
149 _ => Ok(__Field::__ignore),
150 }
151 }
152 }
153 impl<'de> _serde::Deserialize<'de> for __Field {
154 #[inline]
155 fn deserialize<__D>(
156 __deserializer: __D,
157 ) -> core::result::Result<Self, __D::Error>
158 where
159 __D: _serde::Deserializer<'de>,
160 {
161 _serde::Deserializer::deserialize_key(__deserializer, __FieldVisitor)
162 }
163 }
164 struct __hkxTextureInplaceVisitor<'de> {
165 marker: _serde::__private::PhantomData<hkxTextureInplace<'de>>,
166 lifetime: _serde::__private::PhantomData<&'de ()>,
167 }
168 #[allow(clippy::match_single_binding)]
169 #[allow(clippy::reversed_empty_ranges)]
170 #[allow(clippy::single_match)]
171 impl<'de> _serde::de::Visitor<'de> for __hkxTextureInplaceVisitor<'de> {
172 type Value = hkxTextureInplace<'de>;
173 fn expecting(
174 &self,
175 __formatter: &mut core::fmt::Formatter,
176 ) -> core::fmt::Result {
177 core::fmt::Formatter::write_str(
178 __formatter,
179 "struct hkxTextureInplace",
180 )
181 }
182 fn visit_struct_for_bytes<__A>(
183 self,
184 mut __map: __A,
185 ) -> _serde::__private::Result<Self::Value, __A::Error>
186 where
187 __A: _serde::de::MapAccess<'de>,
188 {
189 let __ptr = __A::class_ptr(&mut __map);
190 let parent = __A::parent_value(&mut __map)?;
191 let mut m_fileType: _serde::__private::Option<[char; 4usize]> = _serde::__private::None;
192 let mut m_data: _serde::__private::Option<Vec<u8>> = _serde::__private::None;
193 let mut m_name: _serde::__private::Option<StringPtr<'de>> = _serde::__private::None;
194 let mut m_originalFilename: _serde::__private::Option<
195 StringPtr<'de>,
196 > = _serde::__private::None;
197 for i in 0..4usize {
198 match i {
199 0usize => {
200 if _serde::__private::Option::is_some(&m_fileType) {
201 return _serde::__private::Err(
202 <__A::Error as _serde::de::Error>::duplicate_field(
203 "fileType",
204 ),
205 );
206 }
207 m_fileType = _serde::__private::Some(
208 match __A::next_value::<[char; 4usize]>(&mut __map) {
209 _serde::__private::Ok(__val) => __val,
210 _serde::__private::Err(__err) => {
211 return _serde::__private::Err(__err);
212 }
213 },
214 );
215 }
216 1usize => {
217 if _serde::__private::Option::is_some(&m_data) {
218 return _serde::__private::Err(
219 <__A::Error as _serde::de::Error>::duplicate_field("data"),
220 );
221 }
222 __A::pad(&mut __map, 0usize, 4usize)?;
223 m_data = _serde::__private::Some(
224 match __A::next_value::<Vec<u8>>(&mut __map) {
225 _serde::__private::Ok(__val) => __val,
226 _serde::__private::Err(__err) => {
227 return _serde::__private::Err(__err);
228 }
229 },
230 );
231 }
232 2usize => {
233 if _serde::__private::Option::is_some(&m_name) {
234 return _serde::__private::Err(
235 <__A::Error as _serde::de::Error>::duplicate_field("name"),
236 );
237 }
238 m_name = _serde::__private::Some(
239 match __A::next_value::<StringPtr<'de>>(&mut __map) {
240 _serde::__private::Ok(__val) => __val,
241 _serde::__private::Err(__err) => {
242 return _serde::__private::Err(__err);
243 }
244 },
245 );
246 }
247 3usize => {
248 if _serde::__private::Option::is_some(&m_originalFilename) {
249 return _serde::__private::Err(
250 <__A::Error as _serde::de::Error>::duplicate_field(
251 "originalFilename",
252 ),
253 );
254 }
255 m_originalFilename = _serde::__private::Some(
256 match __A::next_value::<StringPtr<'de>>(&mut __map) {
257 _serde::__private::Ok(__val) => __val,
258 _serde::__private::Err(__err) => {
259 return _serde::__private::Err(__err);
260 }
261 },
262 );
263 }
264 _ => {}
265 }
266 }
267 let m_fileType = match m_fileType {
268 _serde::__private::Some(__field) => __field,
269 _serde::__private::None => {
270 return _serde::__private::Err(
271 <__A::Error as _serde::de::Error>::missing_field("fileType"),
272 );
273 }
274 };
275 let m_data = match m_data {
276 _serde::__private::Some(__field) => __field,
277 _serde::__private::None => {
278 return _serde::__private::Err(
279 <__A::Error as _serde::de::Error>::missing_field("data"),
280 );
281 }
282 };
283 let m_name = match m_name {
284 _serde::__private::Some(__field) => __field,
285 _serde::__private::None => {
286 return _serde::__private::Err(
287 <__A::Error as _serde::de::Error>::missing_field("name"),
288 );
289 }
290 };
291 let m_originalFilename = match m_originalFilename {
292 _serde::__private::Some(__field) => __field,
293 _serde::__private::None => {
294 return _serde::__private::Err(
295 <__A::Error as _serde::de::Error>::missing_field(
296 "originalFilename",
297 ),
298 );
299 }
300 };
301 _serde::__private::Ok(hkxTextureInplace {
302 __ptr,
303 parent,
304 m_fileType,
305 m_data,
306 m_name,
307 m_originalFilename,
308 })
309 }
310 #[allow(clippy::manual_unwrap_or_default)]
311 fn visit_struct<__A>(
312 self,
313 mut __map: __A,
314 ) -> _serde::__private::Result<Self::Value, __A::Error>
315 where
316 __A: _serde::de::MapAccess<'de>,
317 {
318 let mut m_fileType: _serde::__private::Option<[char; 4usize]> = _serde::__private::None;
319 let mut m_data: _serde::__private::Option<Vec<u8>> = _serde::__private::None;
320 let mut m_name: _serde::__private::Option<StringPtr<'de>> = _serde::__private::None;
321 let mut m_originalFilename: _serde::__private::Option<
322 StringPtr<'de>,
323 > = _serde::__private::None;
324 while let _serde::__private::Some(__key) = {
325 __A::next_key::<__Field>(&mut __map)?
326 } {
327 match __key {
328 __Field::m_fileType => {
329 #[cfg(
330 any(feature = "strict", feature = "ignore_duplicates")
331 )]
332 if _serde::__private::Option::is_some(&m_fileType) {
333 #[cfg(feature = "ignore_duplicates")]
334 {
335 __A::skip_value(&mut __map)?;
336 continue;
337 }
338 #[cfg(feature = "strict")]
339 return _serde::__private::Err(
340 <__A::Error as _serde::de::Error>::duplicate_field(
341 "fileType",
342 ),
343 );
344 }
345 m_fileType = _serde::__private::Some(
346 match __A::next_value::<[char; 4usize]>(&mut __map) {
347 _serde::__private::Ok(__val) => __val,
348 _serde::__private::Err(__err) => {
349 return _serde::__private::Err(__err);
350 }
351 },
352 );
353 }
354 __Field::m_data => {
355 #[cfg(
356 any(feature = "strict", feature = "ignore_duplicates")
357 )]
358 if _serde::__private::Option::is_some(&m_data) {
359 #[cfg(feature = "ignore_duplicates")]
360 {
361 __A::skip_value(&mut __map)?;
362 continue;
363 }
364 #[cfg(feature = "strict")]
365 return _serde::__private::Err(
366 <__A::Error as _serde::de::Error>::duplicate_field("data"),
367 );
368 }
369 m_data = _serde::__private::Some(
370 match __A::next_value::<Vec<u8>>(&mut __map) {
371 _serde::__private::Ok(__val) => __val,
372 _serde::__private::Err(__err) => {
373 return _serde::__private::Err(__err);
374 }
375 },
376 );
377 }
378 __Field::m_name => {
379 #[cfg(
380 any(feature = "strict", feature = "ignore_duplicates")
381 )]
382 if _serde::__private::Option::is_some(&m_name) {
383 #[cfg(feature = "ignore_duplicates")]
384 {
385 __A::skip_value(&mut __map)?;
386 continue;
387 }
388 #[cfg(feature = "strict")]
389 return _serde::__private::Err(
390 <__A::Error as _serde::de::Error>::duplicate_field("name"),
391 );
392 }
393 m_name = _serde::__private::Some(
394 match __A::next_value::<StringPtr<'de>>(&mut __map) {
395 _serde::__private::Ok(__val) => __val,
396 _serde::__private::Err(__err) => {
397 return _serde::__private::Err(__err);
398 }
399 },
400 );
401 }
402 __Field::m_originalFilename => {
403 #[cfg(
404 any(feature = "strict", feature = "ignore_duplicates")
405 )]
406 if _serde::__private::Option::is_some(&m_originalFilename) {
407 #[cfg(feature = "ignore_duplicates")]
408 {
409 __A::skip_value(&mut __map)?;
410 continue;
411 }
412 #[cfg(feature = "strict")]
413 return _serde::__private::Err(
414 <__A::Error as _serde::de::Error>::duplicate_field(
415 "originalFilename",
416 ),
417 );
418 }
419 m_originalFilename = _serde::__private::Some(
420 match __A::next_value::<StringPtr<'de>>(&mut __map) {
421 _serde::__private::Ok(__val) => __val,
422 _serde::__private::Err(__err) => {
423 return _serde::__private::Err(__err);
424 }
425 },
426 );
427 }
428 _ => __A::skip_value(&mut __map)?,
429 }
430 }
431 let m_fileType = match m_fileType {
432 _serde::__private::Some(__field) => __field,
433 _serde::__private::None => {
434 #[cfg(feature = "strict")]
435 return _serde::__private::Err(
436 <__A::Error as _serde::de::Error>::missing_field("fileType"),
437 );
438 #[cfg(not(feature = "strict"))] Default::default()
439 }
440 };
441 let m_data = match m_data {
442 _serde::__private::Some(__field) => __field,
443 _serde::__private::None => {
444 #[cfg(feature = "strict")]
445 return _serde::__private::Err(
446 <__A::Error as _serde::de::Error>::missing_field("data"),
447 );
448 #[cfg(not(feature = "strict"))] Default::default()
449 }
450 };
451 let m_name = match m_name {
452 _serde::__private::Some(__field) => __field,
453 _serde::__private::None => {
454 #[cfg(feature = "strict")]
455 return _serde::__private::Err(
456 <__A::Error as _serde::de::Error>::missing_field("name"),
457 );
458 #[cfg(not(feature = "strict"))] Default::default()
459 }
460 };
461 let m_originalFilename = match m_originalFilename {
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(
467 "originalFilename",
468 ),
469 );
470 #[cfg(not(feature = "strict"))] Default::default()
471 }
472 };
473 let __ptr = None;
474 let parent = hkBaseObject { __ptr };
475 let parent = hkReferencedObject {
476 __ptr,
477 parent,
478 ..Default::default()
479 };
480 let __ptr = __A::class_ptr(&mut __map);
481 _serde::__private::Ok(hkxTextureInplace {
482 __ptr,
483 parent,
484 m_fileType,
485 m_data,
486 m_name,
487 m_originalFilename,
488 })
489 }
490 }
491 const FIELDS: &[&str] = &["fileType", "data", "name", "originalFilename"];
492 _serde::Deserializer::deserialize_struct(
493 deserializer,
494 "hkxTextureInplace",
495 FIELDS,
496 __hkxTextureInplaceVisitor {
497 marker: _serde::__private::PhantomData::<hkxTextureInplace>,
498 lifetime: _serde::__private::PhantomData,
499 },
500 )
501 }
502 }
503};