messagepack_core/encode/
bool.rs1use super::{Encode, Result};
4use crate::{formats::Format, io::IoWrite};
5
6impl<W: IoWrite> Encode<W> for bool {
7 fn encode(&self, writer: &mut W) -> Result<usize, <W as IoWrite>::Error> {
8 match self {
9 true => {
10 writer.write(&Format::True.as_slice())?;
11 Ok(1)
12 }
13 false => {
14 writer.write(&Format::False.as_slice())?;
15 Ok(1)
16 }
17 }
18 }
19}
20
21#[cfg(test)]
22mod tests {
23 use super::*;
24 use rstest::rstest;
25
26 #[rstest]
27 #[case(true,[0xc3])]
28 #[case(false,[0xc2])]
29 fn encode_bool<V: Encode<Vec<u8>>, E: AsRef<[u8]> + Sized>(
30 #[case] value: V,
31 #[case] expected: E,
32 ) {
33 let expected = expected.as_ref();
34
35 let mut buf = vec![];
36 let n = value.encode(&mut buf).unwrap();
37 assert_eq!(buf, expected);
38 assert_eq!(n, expected.len());
39 }
40}