mirror of https://github.com/Trivernis/bromine.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
625 B
Rust
29 lines
625 B
Rust
use crate::payload::{EventReceivePayload, EventSendPayload};
|
|
use crate::prelude::IPCResult;
|
|
use serde::de::DeserializeOwned;
|
|
use serde::Serialize;
|
|
use std::io::Read;
|
|
|
|
pub type SerializationError = bincode::Error;
|
|
|
|
impl<T> EventSendPayload for T
|
|
where
|
|
T: Serialize,
|
|
{
|
|
fn to_payload_bytes(self) -> IPCResult<Vec<u8>> {
|
|
let bytes = bincode::serialize(&self)?;
|
|
|
|
Ok(bytes)
|
|
}
|
|
}
|
|
|
|
impl<T> EventReceivePayload for T
|
|
where
|
|
T: DeserializeOwned,
|
|
{
|
|
fn from_payload_bytes<R: Read>(reader: R) -> IPCResult<Self> {
|
|
let type_data = bincode::deserialize_from(reader)?;
|
|
Ok(type_data)
|
|
}
|
|
}
|