- chore: ran cargo fix on the codebase
This commit is contained in:
@@ -13,15 +13,15 @@ pub struct Packet {
|
||||
pub payload: Vec<u8>,
|
||||
}
|
||||
|
||||
pub trait PacketPayload: Encode + Decode {
|
||||
fn encode(&self) -> Result<Vec<u8>, Box<dyn std::error::Error + Send + Sync>> {
|
||||
pub trait PacketPayload {
|
||||
fn encode(&self) -> Result<Vec<u8>, Box<dyn std::error::Error + Send + Sync>> where Self: Encode {
|
||||
let config = bincode::config::standard().with_fixed_int_encoding();
|
||||
Ok(bincode::encode_to_vec(self, config)?)
|
||||
}
|
||||
|
||||
fn decode(data: &[u8]) -> Result<Self, Box<dyn std::error::Error + Send + Sync>>
|
||||
where
|
||||
Self: Sized,
|
||||
Self: Sized, Self: Decode<()>
|
||||
{
|
||||
let config = bincode::config::standard().with_fixed_int_encoding();
|
||||
Ok(bincode::decode_from_slice(data, config)?.0)
|
||||
@@ -29,7 +29,10 @@ pub trait PacketPayload: Encode + Decode {
|
||||
}
|
||||
|
||||
impl Packet {
|
||||
pub fn new<T: PacketPayload>(packet_type: PacketType, payload: &T) -> Result<Self, Box<dyn Error + Send + Sync>> {
|
||||
pub fn new<T: PacketPayload + bincode::Encode>(
|
||||
packet_type: PacketType,
|
||||
payload: &T,
|
||||
) -> Result<Self, Box<dyn Error + Send + Sync>> {
|
||||
let encoded_payload = <T as PacketPayload>::encode(payload)?;
|
||||
let packet_size = (6 + encoded_payload.len()) as u16;
|
||||
// let packet_crc = crc::crc16::checksum_x25(&encoded_payload);
|
||||
@@ -97,7 +100,7 @@ impl Packet {
|
||||
raw
|
||||
}
|
||||
|
||||
pub fn parse<T: PacketPayload>(&self) -> Result<T, Box<dyn Error + Send + Sync>> {
|
||||
pub fn parse<T: PacketPayload + bincode::Decode<()>>(&self) -> Result<T, Box<dyn Error + Send + Sync>> {
|
||||
<T as PacketPayload>::decode(&self.payload)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user