lilliput_core/encoder/
unit.rs

1use crate::{error::Result, header::UnitHeader, io::Write, value::UnitValue};
2
3use super::Encoder;
4
5impl<W> Encoder<W>
6where
7    W: Write,
8{
9    // MARK: - Value
10
11    /// Encodes a unit value.
12    #[inline]
13    pub fn encode_unit(&mut self) -> Result<()> {
14        let header = self.header_for_unit();
15        self.encode_unit_header(&header)
16    }
17
18    /// Encodes a unit value, from a `UnitValue`.
19    #[inline]
20    pub fn encode_unit_value(&mut self, value: &UnitValue) -> Result<()> {
21        let _ = value;
22        self.encode_unit()
23    }
24
25    // MARK: - Header
26
27    /// Encodes a unit value's header.
28    #[inline]
29    pub fn encode_unit_header(&mut self, header: &UnitHeader) -> Result<()> {
30        let _ = header;
31
32        let byte = UnitHeader::TYPE_BITS;
33
34        #[cfg(feature = "tracing")]
35        tracing::debug!(byte = crate::binary::fmt_byte(byte));
36
37        self.push_byte(byte)
38    }
39
40    /// Creates a header for a unit value.
41    pub fn header_for_unit(&self) -> UnitHeader {
42        UnitHeader
43    }
44}