diff --git a/embassy-stm32/src/can/frame.rs b/embassy-stm32/src/can/frame.rs index d2d1f7aa6..f1bc81ec3 100644 --- a/embassy-stm32/src/can/frame.rs +++ b/embassy-stm32/src/can/frame.rs @@ -128,6 +128,11 @@ impl ClassicData { pub fn raw(&self) -> &[u8] { &self.bytes } + + /// Raw mutable read access to data. + pub fn raw_mut(&mut self) -> &mut [u8] { + &mut self.bytes + } /// Checks if the length can be encoded in FDCAN DLC field. pub const fn is_valid_len(len: usize) -> bool { @@ -208,6 +213,11 @@ impl Frame { pub fn data(&self) -> &[u8] { &self.data.raw() } + + /// Get mutable reference to data + pub fn data_mut(&mut self) -> &mut [u8] { + self.data.raw_mut() + } /// Get priority of frame pub fn priority(&self) -> u32 { @@ -313,6 +323,11 @@ impl FdData { pub fn raw(&self) -> &[u8] { &self.bytes } + + /// Raw mutable read access to data. + pub fn raw_mut(&mut self) -> &mut [u8] { + &mut self.bytes + } /// Checks if the length can be encoded in FDCAN DLC field. pub const fn is_valid_len(len: usize) -> bool { @@ -392,6 +407,11 @@ impl FdFrame { pub fn data(&self) -> &[u8] { &self.data.raw() } + + /// Get mutable reference to data + pub fn data_mut(&mut self) -> &mut [u8] { + self.data.raw_mut() + } } impl embedded_can::Frame for FdFrame {