use protobuf::{Message as _, SpecialFields};
use steam_vent_proto_common::{GCHandshake, RpcMessage, RpcMessageWithKind};
use steam_vent_proto_steam::steammessages_clientserver_login::CMsgClientHello;
use crate::game_coordinator::GCMsgKind;
pub struct GenericGCHandshake {
pub app_id: u32,
pub hello: CMsgClientHello,
}
impl GenericGCHandshake {
#[must_use]
pub fn new(app_id: u32) -> Self {
Self {
app_id,
hello: CMsgClientHello::default(),
}
}
}
impl GCHandshake for GenericGCHandshake {
type Hello = CMsgClientHello;
type Welcome = GenericCMsgClientWelcome;
fn app_id(&self) -> u32 {
self.app_id
}
fn hello(&self) -> Self::Hello {
self.hello.clone()
}
}
#[derive(PartialEq, Clone, Default, Debug)]
pub struct GenericCMsgClientWelcome {
pub special_fields: protobuf::SpecialFields,
}
impl protobuf::Message for GenericCMsgClientWelcome {
const NAME: &'static str = "CMsgClientWelcome";
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut protobuf::CodedInputStream<'_>) -> protobuf::Result<()> {
while let Some(tag) = is.read_raw_tag_or_eof()? {
protobuf::rt::read_unknown_or_skip_group(
tag,
is,
self.special_fields.mut_unknown_fields(),
)?;
}
Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u64 {
let mut my_size = 0;
my_size += protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields());
self.special_fields.cached_size().set(my_size as u32);
my_size
}
fn write_to_with_cached_sizes(
&self,
os: &mut protobuf::CodedOutputStream<'_>,
) -> protobuf::Result<()> {
os.write_unknown_fields(self.special_fields.unknown_fields())?;
::std::result::Result::Ok(())
}
fn special_fields(&self) -> &protobuf::SpecialFields {
&self.special_fields
}
fn mut_special_fields(&mut self) -> &mut protobuf::SpecialFields {
&mut self.special_fields
}
fn new() -> GenericCMsgClientWelcome {
GenericCMsgClientWelcome::default()
}
fn clear(&mut self) {
self.special_fields.clear();
}
fn default_instance() -> &'static GenericCMsgClientWelcome {
static INSTANCE: GenericCMsgClientWelcome = GenericCMsgClientWelcome {
special_fields: SpecialFields::new(),
};
&INSTANCE
}
}
impl RpcMessage for GenericCMsgClientWelcome {
fn parse(reader: &mut dyn std::io::Read) -> protobuf::Result<Self> {
protobuf::Message::parse_from_reader(reader)
}
fn write(&self, writer: &mut dyn std::io::Write) -> protobuf::Result<()> {
self.write_to_writer(writer)
}
fn encode_size(&self) -> usize {
self.compute_size() as usize
}
}
impl RpcMessageWithKind for GenericCMsgClientWelcome {
type KindEnum = GCMsgKind;
const KIND: Self::KindEnum = GCMsgKind::k_EMsgGCClientWelcome;
}