pub trait WritePacket: Write {
// Provided methods
fn write_packet_unchecked<P: Packet>(&mut self, packet: &P) -> Result<usize> { ... }
fn write_packet<P: Packet>(&mut self, packet: &P) -> Result<usize> { ... }
fn write_packet_with_checksum<P: Packet>(
&mut self,
packet: &P,
) -> Result<usize> { ... }
}Expand description
A helper trait which implemented for std::io::Write. Contains methods for writing Packets to the Writer.
It is better to use std::io::BufWriter to avoid unnecessary syscalls, since we have to read one byte at a time to check for escaped by MARK_BYTE bytes.
Provided Methods§
Sourcefn write_packet_unchecked<P: Packet>(&mut self, packet: &P) -> Result<usize>
fn write_packet_unchecked<P: Packet>(&mut self, packet: &P) -> Result<usize>
Writes a packet to the Writer.
The function doesn’t calculate checksum and instead writes whatever is present in the packet itself. So you have to use Packet::calculate_checksum before writing.
Use Self::write_packet to calculate checksum while writing bytes.
§Errors
Will return Err if Packet::len_of_packet less than Packet::DATA_BEGIN_INDEX + 1 which is nonsense.
Sourcefn write_packet<P: Packet>(&mut self, packet: &P) -> Result<usize>
fn write_packet<P: Packet>(&mut self, packet: &P) -> Result<usize>
Similar to WritePacket::write_packet_unchecked, but it will calculate checksum while writing bytes to the writer.
§Errors
Will return Err if Packet::len_of_packet less than Packet::DATA_BEGIN_INDEX + 1 which is nonsense.
fn write_packet_with_checksum<P: Packet>(&mut self, packet: &P) -> Result<usize>
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.