serde_hkx/bytes/ser/sub_ser/
seq.rs

1use super::super::ByteSerializer;
2use crate::errors::ser::{Error, Result};
3use havok_serde::{Serialize, ser::SerializeSeq};
4use havok_types::{CString, StringPtr};
5
6impl SerializeSeq for &mut ByteSerializer {
7    type Ok = ();
8    type Error = Error;
9
10    #[inline]
11    fn serialize_primitive_element<T>(
12        &mut self,
13        value: &T,
14        _index: usize,
15        _len: usize,
16    ) -> Result<(), Self::Error>
17    where
18        T: ?Sized + Serialize,
19    {
20        value.serialize(&mut **self)
21    }
22
23    /// This method is called on HavokClasses array.(Write start)
24    ///
25    /// Therefore, it is necessary to record the write position of this in virtual_fixup.
26    #[inline]
27    fn serialize_class_element<T>(&mut self, value: &T) -> Result<()>
28    where
29        T: ?Sized + Serialize,
30    {
31        value.serialize(&mut **self)
32    }
33
34    #[inline]
35    fn serialize_math_element<T>(&mut self, value: &T) -> Result<()>
36    where
37        T: ?Sized + Serialize,
38    {
39        value.serialize(&mut **self)
40    }
41
42    #[inline]
43    fn serialize_cstring_element(&mut self, value: &CString) -> Result<()> {
44        value.serialize(&mut **self)
45    }
46
47    #[inline]
48    fn serialize_stringptr_element(&mut self, value: &StringPtr) -> Result<()> {
49        value.serialize(&mut **self)
50    }
51
52    #[inline]
53    fn end(self) -> Result<()> {
54        Ok(())
55    }
56}