pub trait Packet: AsRef<[u8]> + AsMut<[u8]> {
const SIZE_INDEX: usize;
const DATA_BEGIN_INDEX: usize;
const DESTINATION_INDEX: usize;
Show 14 methods
// Provided methods
fn len_of_packet(&self) -> usize { ... }
fn as_slice(&self) -> &[u8] ⓘ { ... }
fn as_mut_slice(&mut self) -> &mut [u8] ⓘ { ... }
fn sync(&self) -> u8 { ... }
fn set_sync(&mut self) -> &mut Self { ... }
fn size(&self) -> u8 { ... }
fn set_size(&mut self, size: u8) -> &mut Self { ... }
fn dest(&self) -> u8 { ... }
fn set_dest(&mut self, dest: u8) -> &mut Self { ... }
fn data(&self) -> &[u8] ⓘ { ... }
fn set_data(&mut self, data: &[u8]) -> &mut Self { ... }
fn calculate_checksum(&mut self) -> &mut Self { ... }
fn checksum(&self) -> u8 { ... }
fn set_checksum(&mut self, checksum: u8) -> &mut Self { ... }
}Expand description
A trait for all packets structures
Required Associated Constants§
const SIZE_INDEX: usize
const DATA_BEGIN_INDEX: usize
const DESTINATION_INDEX: usize
Provided Methods§
fn len_of_packet(&self) -> usize
Sourcefn as_mut_slice(&mut self) -> &mut [u8] ⓘ
fn as_mut_slice(&mut self) -> &mut [u8] ⓘ
Returns a mutable slice of the packet until SUM byte.
fn set_sync(&mut self) -> &mut Self
Sourcefn size(&self) -> u8
fn size(&self) -> u8
Returns a SIZE byte at Packet::SIZE_INDEX
Sourcefn set_size(&mut self, size: u8) -> &mut Self
fn set_size(&mut self, size: u8) -> &mut Self
Sets a size byte at Packet::SIZE_INDEX.
Don’t use this method unless you know what you’re doing. Use Packet::set_data instead.
Sourcefn dest(&self) -> u8
fn dest(&self) -> u8
Returns a destination byte at Packet::DESTINATION_INDEX.
Sourcefn set_dest(&mut self, dest: u8) -> &mut Self
fn set_dest(&mut self, dest: u8) -> &mut Self
Sets a destination byte at Packet::DESTINATION_INDEX and calculates a new checksum.
Sourcefn set_data(&mut self, data: &[u8]) -> &mut Self
fn set_data(&mut self, data: &[u8]) -> &mut Self
Sets the packet data.
This method will also set the size byte and calculate a new checksum.
Sourcefn calculate_checksum(&mut self) -> &mut Self
fn calculate_checksum(&mut self) -> &mut Self
Calculates checksum.
The checksum is calculated by summing all bytes in the packet except the SYNC_BYTE.
Sourcefn set_checksum(&mut self, checksum: u8) -> &mut Self
fn set_checksum(&mut self, checksum: u8) -> &mut Self
Sets a checksum in the end of the packet.
Don’t use this method unless you know what you’re doing. Use Packet::calculate_checksum instead.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.