Packet

Trait Packet 

Source
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§

Provided Methods§

Source

fn len_of_packet(&self) -> usize

Source

fn as_slice(&self) -> &[u8]

Returns a slice of the packet until SUM byte.

Source

fn as_mut_slice(&mut self) -> &mut [u8]

Returns a mutable slice of the packet until SUM byte.

Source

fn sync(&self) -> u8

Returns a first byte in the slice.

Source

fn set_sync(&mut self) -> &mut Self

Source

fn size(&self) -> u8

Returns a SIZE byte at Packet::SIZE_INDEX

Source

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.

Source

fn dest(&self) -> u8

Returns a destination byte at Packet::DESTINATION_INDEX.

Source

fn set_dest(&mut self, dest: u8) -> &mut Self

Sets a destination byte at Packet::DESTINATION_INDEX and calculates a new checksum.

Source

fn data(&self) -> &[u8]

Returns a slice of the packet data.

Source

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.

Source

fn calculate_checksum(&mut self) -> &mut Self

Calculates checksum.

The checksum is calculated by summing all bytes in the packet except the SYNC_BYTE.

Source

fn checksum(&self) -> u8

Returns a checksum.

Source

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.

Implementors§

Source§

impl<const N: usize> Packet for jvs_packets::jvs::RequestPacket<N>

Source§

impl<const N: usize> Packet for jvs_packets::jvs::ResponsePacket<N>

Source§

impl<const N: usize> Packet for jvs_packets::jvs_modified::RequestPacket<N>

Source§

impl<const N: usize> Packet for jvs_packets::jvs_modified::ResponsePacket<N>