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