Skip to content

Commit 069f461

Browse files
committed
feat: add serialized message byte setter
1 parent 367b69f commit 069f461

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

rclrs/src/serialized_message.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,18 @@ impl SerializedMessage {
2929
pub fn clear(&mut self) {
3030
self.msg.buffer_length = 0;
3131
}
32+
33+
/// Replace the serialized payload with the given bytes.
34+
pub fn set_bytes(&mut self, bytes: &[u8]) -> Result<(), RclrsError> {
35+
unsafe {
36+
if self.msg.buffer_capacity < bytes.len() {
37+
rcutils_uint8_array_resize(&mut self.msg, bytes.len()).ok()?;
38+
}
39+
std::ptr::copy_nonoverlapping(bytes.as_ptr(), self.msg.buffer, bytes.len());
40+
self.msg.buffer_length = bytes.len();
41+
}
42+
Ok(())
43+
}
3244
}
3345

3446
impl Drop for SerializedMessage {

0 commit comments

Comments
 (0)