1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
extern crate alloc; use alloc::boxed::Box; use crate::Id; #[derive(Copy, Clone, Debug, PartialEq)] pub enum MessageError { Max255Bytes, } pub type Result<T> = core::result::Result<T, MessageError>; pub struct Message { id: Id, data: Box<[u8]>, } impl Message { pub fn new(id: Id, data: Box<[u8]>) -> Result<Self>{ if data.len() > 255 { return Err(MessageError::Max255Bytes) } Ok(Message{ id: id, data: data }) } pub fn id(&self) -> Id { self.id } pub fn data(&self) -> &[u8] { &self.data } }