use crate::base::msg_base::MsgBase;
use crate::error::SteamError;
use crate::types::job_id::JobID;
pub trait IClientGCMsg: Send + Sync {
fn is_proto(&self) -> bool;
fn msg_type(&self) -> u32;
fn target_job_id(&self) -> JobID;
fn set_target_job_id(&mut self, id: JobID);
fn source_job_id(&self) -> JobID;
fn set_source_job_id(&mut self, id: JobID);
fn serialize(&self) -> Vec<u8>;
fn deserialize(&mut self, data: &[u8]) -> Result<(), SteamError>;
}
pub struct GCMsgBase<THeader> {
pub header: THeader,
pub payload: MsgBase,
}
impl<THeader> GCMsgBase<THeader> {
pub fn new(header: THeader, payload_reserve: usize) -> Self {
GCMsgBase {
header,
payload: MsgBase::new(payload_reserve),
}
}
}