electricui_embedded/wire/
framing.rs1use err_derive::Error;
4
5#[derive(Debug, Copy, Clone, Error)]
6pub enum Error {
7 #[error(display = "{}", _0)]
8 Cobs(#[source] corncobs::CobsError),
9}
10
11pub struct Framing {}
12
13impl Framing {
14 pub const ZERO: u8 = corncobs::ZERO;
15
16 pub const fn max_encoded_len(raw_len: usize) -> usize {
17 corncobs::max_encoded_len(raw_len)
18 }
19
20 pub fn decode_buf(bytes: &[u8], output: &mut [u8]) -> Result<usize, Error> {
21 let b = corncobs::decode_buf(bytes, output)?;
22 Ok(b)
23 }
24
25 pub fn decode_in_place(bytes: &mut [u8]) -> Result<usize, Error> {
26 let b = corncobs::decode_in_place(bytes)?;
27 Ok(b)
28 }
29
30 pub fn encode_buf(bytes: &[u8], output: &mut [u8]) -> usize {
31 corncobs::encode_buf(bytes, output)
32 }
33
34 pub fn encode_iter(bytes: &[u8]) -> impl Iterator<Item = u8> + '_ {
35 corncobs::encode_iter(bytes)
36 }
37}