steam-vent-proto 0.1.0

Protobuf structs used by the Steam client protocol
Documentation
// This file is generated by rust-protobuf 2.24.1. Do not edit
// @generated

// https://github.com/rust-lang/rust-clippy/issues/702
#![allow(unknown_lints)]
#![allow(clippy::all)]

#![allow(unused_attributes)]
#![cfg_attr(rustfmt, rustfmt::skip)]

#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_imports)]
#![allow(unused_results)]
//! Generated file from `steammessages_qms.steamclient.proto`

/// Generated files are compatible only with the same version
/// of protobuf runtime.
// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_24_1;

#[derive(PartialEq,Clone,Default)]
pub struct GameSearchParam {
    // message fields
    key_name: ::protobuf::SingularField<::std::string::String>,
    pub value: ::protobuf::RepeatedField<::std::string::String>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a GameSearchParam {
    fn default() -> &'a GameSearchParam {
        <GameSearchParam as ::protobuf::Message>::default_instance()
    }
}

impl GameSearchParam {
    pub fn new() -> GameSearchParam {
        ::std::default::Default::default()
    }

    // optional string key_name = 1;


    pub fn get_key_name(&self) -> &str {
        match self.key_name.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_key_name(&mut self) {
        self.key_name.clear();
    }

    pub fn has_key_name(&self) -> bool {
        self.key_name.is_some()
    }

    // Param is passed by value, moved
    pub fn set_key_name(&mut self, v: ::std::string::String) {
        self.key_name = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_key_name(&mut self) -> &mut ::std::string::String {
        if self.key_name.is_none() {
            self.key_name.set_default();
        }
        self.key_name.as_mut().unwrap()
    }

    // Take field
    pub fn take_key_name(&mut self) -> ::std::string::String {
        self.key_name.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // repeated string value = 2;


    pub fn get_value(&self) -> &[::std::string::String] {
        &self.value
    }
    pub fn clear_value(&mut self) {
        self.value.clear();
    }

    // Param is passed by value, moved
    pub fn set_value(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
        self.value = v;
    }

    // Mutable pointer to the field.
    pub fn mut_value(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
        &mut self.value
    }

    // Take field
    pub fn take_value(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
        ::std::mem::replace(&mut self.value, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for GameSearchParam {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.key_name)?;
                },
                2 => {
                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.value)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.key_name.as_ref() {
            my_size += ::protobuf::rt::string_size(1, &v);
        }
        for value in &self.value {
            my_size += ::protobuf::rt::string_size(2, &value);
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(ref v) = self.key_name.as_ref() {
            os.write_string(1, &v)?;
        }
        for v in &self.value {
            os.write_string(2, &v)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> GameSearchParam {
        GameSearchParam::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "key_name",
                |m: &GameSearchParam| { &m.key_name },
                |m: &mut GameSearchParam| { &mut m.key_name },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "value",
                |m: &GameSearchParam| { &m.value },
                |m: &mut GameSearchParam| { &mut m.value },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<GameSearchParam>(
                "GameSearchParam",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static GameSearchParam {
        static instance: ::protobuf::rt::LazyV2<GameSearchParam> = ::protobuf::rt::LazyV2::INIT;
        instance.get(GameSearchParam::new)
    }
}

impl ::protobuf::Clear for GameSearchParam {
    fn clear(&mut self) {
        self.key_name.clear();
        self.value.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for GameSearchParam {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for GameSearchParam {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CQueuedMatchmaking_SearchForGame_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    action: ::std::option::Option<EGameSearchAction>,
    pub params: ::protobuf::RepeatedField<GameSearchParam>,
    player_min: ::std::option::Option<u32>,
    player_max: ::std::option::Option<u32>,
    steamidlobby: ::std::option::Option<u64>,
    searchid: ::std::option::Option<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CQueuedMatchmaking_SearchForGame_Request {
    fn default() -> &'a CQueuedMatchmaking_SearchForGame_Request {
        <CQueuedMatchmaking_SearchForGame_Request as ::protobuf::Message>::default_instance()
    }
}

impl CQueuedMatchmaking_SearchForGame_Request {
    pub fn new() -> CQueuedMatchmaking_SearchForGame_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional .EGameSearchAction action = 2;


    pub fn get_action(&self) -> EGameSearchAction {
        self.action.unwrap_or(EGameSearchAction::k_EGameSearchAction_None)
    }
    pub fn clear_action(&mut self) {
        self.action = ::std::option::Option::None;
    }

    pub fn has_action(&self) -> bool {
        self.action.is_some()
    }

    // Param is passed by value, moved
    pub fn set_action(&mut self, v: EGameSearchAction) {
        self.action = ::std::option::Option::Some(v);
    }

    // repeated .GameSearchParam params = 3;


    pub fn get_params(&self) -> &[GameSearchParam] {
        &self.params
    }
    pub fn clear_params(&mut self) {
        self.params.clear();
    }

    // Param is passed by value, moved
    pub fn set_params(&mut self, v: ::protobuf::RepeatedField<GameSearchParam>) {
        self.params = v;
    }

    // Mutable pointer to the field.
    pub fn mut_params(&mut self) -> &mut ::protobuf::RepeatedField<GameSearchParam> {
        &mut self.params
    }

    // Take field
    pub fn take_params(&mut self) -> ::protobuf::RepeatedField<GameSearchParam> {
        ::std::mem::replace(&mut self.params, ::protobuf::RepeatedField::new())
    }

    // optional uint32 player_min = 4;


    pub fn get_player_min(&self) -> u32 {
        self.player_min.unwrap_or(0)
    }
    pub fn clear_player_min(&mut self) {
        self.player_min = ::std::option::Option::None;
    }

    pub fn has_player_min(&self) -> bool {
        self.player_min.is_some()
    }

    // Param is passed by value, moved
    pub fn set_player_min(&mut self, v: u32) {
        self.player_min = ::std::option::Option::Some(v);
    }

    // optional uint32 player_max = 5;


    pub fn get_player_max(&self) -> u32 {
        self.player_max.unwrap_or(0)
    }
    pub fn clear_player_max(&mut self) {
        self.player_max = ::std::option::Option::None;
    }

    pub fn has_player_max(&self) -> bool {
        self.player_max.is_some()
    }

    // Param is passed by value, moved
    pub fn set_player_max(&mut self, v: u32) {
        self.player_max = ::std::option::Option::Some(v);
    }

    // optional fixed64 steamidlobby = 6;


    pub fn get_steamidlobby(&self) -> u64 {
        self.steamidlobby.unwrap_or(0)
    }
    pub fn clear_steamidlobby(&mut self) {
        self.steamidlobby = ::std::option::Option::None;
    }

    pub fn has_steamidlobby(&self) -> bool {
        self.steamidlobby.is_some()
    }

    // Param is passed by value, moved
    pub fn set_steamidlobby(&mut self, v: u64) {
        self.steamidlobby = ::std::option::Option::Some(v);
    }

    // optional uint64 searchid = 7;


    pub fn get_searchid(&self) -> u64 {
        self.searchid.unwrap_or(0)
    }
    pub fn clear_searchid(&mut self) {
        self.searchid = ::std::option::Option::None;
    }

    pub fn has_searchid(&self) -> bool {
        self.searchid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_searchid(&mut self, v: u64) {
        self.searchid = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CQueuedMatchmaking_SearchForGame_Request {
    fn is_initialized(&self) -> bool {
        for v in &self.params {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.action, 2, &mut self.unknown_fields)?
                },
                3 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.params)?;
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.player_min = ::std::option::Option::Some(tmp);
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.player_max = ::std::option::Option::Some(tmp);
                },
                6 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.steamidlobby = ::std::option::Option::Some(tmp);
                },
                7 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.searchid = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.action {
            my_size += ::protobuf::rt::enum_size(2, v);
        }
        for value in &self.params {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        if let Some(v) = self.player_min {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.player_max {
            my_size += ::protobuf::rt::value_size(5, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.steamidlobby {
            my_size += 9;
        }
        if let Some(v) = self.searchid {
            my_size += ::protobuf::rt::value_size(7, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.action {
            os.write_enum(2, ::protobuf::ProtobufEnum::value(&v))?;
        }
        for v in &self.params {
            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        if let Some(v) = self.player_min {
            os.write_uint32(4, v)?;
        }
        if let Some(v) = self.player_max {
            os.write_uint32(5, v)?;
        }
        if let Some(v) = self.steamidlobby {
            os.write_fixed64(6, v)?;
        }
        if let Some(v) = self.searchid {
            os.write_uint64(7, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CQueuedMatchmaking_SearchForGame_Request {
        CQueuedMatchmaking_SearchForGame_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CQueuedMatchmaking_SearchForGame_Request| { &m.appid },
                |m: &mut CQueuedMatchmaking_SearchForGame_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EGameSearchAction>>(
                "action",
                |m: &CQueuedMatchmaking_SearchForGame_Request| { &m.action },
                |m: &mut CQueuedMatchmaking_SearchForGame_Request| { &mut m.action },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<GameSearchParam>>(
                "params",
                |m: &CQueuedMatchmaking_SearchForGame_Request| { &m.params },
                |m: &mut CQueuedMatchmaking_SearchForGame_Request| { &mut m.params },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "player_min",
                |m: &CQueuedMatchmaking_SearchForGame_Request| { &m.player_min },
                |m: &mut CQueuedMatchmaking_SearchForGame_Request| { &mut m.player_min },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "player_max",
                |m: &CQueuedMatchmaking_SearchForGame_Request| { &m.player_max },
                |m: &mut CQueuedMatchmaking_SearchForGame_Request| { &mut m.player_max },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "steamidlobby",
                |m: &CQueuedMatchmaking_SearchForGame_Request| { &m.steamidlobby },
                |m: &mut CQueuedMatchmaking_SearchForGame_Request| { &mut m.steamidlobby },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "searchid",
                |m: &CQueuedMatchmaking_SearchForGame_Request| { &m.searchid },
                |m: &mut CQueuedMatchmaking_SearchForGame_Request| { &mut m.searchid },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CQueuedMatchmaking_SearchForGame_Request>(
                "CQueuedMatchmaking_SearchForGame_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CQueuedMatchmaking_SearchForGame_Request {
        static instance: ::protobuf::rt::LazyV2<CQueuedMatchmaking_SearchForGame_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CQueuedMatchmaking_SearchForGame_Request::new)
    }
}

impl ::protobuf::Clear for CQueuedMatchmaking_SearchForGame_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.action = ::std::option::Option::None;
        self.params.clear();
        self.player_min = ::std::option::Option::None;
        self.player_max = ::std::option::Option::None;
        self.steamidlobby = ::std::option::Option::None;
        self.searchid = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CQueuedMatchmaking_SearchForGame_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CQueuedMatchmaking_SearchForGame_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CQueuedMatchmaking_SearchForGame_Response {
    // message fields
    gamesearchresult: ::std::option::Option<EGameSearchResult>,
    searchid: ::std::option::Option<u64>,
    seconds_time_estimate: ::std::option::Option<u32>,
    poll_frequency: ::std::option::Option<u32>,
    count_searching: ::std::option::Option<u32>,
    players_in_match: ::std::option::Option<u32>,
    players_accepted: ::std::option::Option<u32>,
    connect_string: ::protobuf::SingularField<::std::string::String>,
    steamidhost: ::std::option::Option<u64>,
    rtime_match_made: ::std::option::Option<u32>,
    rtime_now: ::std::option::Option<u32>,
    steamid_canceled_search: ::std::option::Option<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CQueuedMatchmaking_SearchForGame_Response {
    fn default() -> &'a CQueuedMatchmaking_SearchForGame_Response {
        <CQueuedMatchmaking_SearchForGame_Response as ::protobuf::Message>::default_instance()
    }
}

impl CQueuedMatchmaking_SearchForGame_Response {
    pub fn new() -> CQueuedMatchmaking_SearchForGame_Response {
        ::std::default::Default::default()
    }

    // optional .EGameSearchResult gamesearchresult = 1;


    pub fn get_gamesearchresult(&self) -> EGameSearchResult {
        self.gamesearchresult.unwrap_or(EGameSearchResult::k_EGameSearchResult_Invalid)
    }
    pub fn clear_gamesearchresult(&mut self) {
        self.gamesearchresult = ::std::option::Option::None;
    }

    pub fn has_gamesearchresult(&self) -> bool {
        self.gamesearchresult.is_some()
    }

    // Param is passed by value, moved
    pub fn set_gamesearchresult(&mut self, v: EGameSearchResult) {
        self.gamesearchresult = ::std::option::Option::Some(v);
    }

    // optional uint64 searchid = 2;


    pub fn get_searchid(&self) -> u64 {
        self.searchid.unwrap_or(0)
    }
    pub fn clear_searchid(&mut self) {
        self.searchid = ::std::option::Option::None;
    }

    pub fn has_searchid(&self) -> bool {
        self.searchid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_searchid(&mut self, v: u64) {
        self.searchid = ::std::option::Option::Some(v);
    }

    // optional uint32 seconds_time_estimate = 3;


    pub fn get_seconds_time_estimate(&self) -> u32 {
        self.seconds_time_estimate.unwrap_or(0)
    }
    pub fn clear_seconds_time_estimate(&mut self) {
        self.seconds_time_estimate = ::std::option::Option::None;
    }

    pub fn has_seconds_time_estimate(&self) -> bool {
        self.seconds_time_estimate.is_some()
    }

    // Param is passed by value, moved
    pub fn set_seconds_time_estimate(&mut self, v: u32) {
        self.seconds_time_estimate = ::std::option::Option::Some(v);
    }

    // optional uint32 poll_frequency = 4;


    pub fn get_poll_frequency(&self) -> u32 {
        self.poll_frequency.unwrap_or(0)
    }
    pub fn clear_poll_frequency(&mut self) {
        self.poll_frequency = ::std::option::Option::None;
    }

    pub fn has_poll_frequency(&self) -> bool {
        self.poll_frequency.is_some()
    }

    // Param is passed by value, moved
    pub fn set_poll_frequency(&mut self, v: u32) {
        self.poll_frequency = ::std::option::Option::Some(v);
    }

    // optional uint32 count_searching = 5;


    pub fn get_count_searching(&self) -> u32 {
        self.count_searching.unwrap_or(0)
    }
    pub fn clear_count_searching(&mut self) {
        self.count_searching = ::std::option::Option::None;
    }

    pub fn has_count_searching(&self) -> bool {
        self.count_searching.is_some()
    }

    // Param is passed by value, moved
    pub fn set_count_searching(&mut self, v: u32) {
        self.count_searching = ::std::option::Option::Some(v);
    }

    // optional uint32 players_in_match = 6;


    pub fn get_players_in_match(&self) -> u32 {
        self.players_in_match.unwrap_or(0)
    }
    pub fn clear_players_in_match(&mut self) {
        self.players_in_match = ::std::option::Option::None;
    }

    pub fn has_players_in_match(&self) -> bool {
        self.players_in_match.is_some()
    }

    // Param is passed by value, moved
    pub fn set_players_in_match(&mut self, v: u32) {
        self.players_in_match = ::std::option::Option::Some(v);
    }

    // optional uint32 players_accepted = 7;


    pub fn get_players_accepted(&self) -> u32 {
        self.players_accepted.unwrap_or(0)
    }
    pub fn clear_players_accepted(&mut self) {
        self.players_accepted = ::std::option::Option::None;
    }

    pub fn has_players_accepted(&self) -> bool {
        self.players_accepted.is_some()
    }

    // Param is passed by value, moved
    pub fn set_players_accepted(&mut self, v: u32) {
        self.players_accepted = ::std::option::Option::Some(v);
    }

    // optional string connect_string = 9;


    pub fn get_connect_string(&self) -> &str {
        match self.connect_string.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_connect_string(&mut self) {
        self.connect_string.clear();
    }

    pub fn has_connect_string(&self) -> bool {
        self.connect_string.is_some()
    }

    // Param is passed by value, moved
    pub fn set_connect_string(&mut self, v: ::std::string::String) {
        self.connect_string = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_connect_string(&mut self) -> &mut ::std::string::String {
        if self.connect_string.is_none() {
            self.connect_string.set_default();
        }
        self.connect_string.as_mut().unwrap()
    }

    // Take field
    pub fn take_connect_string(&mut self) -> ::std::string::String {
        self.connect_string.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional fixed64 steamidhost = 10;


    pub fn get_steamidhost(&self) -> u64 {
        self.steamidhost.unwrap_or(0)
    }
    pub fn clear_steamidhost(&mut self) {
        self.steamidhost = ::std::option::Option::None;
    }

    pub fn has_steamidhost(&self) -> bool {
        self.steamidhost.is_some()
    }

    // Param is passed by value, moved
    pub fn set_steamidhost(&mut self, v: u64) {
        self.steamidhost = ::std::option::Option::Some(v);
    }

    // optional uint32 rtime_match_made = 11;


    pub fn get_rtime_match_made(&self) -> u32 {
        self.rtime_match_made.unwrap_or(0)
    }
    pub fn clear_rtime_match_made(&mut self) {
        self.rtime_match_made = ::std::option::Option::None;
    }

    pub fn has_rtime_match_made(&self) -> bool {
        self.rtime_match_made.is_some()
    }

    // Param is passed by value, moved
    pub fn set_rtime_match_made(&mut self, v: u32) {
        self.rtime_match_made = ::std::option::Option::Some(v);
    }

    // optional uint32 rtime_now = 12;


    pub fn get_rtime_now(&self) -> u32 {
        self.rtime_now.unwrap_or(0)
    }
    pub fn clear_rtime_now(&mut self) {
        self.rtime_now = ::std::option::Option::None;
    }

    pub fn has_rtime_now(&self) -> bool {
        self.rtime_now.is_some()
    }

    // Param is passed by value, moved
    pub fn set_rtime_now(&mut self, v: u32) {
        self.rtime_now = ::std::option::Option::Some(v);
    }

    // optional fixed64 steamid_canceled_search = 13;


    pub fn get_steamid_canceled_search(&self) -> u64 {
        self.steamid_canceled_search.unwrap_or(0)
    }
    pub fn clear_steamid_canceled_search(&mut self) {
        self.steamid_canceled_search = ::std::option::Option::None;
    }

    pub fn has_steamid_canceled_search(&self) -> bool {
        self.steamid_canceled_search.is_some()
    }

    // Param is passed by value, moved
    pub fn set_steamid_canceled_search(&mut self, v: u64) {
        self.steamid_canceled_search = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CQueuedMatchmaking_SearchForGame_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.gamesearchresult, 1, &mut self.unknown_fields)?
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.searchid = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.seconds_time_estimate = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.poll_frequency = ::std::option::Option::Some(tmp);
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.count_searching = ::std::option::Option::Some(tmp);
                },
                6 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.players_in_match = ::std::option::Option::Some(tmp);
                },
                7 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.players_accepted = ::std::option::Option::Some(tmp);
                },
                9 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.connect_string)?;
                },
                10 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.steamidhost = ::std::option::Option::Some(tmp);
                },
                11 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.rtime_match_made = ::std::option::Option::Some(tmp);
                },
                12 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.rtime_now = ::std::option::Option::Some(tmp);
                },
                13 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.steamid_canceled_search = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.gamesearchresult {
            my_size += ::protobuf::rt::enum_size(1, v);
        }
        if let Some(v) = self.searchid {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.seconds_time_estimate {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.poll_frequency {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.count_searching {
            my_size += ::protobuf::rt::value_size(5, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.players_in_match {
            my_size += ::protobuf::rt::value_size(6, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.players_accepted {
            my_size += ::protobuf::rt::value_size(7, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.connect_string.as_ref() {
            my_size += ::protobuf::rt::string_size(9, &v);
        }
        if let Some(v) = self.steamidhost {
            my_size += 9;
        }
        if let Some(v) = self.rtime_match_made {
            my_size += ::protobuf::rt::value_size(11, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.rtime_now {
            my_size += ::protobuf::rt::value_size(12, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.steamid_canceled_search {
            my_size += 9;
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.gamesearchresult {
            os.write_enum(1, ::protobuf::ProtobufEnum::value(&v))?;
        }
        if let Some(v) = self.searchid {
            os.write_uint64(2, v)?;
        }
        if let Some(v) = self.seconds_time_estimate {
            os.write_uint32(3, v)?;
        }
        if let Some(v) = self.poll_frequency {
            os.write_uint32(4, v)?;
        }
        if let Some(v) = self.count_searching {
            os.write_uint32(5, v)?;
        }
        if let Some(v) = self.players_in_match {
            os.write_uint32(6, v)?;
        }
        if let Some(v) = self.players_accepted {
            os.write_uint32(7, v)?;
        }
        if let Some(ref v) = self.connect_string.as_ref() {
            os.write_string(9, &v)?;
        }
        if let Some(v) = self.steamidhost {
            os.write_fixed64(10, v)?;
        }
        if let Some(v) = self.rtime_match_made {
            os.write_uint32(11, v)?;
        }
        if let Some(v) = self.rtime_now {
            os.write_uint32(12, v)?;
        }
        if let Some(v) = self.steamid_canceled_search {
            os.write_fixed64(13, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CQueuedMatchmaking_SearchForGame_Response {
        CQueuedMatchmaking_SearchForGame_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EGameSearchResult>>(
                "gamesearchresult",
                |m: &CQueuedMatchmaking_SearchForGame_Response| { &m.gamesearchresult },
                |m: &mut CQueuedMatchmaking_SearchForGame_Response| { &mut m.gamesearchresult },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "searchid",
                |m: &CQueuedMatchmaking_SearchForGame_Response| { &m.searchid },
                |m: &mut CQueuedMatchmaking_SearchForGame_Response| { &mut m.searchid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "seconds_time_estimate",
                |m: &CQueuedMatchmaking_SearchForGame_Response| { &m.seconds_time_estimate },
                |m: &mut CQueuedMatchmaking_SearchForGame_Response| { &mut m.seconds_time_estimate },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "poll_frequency",
                |m: &CQueuedMatchmaking_SearchForGame_Response| { &m.poll_frequency },
                |m: &mut CQueuedMatchmaking_SearchForGame_Response| { &mut m.poll_frequency },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "count_searching",
                |m: &CQueuedMatchmaking_SearchForGame_Response| { &m.count_searching },
                |m: &mut CQueuedMatchmaking_SearchForGame_Response| { &mut m.count_searching },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "players_in_match",
                |m: &CQueuedMatchmaking_SearchForGame_Response| { &m.players_in_match },
                |m: &mut CQueuedMatchmaking_SearchForGame_Response| { &mut m.players_in_match },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "players_accepted",
                |m: &CQueuedMatchmaking_SearchForGame_Response| { &m.players_accepted },
                |m: &mut CQueuedMatchmaking_SearchForGame_Response| { &mut m.players_accepted },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "connect_string",
                |m: &CQueuedMatchmaking_SearchForGame_Response| { &m.connect_string },
                |m: &mut CQueuedMatchmaking_SearchForGame_Response| { &mut m.connect_string },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "steamidhost",
                |m: &CQueuedMatchmaking_SearchForGame_Response| { &m.steamidhost },
                |m: &mut CQueuedMatchmaking_SearchForGame_Response| { &mut m.steamidhost },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "rtime_match_made",
                |m: &CQueuedMatchmaking_SearchForGame_Response| { &m.rtime_match_made },
                |m: &mut CQueuedMatchmaking_SearchForGame_Response| { &mut m.rtime_match_made },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "rtime_now",
                |m: &CQueuedMatchmaking_SearchForGame_Response| { &m.rtime_now },
                |m: &mut CQueuedMatchmaking_SearchForGame_Response| { &mut m.rtime_now },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "steamid_canceled_search",
                |m: &CQueuedMatchmaking_SearchForGame_Response| { &m.steamid_canceled_search },
                |m: &mut CQueuedMatchmaking_SearchForGame_Response| { &mut m.steamid_canceled_search },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CQueuedMatchmaking_SearchForGame_Response>(
                "CQueuedMatchmaking_SearchForGame_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CQueuedMatchmaking_SearchForGame_Response {
        static instance: ::protobuf::rt::LazyV2<CQueuedMatchmaking_SearchForGame_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CQueuedMatchmaking_SearchForGame_Response::new)
    }
}

impl ::protobuf::Clear for CQueuedMatchmaking_SearchForGame_Response {
    fn clear(&mut self) {
        self.gamesearchresult = ::std::option::Option::None;
        self.searchid = ::std::option::Option::None;
        self.seconds_time_estimate = ::std::option::Option::None;
        self.poll_frequency = ::std::option::Option::None;
        self.count_searching = ::std::option::Option::None;
        self.players_in_match = ::std::option::Option::None;
        self.players_accepted = ::std::option::Option::None;
        self.connect_string.clear();
        self.steamidhost = ::std::option::Option::None;
        self.rtime_match_made = ::std::option::Option::None;
        self.rtime_now = ::std::option::Option::None;
        self.steamid_canceled_search = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CQueuedMatchmaking_SearchForGame_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CQueuedMatchmaking_SearchForGame_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CQueuedMatchmakingGameHost_SearchForPlayers_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    action: ::std::option::Option<EGameSearchAction>,
    pub params: ::protobuf::RepeatedField<GameSearchParam>,
    player_min: ::std::option::Option<u32>,
    player_max: ::std::option::Option<u32>,
    player_max_team_size: ::std::option::Option<u32>,
    connection_string: ::protobuf::SingularField<::std::string::String>,
    searchid: ::std::option::Option<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CQueuedMatchmakingGameHost_SearchForPlayers_Request {
    fn default() -> &'a CQueuedMatchmakingGameHost_SearchForPlayers_Request {
        <CQueuedMatchmakingGameHost_SearchForPlayers_Request as ::protobuf::Message>::default_instance()
    }
}

impl CQueuedMatchmakingGameHost_SearchForPlayers_Request {
    pub fn new() -> CQueuedMatchmakingGameHost_SearchForPlayers_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional .EGameSearchAction action = 2;


    pub fn get_action(&self) -> EGameSearchAction {
        self.action.unwrap_or(EGameSearchAction::k_EGameSearchAction_None)
    }
    pub fn clear_action(&mut self) {
        self.action = ::std::option::Option::None;
    }

    pub fn has_action(&self) -> bool {
        self.action.is_some()
    }

    // Param is passed by value, moved
    pub fn set_action(&mut self, v: EGameSearchAction) {
        self.action = ::std::option::Option::Some(v);
    }

    // repeated .GameSearchParam params = 3;


    pub fn get_params(&self) -> &[GameSearchParam] {
        &self.params
    }
    pub fn clear_params(&mut self) {
        self.params.clear();
    }

    // Param is passed by value, moved
    pub fn set_params(&mut self, v: ::protobuf::RepeatedField<GameSearchParam>) {
        self.params = v;
    }

    // Mutable pointer to the field.
    pub fn mut_params(&mut self) -> &mut ::protobuf::RepeatedField<GameSearchParam> {
        &mut self.params
    }

    // Take field
    pub fn take_params(&mut self) -> ::protobuf::RepeatedField<GameSearchParam> {
        ::std::mem::replace(&mut self.params, ::protobuf::RepeatedField::new())
    }

    // optional uint32 player_min = 4;


    pub fn get_player_min(&self) -> u32 {
        self.player_min.unwrap_or(0)
    }
    pub fn clear_player_min(&mut self) {
        self.player_min = ::std::option::Option::None;
    }

    pub fn has_player_min(&self) -> bool {
        self.player_min.is_some()
    }

    // Param is passed by value, moved
    pub fn set_player_min(&mut self, v: u32) {
        self.player_min = ::std::option::Option::Some(v);
    }

    // optional uint32 player_max = 5;


    pub fn get_player_max(&self) -> u32 {
        self.player_max.unwrap_or(0)
    }
    pub fn clear_player_max(&mut self) {
        self.player_max = ::std::option::Option::None;
    }

    pub fn has_player_max(&self) -> bool {
        self.player_max.is_some()
    }

    // Param is passed by value, moved
    pub fn set_player_max(&mut self, v: u32) {
        self.player_max = ::std::option::Option::Some(v);
    }

    // optional uint32 player_max_team_size = 6;


    pub fn get_player_max_team_size(&self) -> u32 {
        self.player_max_team_size.unwrap_or(0)
    }
    pub fn clear_player_max_team_size(&mut self) {
        self.player_max_team_size = ::std::option::Option::None;
    }

    pub fn has_player_max_team_size(&self) -> bool {
        self.player_max_team_size.is_some()
    }

    // Param is passed by value, moved
    pub fn set_player_max_team_size(&mut self, v: u32) {
        self.player_max_team_size = ::std::option::Option::Some(v);
    }

    // optional string connection_string = 7;


    pub fn get_connection_string(&self) -> &str {
        match self.connection_string.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_connection_string(&mut self) {
        self.connection_string.clear();
    }

    pub fn has_connection_string(&self) -> bool {
        self.connection_string.is_some()
    }

    // Param is passed by value, moved
    pub fn set_connection_string(&mut self, v: ::std::string::String) {
        self.connection_string = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_connection_string(&mut self) -> &mut ::std::string::String {
        if self.connection_string.is_none() {
            self.connection_string.set_default();
        }
        self.connection_string.as_mut().unwrap()
    }

    // Take field
    pub fn take_connection_string(&mut self) -> ::std::string::String {
        self.connection_string.take().unwrap_or_else(|| ::std::string::String::new())
    }

    // optional uint64 searchid = 8;


    pub fn get_searchid(&self) -> u64 {
        self.searchid.unwrap_or(0)
    }
    pub fn clear_searchid(&mut self) {
        self.searchid = ::std::option::Option::None;
    }

    pub fn has_searchid(&self) -> bool {
        self.searchid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_searchid(&mut self, v: u64) {
        self.searchid = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CQueuedMatchmakingGameHost_SearchForPlayers_Request {
    fn is_initialized(&self) -> bool {
        for v in &self.params {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.action, 2, &mut self.unknown_fields)?
                },
                3 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.params)?;
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.player_min = ::std::option::Option::Some(tmp);
                },
                5 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.player_max = ::std::option::Option::Some(tmp);
                },
                6 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.player_max_team_size = ::std::option::Option::Some(tmp);
                },
                7 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.connection_string)?;
                },
                8 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.searchid = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.action {
            my_size += ::protobuf::rt::enum_size(2, v);
        }
        for value in &self.params {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        if let Some(v) = self.player_min {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.player_max {
            my_size += ::protobuf::rt::value_size(5, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.player_max_team_size {
            my_size += ::protobuf::rt::value_size(6, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(ref v) = self.connection_string.as_ref() {
            my_size += ::protobuf::rt::string_size(7, &v);
        }
        if let Some(v) = self.searchid {
            my_size += ::protobuf::rt::value_size(8, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.action {
            os.write_enum(2, ::protobuf::ProtobufEnum::value(&v))?;
        }
        for v in &self.params {
            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        if let Some(v) = self.player_min {
            os.write_uint32(4, v)?;
        }
        if let Some(v) = self.player_max {
            os.write_uint32(5, v)?;
        }
        if let Some(v) = self.player_max_team_size {
            os.write_uint32(6, v)?;
        }
        if let Some(ref v) = self.connection_string.as_ref() {
            os.write_string(7, &v)?;
        }
        if let Some(v) = self.searchid {
            os.write_uint64(8, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CQueuedMatchmakingGameHost_SearchForPlayers_Request {
        CQueuedMatchmakingGameHost_SearchForPlayers_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &m.appid },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EGameSearchAction>>(
                "action",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &m.action },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &mut m.action },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<GameSearchParam>>(
                "params",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &m.params },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &mut m.params },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "player_min",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &m.player_min },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &mut m.player_min },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "player_max",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &m.player_max },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &mut m.player_max },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "player_max_team_size",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &m.player_max_team_size },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &mut m.player_max_team_size },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "connection_string",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &m.connection_string },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &mut m.connection_string },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "searchid",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &m.searchid },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Request| { &mut m.searchid },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CQueuedMatchmakingGameHost_SearchForPlayers_Request>(
                "CQueuedMatchmakingGameHost_SearchForPlayers_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CQueuedMatchmakingGameHost_SearchForPlayers_Request {
        static instance: ::protobuf::rt::LazyV2<CQueuedMatchmakingGameHost_SearchForPlayers_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CQueuedMatchmakingGameHost_SearchForPlayers_Request::new)
    }
}

impl ::protobuf::Clear for CQueuedMatchmakingGameHost_SearchForPlayers_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.action = ::std::option::Option::None;
        self.params.clear();
        self.player_min = ::std::option::Option::None;
        self.player_max = ::std::option::Option::None;
        self.player_max_team_size = ::std::option::Option::None;
        self.connection_string.clear();
        self.searchid = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CQueuedMatchmakingGameHost_SearchForPlayers_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CQueuedMatchmakingGameHost_SearchForPlayers_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct PlayerFound {
    // message fields
    steamid: ::std::option::Option<u64>,
    action: ::std::option::Option<EGameSearchAction>,
    pub params: ::protobuf::RepeatedField<GameSearchParam>,
    team_number: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a PlayerFound {
    fn default() -> &'a PlayerFound {
        <PlayerFound as ::protobuf::Message>::default_instance()
    }
}

impl PlayerFound {
    pub fn new() -> PlayerFound {
        ::std::default::Default::default()
    }

    // optional fixed64 steamid = 1;


    pub fn get_steamid(&self) -> u64 {
        self.steamid.unwrap_or(0)
    }
    pub fn clear_steamid(&mut self) {
        self.steamid = ::std::option::Option::None;
    }

    pub fn has_steamid(&self) -> bool {
        self.steamid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_steamid(&mut self, v: u64) {
        self.steamid = ::std::option::Option::Some(v);
    }

    // optional .EGameSearchAction action = 2;


    pub fn get_action(&self) -> EGameSearchAction {
        self.action.unwrap_or(EGameSearchAction::k_EGameSearchAction_None)
    }
    pub fn clear_action(&mut self) {
        self.action = ::std::option::Option::None;
    }

    pub fn has_action(&self) -> bool {
        self.action.is_some()
    }

    // Param is passed by value, moved
    pub fn set_action(&mut self, v: EGameSearchAction) {
        self.action = ::std::option::Option::Some(v);
    }

    // repeated .GameSearchParam params = 3;


    pub fn get_params(&self) -> &[GameSearchParam] {
        &self.params
    }
    pub fn clear_params(&mut self) {
        self.params.clear();
    }

    // Param is passed by value, moved
    pub fn set_params(&mut self, v: ::protobuf::RepeatedField<GameSearchParam>) {
        self.params = v;
    }

    // Mutable pointer to the field.
    pub fn mut_params(&mut self) -> &mut ::protobuf::RepeatedField<GameSearchParam> {
        &mut self.params
    }

    // Take field
    pub fn take_params(&mut self) -> ::protobuf::RepeatedField<GameSearchParam> {
        ::std::mem::replace(&mut self.params, ::protobuf::RepeatedField::new())
    }

    // optional uint32 team_number = 4;


    pub fn get_team_number(&self) -> u32 {
        self.team_number.unwrap_or(0)
    }
    pub fn clear_team_number(&mut self) {
        self.team_number = ::std::option::Option::None;
    }

    pub fn has_team_number(&self) -> bool {
        self.team_number.is_some()
    }

    // Param is passed by value, moved
    pub fn set_team_number(&mut self, v: u32) {
        self.team_number = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for PlayerFound {
    fn is_initialized(&self) -> bool {
        for v in &self.params {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.steamid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.action, 2, &mut self.unknown_fields)?
                },
                3 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.params)?;
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.team_number = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.steamid {
            my_size += 9;
        }
        if let Some(v) = self.action {
            my_size += ::protobuf::rt::enum_size(2, v);
        }
        for value in &self.params {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        if let Some(v) = self.team_number {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.steamid {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.action {
            os.write_enum(2, ::protobuf::ProtobufEnum::value(&v))?;
        }
        for v in &self.params {
            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        if let Some(v) = self.team_number {
            os.write_uint32(4, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> PlayerFound {
        PlayerFound::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "steamid",
                |m: &PlayerFound| { &m.steamid },
                |m: &mut PlayerFound| { &mut m.steamid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EGameSearchAction>>(
                "action",
                |m: &PlayerFound| { &m.action },
                |m: &mut PlayerFound| { &mut m.action },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<GameSearchParam>>(
                "params",
                |m: &PlayerFound| { &m.params },
                |m: &mut PlayerFound| { &mut m.params },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "team_number",
                |m: &PlayerFound| { &m.team_number },
                |m: &mut PlayerFound| { &mut m.team_number },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<PlayerFound>(
                "PlayerFound",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static PlayerFound {
        static instance: ::protobuf::rt::LazyV2<PlayerFound> = ::protobuf::rt::LazyV2::INIT;
        instance.get(PlayerFound::new)
    }
}

impl ::protobuf::Clear for PlayerFound {
    fn clear(&mut self) {
        self.steamid = ::std::option::Option::None;
        self.action = ::std::option::Option::None;
        self.params.clear();
        self.team_number = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for PlayerFound {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for PlayerFound {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CQueuedMatchmakingGameHost_SearchForPlayers_Response {
    // message fields
    gamesearchresult: ::std::option::Option<EGameSearchResult>,
    searchid: ::std::option::Option<u64>,
    poll_frequency: ::std::option::Option<u32>,
    matchid: ::std::option::Option<u64>,
    pub players: ::protobuf::RepeatedField<PlayerFound>,
    rtime_match_made: ::std::option::Option<u32>,
    rtime_now: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CQueuedMatchmakingGameHost_SearchForPlayers_Response {
    fn default() -> &'a CQueuedMatchmakingGameHost_SearchForPlayers_Response {
        <CQueuedMatchmakingGameHost_SearchForPlayers_Response as ::protobuf::Message>::default_instance()
    }
}

impl CQueuedMatchmakingGameHost_SearchForPlayers_Response {
    pub fn new() -> CQueuedMatchmakingGameHost_SearchForPlayers_Response {
        ::std::default::Default::default()
    }

    // optional .EGameSearchResult gamesearchresult = 1;


    pub fn get_gamesearchresult(&self) -> EGameSearchResult {
        self.gamesearchresult.unwrap_or(EGameSearchResult::k_EGameSearchResult_Invalid)
    }
    pub fn clear_gamesearchresult(&mut self) {
        self.gamesearchresult = ::std::option::Option::None;
    }

    pub fn has_gamesearchresult(&self) -> bool {
        self.gamesearchresult.is_some()
    }

    // Param is passed by value, moved
    pub fn set_gamesearchresult(&mut self, v: EGameSearchResult) {
        self.gamesearchresult = ::std::option::Option::Some(v);
    }

    // optional uint64 searchid = 2;


    pub fn get_searchid(&self) -> u64 {
        self.searchid.unwrap_or(0)
    }
    pub fn clear_searchid(&mut self) {
        self.searchid = ::std::option::Option::None;
    }

    pub fn has_searchid(&self) -> bool {
        self.searchid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_searchid(&mut self, v: u64) {
        self.searchid = ::std::option::Option::Some(v);
    }

    // optional uint32 poll_frequency = 3;


    pub fn get_poll_frequency(&self) -> u32 {
        self.poll_frequency.unwrap_or(0)
    }
    pub fn clear_poll_frequency(&mut self) {
        self.poll_frequency = ::std::option::Option::None;
    }

    pub fn has_poll_frequency(&self) -> bool {
        self.poll_frequency.is_some()
    }

    // Param is passed by value, moved
    pub fn set_poll_frequency(&mut self, v: u32) {
        self.poll_frequency = ::std::option::Option::Some(v);
    }

    // optional uint64 matchid = 4;


    pub fn get_matchid(&self) -> u64 {
        self.matchid.unwrap_or(0)
    }
    pub fn clear_matchid(&mut self) {
        self.matchid = ::std::option::Option::None;
    }

    pub fn has_matchid(&self) -> bool {
        self.matchid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_matchid(&mut self, v: u64) {
        self.matchid = ::std::option::Option::Some(v);
    }

    // repeated .PlayerFound players = 5;


    pub fn get_players(&self) -> &[PlayerFound] {
        &self.players
    }
    pub fn clear_players(&mut self) {
        self.players.clear();
    }

    // Param is passed by value, moved
    pub fn set_players(&mut self, v: ::protobuf::RepeatedField<PlayerFound>) {
        self.players = v;
    }

    // Mutable pointer to the field.
    pub fn mut_players(&mut self) -> &mut ::protobuf::RepeatedField<PlayerFound> {
        &mut self.players
    }

    // Take field
    pub fn take_players(&mut self) -> ::protobuf::RepeatedField<PlayerFound> {
        ::std::mem::replace(&mut self.players, ::protobuf::RepeatedField::new())
    }

    // optional uint32 rtime_match_made = 6;


    pub fn get_rtime_match_made(&self) -> u32 {
        self.rtime_match_made.unwrap_or(0)
    }
    pub fn clear_rtime_match_made(&mut self) {
        self.rtime_match_made = ::std::option::Option::None;
    }

    pub fn has_rtime_match_made(&self) -> bool {
        self.rtime_match_made.is_some()
    }

    // Param is passed by value, moved
    pub fn set_rtime_match_made(&mut self, v: u32) {
        self.rtime_match_made = ::std::option::Option::Some(v);
    }

    // optional uint32 rtime_now = 7;


    pub fn get_rtime_now(&self) -> u32 {
        self.rtime_now.unwrap_or(0)
    }
    pub fn clear_rtime_now(&mut self) {
        self.rtime_now = ::std::option::Option::None;
    }

    pub fn has_rtime_now(&self) -> bool {
        self.rtime_now.is_some()
    }

    // Param is passed by value, moved
    pub fn set_rtime_now(&mut self, v: u32) {
        self.rtime_now = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CQueuedMatchmakingGameHost_SearchForPlayers_Response {
    fn is_initialized(&self) -> bool {
        for v in &self.players {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    ::protobuf::rt::read_proto2_enum_with_unknown_fields_into(wire_type, is, &mut self.gamesearchresult, 1, &mut self.unknown_fields)?
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.searchid = ::std::option::Option::Some(tmp);
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.poll_frequency = ::std::option::Option::Some(tmp);
                },
                4 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.matchid = ::std::option::Option::Some(tmp);
                },
                5 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.players)?;
                },
                6 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.rtime_match_made = ::std::option::Option::Some(tmp);
                },
                7 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.rtime_now = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.gamesearchresult {
            my_size += ::protobuf::rt::enum_size(1, v);
        }
        if let Some(v) = self.searchid {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.poll_frequency {
            my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.matchid {
            my_size += ::protobuf::rt::value_size(4, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.players {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        if let Some(v) = self.rtime_match_made {
            my_size += ::protobuf::rt::value_size(6, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.rtime_now {
            my_size += ::protobuf::rt::value_size(7, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.gamesearchresult {
            os.write_enum(1, ::protobuf::ProtobufEnum::value(&v))?;
        }
        if let Some(v) = self.searchid {
            os.write_uint64(2, v)?;
        }
        if let Some(v) = self.poll_frequency {
            os.write_uint32(3, v)?;
        }
        if let Some(v) = self.matchid {
            os.write_uint64(4, v)?;
        }
        for v in &self.players {
            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        if let Some(v) = self.rtime_match_made {
            os.write_uint32(6, v)?;
        }
        if let Some(v) = self.rtime_now {
            os.write_uint32(7, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CQueuedMatchmakingGameHost_SearchForPlayers_Response {
        CQueuedMatchmakingGameHost_SearchForPlayers_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeEnum<EGameSearchResult>>(
                "gamesearchresult",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &m.gamesearchresult },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &mut m.gamesearchresult },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "searchid",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &m.searchid },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &mut m.searchid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "poll_frequency",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &m.poll_frequency },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &mut m.poll_frequency },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "matchid",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &m.matchid },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &mut m.matchid },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PlayerFound>>(
                "players",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &m.players },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &mut m.players },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "rtime_match_made",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &m.rtime_match_made },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &mut m.rtime_match_made },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "rtime_now",
                |m: &CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &m.rtime_now },
                |m: &mut CQueuedMatchmakingGameHost_SearchForPlayers_Response| { &mut m.rtime_now },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CQueuedMatchmakingGameHost_SearchForPlayers_Response>(
                "CQueuedMatchmakingGameHost_SearchForPlayers_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CQueuedMatchmakingGameHost_SearchForPlayers_Response {
        static instance: ::protobuf::rt::LazyV2<CQueuedMatchmakingGameHost_SearchForPlayers_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CQueuedMatchmakingGameHost_SearchForPlayers_Response::new)
    }
}

impl ::protobuf::Clear for CQueuedMatchmakingGameHost_SearchForPlayers_Response {
    fn clear(&mut self) {
        self.gamesearchresult = ::std::option::Option::None;
        self.searchid = ::std::option::Option::None;
        self.poll_frequency = ::std::option::Option::None;
        self.matchid = ::std::option::Option::None;
        self.players.clear();
        self.rtime_match_made = ::std::option::Option::None;
        self.rtime_now = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CQueuedMatchmakingGameHost_SearchForPlayers_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CQueuedMatchmakingGameHost_SearchForPlayers_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct PlayerResult {
    // message fields
    steamid: ::std::option::Option<u64>,
    value: ::std::option::Option<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a PlayerResult {
    fn default() -> &'a PlayerResult {
        <PlayerResult as ::protobuf::Message>::default_instance()
    }
}

impl PlayerResult {
    pub fn new() -> PlayerResult {
        ::std::default::Default::default()
    }

    // optional fixed64 steamid = 1;


    pub fn get_steamid(&self) -> u64 {
        self.steamid.unwrap_or(0)
    }
    pub fn clear_steamid(&mut self) {
        self.steamid = ::std::option::Option::None;
    }

    pub fn has_steamid(&self) -> bool {
        self.steamid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_steamid(&mut self, v: u64) {
        self.steamid = ::std::option::Option::Some(v);
    }

    // optional uint32 value = 2;


    pub fn get_value(&self) -> u32 {
        self.value.unwrap_or(0)
    }
    pub fn clear_value(&mut self) {
        self.value = ::std::option::Option::None;
    }

    pub fn has_value(&self) -> bool {
        self.value.is_some()
    }

    // Param is passed by value, moved
    pub fn set_value(&mut self, v: u32) {
        self.value = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for PlayerResult {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed64()?;
                    self.steamid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.value = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.steamid {
            my_size += 9;
        }
        if let Some(v) = self.value {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.steamid {
            os.write_fixed64(1, v)?;
        }
        if let Some(v) = self.value {
            os.write_uint32(2, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> PlayerResult {
        PlayerResult::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "steamid",
                |m: &PlayerResult| { &m.steamid },
                |m: &mut PlayerResult| { &mut m.steamid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "value",
                |m: &PlayerResult| { &m.value },
                |m: &mut PlayerResult| { &mut m.value },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<PlayerResult>(
                "PlayerResult",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static PlayerResult {
        static instance: ::protobuf::rt::LazyV2<PlayerResult> = ::protobuf::rt::LazyV2::INIT;
        instance.get(PlayerResult::new)
    }
}

impl ::protobuf::Clear for PlayerResult {
    fn clear(&mut self) {
        self.steamid = ::std::option::Option::None;
        self.value = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for PlayerResult {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for PlayerResult {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CQueuedMatchmakingGameHost_SubmitPlayerResult_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    matchid: ::std::option::Option<u64>,
    pub player_results: ::protobuf::RepeatedField<PlayerResult>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CQueuedMatchmakingGameHost_SubmitPlayerResult_Request {
    fn default() -> &'a CQueuedMatchmakingGameHost_SubmitPlayerResult_Request {
        <CQueuedMatchmakingGameHost_SubmitPlayerResult_Request as ::protobuf::Message>::default_instance()
    }
}

impl CQueuedMatchmakingGameHost_SubmitPlayerResult_Request {
    pub fn new() -> CQueuedMatchmakingGameHost_SubmitPlayerResult_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional uint64 matchid = 2;


    pub fn get_matchid(&self) -> u64 {
        self.matchid.unwrap_or(0)
    }
    pub fn clear_matchid(&mut self) {
        self.matchid = ::std::option::Option::None;
    }

    pub fn has_matchid(&self) -> bool {
        self.matchid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_matchid(&mut self, v: u64) {
        self.matchid = ::std::option::Option::Some(v);
    }

    // repeated .PlayerResult player_results = 3;


    pub fn get_player_results(&self) -> &[PlayerResult] {
        &self.player_results
    }
    pub fn clear_player_results(&mut self) {
        self.player_results.clear();
    }

    // Param is passed by value, moved
    pub fn set_player_results(&mut self, v: ::protobuf::RepeatedField<PlayerResult>) {
        self.player_results = v;
    }

    // Mutable pointer to the field.
    pub fn mut_player_results(&mut self) -> &mut ::protobuf::RepeatedField<PlayerResult> {
        &mut self.player_results
    }

    // Take field
    pub fn take_player_results(&mut self) -> ::protobuf::RepeatedField<PlayerResult> {
        ::std::mem::replace(&mut self.player_results, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for CQueuedMatchmakingGameHost_SubmitPlayerResult_Request {
    fn is_initialized(&self) -> bool {
        for v in &self.player_results {
            if !v.is_initialized() {
                return false;
            }
        };
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.matchid = ::std::option::Option::Some(tmp);
                },
                3 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.player_results)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.matchid {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        for value in &self.player_results {
            let len = value.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        };
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.matchid {
            os.write_uint64(2, v)?;
        }
        for v in &self.player_results {
            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        };
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CQueuedMatchmakingGameHost_SubmitPlayerResult_Request {
        CQueuedMatchmakingGameHost_SubmitPlayerResult_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CQueuedMatchmakingGameHost_SubmitPlayerResult_Request| { &m.appid },
                |m: &mut CQueuedMatchmakingGameHost_SubmitPlayerResult_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "matchid",
                |m: &CQueuedMatchmakingGameHost_SubmitPlayerResult_Request| { &m.matchid },
                |m: &mut CQueuedMatchmakingGameHost_SubmitPlayerResult_Request| { &mut m.matchid },
            ));
            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<PlayerResult>>(
                "player_results",
                |m: &CQueuedMatchmakingGameHost_SubmitPlayerResult_Request| { &m.player_results },
                |m: &mut CQueuedMatchmakingGameHost_SubmitPlayerResult_Request| { &mut m.player_results },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CQueuedMatchmakingGameHost_SubmitPlayerResult_Request>(
                "CQueuedMatchmakingGameHost_SubmitPlayerResult_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CQueuedMatchmakingGameHost_SubmitPlayerResult_Request {
        static instance: ::protobuf::rt::LazyV2<CQueuedMatchmakingGameHost_SubmitPlayerResult_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CQueuedMatchmakingGameHost_SubmitPlayerResult_Request::new)
    }
}

impl ::protobuf::Clear for CQueuedMatchmakingGameHost_SubmitPlayerResult_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.matchid = ::std::option::Option::None;
        self.player_results.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CQueuedMatchmakingGameHost_SubmitPlayerResult_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CQueuedMatchmakingGameHost_SubmitPlayerResult_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CQueuedMatchmakingGameHost_SubmitPlayerResult_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CQueuedMatchmakingGameHost_SubmitPlayerResult_Response {
    fn default() -> &'a CQueuedMatchmakingGameHost_SubmitPlayerResult_Response {
        <CQueuedMatchmakingGameHost_SubmitPlayerResult_Response as ::protobuf::Message>::default_instance()
    }
}

impl CQueuedMatchmakingGameHost_SubmitPlayerResult_Response {
    pub fn new() -> CQueuedMatchmakingGameHost_SubmitPlayerResult_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CQueuedMatchmakingGameHost_SubmitPlayerResult_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CQueuedMatchmakingGameHost_SubmitPlayerResult_Response {
        CQueuedMatchmakingGameHost_SubmitPlayerResult_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CQueuedMatchmakingGameHost_SubmitPlayerResult_Response>(
                "CQueuedMatchmakingGameHost_SubmitPlayerResult_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CQueuedMatchmakingGameHost_SubmitPlayerResult_Response {
        static instance: ::protobuf::rt::LazyV2<CQueuedMatchmakingGameHost_SubmitPlayerResult_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CQueuedMatchmakingGameHost_SubmitPlayerResult_Response::new)
    }
}

impl ::protobuf::Clear for CQueuedMatchmakingGameHost_SubmitPlayerResult_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CQueuedMatchmakingGameHost_SubmitPlayerResult_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CQueuedMatchmakingGameHost_SubmitPlayerResult_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CQueuedMatchmakingGameHost_EndGame_Request {
    // message fields
    appid: ::std::option::Option<u32>,
    matchid: ::std::option::Option<u64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CQueuedMatchmakingGameHost_EndGame_Request {
    fn default() -> &'a CQueuedMatchmakingGameHost_EndGame_Request {
        <CQueuedMatchmakingGameHost_EndGame_Request as ::protobuf::Message>::default_instance()
    }
}

impl CQueuedMatchmakingGameHost_EndGame_Request {
    pub fn new() -> CQueuedMatchmakingGameHost_EndGame_Request {
        ::std::default::Default::default()
    }

    // optional uint32 appid = 1;


    pub fn get_appid(&self) -> u32 {
        self.appid.unwrap_or(0)
    }
    pub fn clear_appid(&mut self) {
        self.appid = ::std::option::Option::None;
    }

    pub fn has_appid(&self) -> bool {
        self.appid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_appid(&mut self, v: u32) {
        self.appid = ::std::option::Option::Some(v);
    }

    // optional uint64 matchid = 2;


    pub fn get_matchid(&self) -> u64 {
        self.matchid.unwrap_or(0)
    }
    pub fn clear_matchid(&mut self) {
        self.matchid = ::std::option::Option::None;
    }

    pub fn has_matchid(&self) -> bool {
        self.matchid.is_some()
    }

    // Param is passed by value, moved
    pub fn set_matchid(&mut self, v: u64) {
        self.matchid = ::std::option::Option::Some(v);
    }
}

impl ::protobuf::Message for CQueuedMatchmakingGameHost_EndGame_Request {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                1 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.appid = ::std::option::Option::Some(tmp);
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint64()?;
                    self.matchid = ::std::option::Option::Some(tmp);
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(v) = self.appid {
            my_size += ::protobuf::rt::value_size(1, v, ::protobuf::wire_format::WireTypeVarint);
        }
        if let Some(v) = self.matchid {
            my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        if let Some(v) = self.appid {
            os.write_uint32(1, v)?;
        }
        if let Some(v) = self.matchid {
            os.write_uint64(2, v)?;
        }
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CQueuedMatchmakingGameHost_EndGame_Request {
        CQueuedMatchmakingGameHost_EndGame_Request::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let mut fields = ::std::vec::Vec::new();
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "appid",
                |m: &CQueuedMatchmakingGameHost_EndGame_Request| { &m.appid },
                |m: &mut CQueuedMatchmakingGameHost_EndGame_Request| { &mut m.appid },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                "matchid",
                |m: &CQueuedMatchmakingGameHost_EndGame_Request| { &m.matchid },
                |m: &mut CQueuedMatchmakingGameHost_EndGame_Request| { &mut m.matchid },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CQueuedMatchmakingGameHost_EndGame_Request>(
                "CQueuedMatchmakingGameHost_EndGame_Request",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CQueuedMatchmakingGameHost_EndGame_Request {
        static instance: ::protobuf::rt::LazyV2<CQueuedMatchmakingGameHost_EndGame_Request> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CQueuedMatchmakingGameHost_EndGame_Request::new)
    }
}

impl ::protobuf::Clear for CQueuedMatchmakingGameHost_EndGame_Request {
    fn clear(&mut self) {
        self.appid = ::std::option::Option::None;
        self.matchid = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CQueuedMatchmakingGameHost_EndGame_Request {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CQueuedMatchmakingGameHost_EndGame_Request {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct CQueuedMatchmakingGameHost_EndGame_Response {
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a CQueuedMatchmakingGameHost_EndGame_Response {
    fn default() -> &'a CQueuedMatchmakingGameHost_EndGame_Response {
        <CQueuedMatchmakingGameHost_EndGame_Response as ::protobuf::Message>::default_instance()
    }
}

impl CQueuedMatchmakingGameHost_EndGame_Response {
    pub fn new() -> CQueuedMatchmakingGameHost_EndGame_Response {
        ::std::default::Default::default()
    }
}

impl ::protobuf::Message for CQueuedMatchmakingGameHost_EndGame_Response {
    fn is_initialized(&self) -> bool {
        true
    }

    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        while !is.eof()? {
            let (field_number, wire_type) = is.read_tag_unpack()?;
            match field_number {
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
        self.cached_size.set(my_size);
        my_size
    }

    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
        os.write_unknown_fields(self.get_unknown_fields())?;
        ::std::result::Result::Ok(())
    }

    fn get_cached_size(&self) -> u32 {
        self.cached_size.get()
    }

    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
        &self.unknown_fields
    }

    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
        &mut self.unknown_fields
    }

    fn as_any(&self) -> &dyn (::std::any::Any) {
        self as &dyn (::std::any::Any)
    }
    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
        self as &mut dyn (::std::any::Any)
    }
    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> CQueuedMatchmakingGameHost_EndGame_Response {
        CQueuedMatchmakingGameHost_EndGame_Response::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            let fields = ::std::vec::Vec::new();
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CQueuedMatchmakingGameHost_EndGame_Response>(
                "CQueuedMatchmakingGameHost_EndGame_Response",
                fields,
                file_descriptor_proto()
            )
        })
    }

    fn default_instance() -> &'static CQueuedMatchmakingGameHost_EndGame_Response {
        static instance: ::protobuf::rt::LazyV2<CQueuedMatchmakingGameHost_EndGame_Response> = ::protobuf::rt::LazyV2::INIT;
        instance.get(CQueuedMatchmakingGameHost_EndGame_Response::new)
    }
}

impl ::protobuf::Clear for CQueuedMatchmakingGameHost_EndGame_Response {
    fn clear(&mut self) {
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for CQueuedMatchmakingGameHost_EndGame_Response {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for CQueuedMatchmakingGameHost_EndGame_Response {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum EGameSearchAction {
    k_EGameSearchAction_None = 0,
    k_EGameSearchAction_Accept = 1,
    k_EGameSearchAction_Decline = 2,
    k_EGameSearchAction_Cancel = 3,
}

impl ::protobuf::ProtobufEnum for EGameSearchAction {
    fn value(&self) -> i32 {
        *self as i32
    }

    fn from_i32(value: i32) -> ::std::option::Option<EGameSearchAction> {
        match value {
            0 => ::std::option::Option::Some(EGameSearchAction::k_EGameSearchAction_None),
            1 => ::std::option::Option::Some(EGameSearchAction::k_EGameSearchAction_Accept),
            2 => ::std::option::Option::Some(EGameSearchAction::k_EGameSearchAction_Decline),
            3 => ::std::option::Option::Some(EGameSearchAction::k_EGameSearchAction_Cancel),
            _ => ::std::option::Option::None
        }
    }

    fn values() -> &'static [Self] {
        static values: &'static [EGameSearchAction] = &[
            EGameSearchAction::k_EGameSearchAction_None,
            EGameSearchAction::k_EGameSearchAction_Accept,
            EGameSearchAction::k_EGameSearchAction_Decline,
            EGameSearchAction::k_EGameSearchAction_Cancel,
        ];
        values
    }

    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            ::protobuf::reflect::EnumDescriptor::new_pb_name::<EGameSearchAction>("EGameSearchAction", file_descriptor_proto())
        })
    }
}

impl ::std::marker::Copy for EGameSearchAction {
}

impl ::std::default::Default for EGameSearchAction {
    fn default() -> Self {
        EGameSearchAction::k_EGameSearchAction_None
    }
}

impl ::protobuf::reflect::ProtobufValue for EGameSearchAction {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
    }
}

#[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum EGameSearchResult {
    k_EGameSearchResult_Invalid = 0,
    k_EGameSearchResult_SearchInProgress = 1,
    k_EGameSearchResult_SearchFailedNoHosts = 2,
    k_EGameSearchResult_SearchGameFound = 3,
    k_EGameSearchResult_SearchCompleteAccepted = 4,
    k_EGameSearchResult_SearchCompleteDeclined = 5,
    k_EGameSearchResult_SearchCanceled = 6,
}

impl ::protobuf::ProtobufEnum for EGameSearchResult {
    fn value(&self) -> i32 {
        *self as i32
    }

    fn from_i32(value: i32) -> ::std::option::Option<EGameSearchResult> {
        match value {
            0 => ::std::option::Option::Some(EGameSearchResult::k_EGameSearchResult_Invalid),
            1 => ::std::option::Option::Some(EGameSearchResult::k_EGameSearchResult_SearchInProgress),
            2 => ::std::option::Option::Some(EGameSearchResult::k_EGameSearchResult_SearchFailedNoHosts),
            3 => ::std::option::Option::Some(EGameSearchResult::k_EGameSearchResult_SearchGameFound),
            4 => ::std::option::Option::Some(EGameSearchResult::k_EGameSearchResult_SearchCompleteAccepted),
            5 => ::std::option::Option::Some(EGameSearchResult::k_EGameSearchResult_SearchCompleteDeclined),
            6 => ::std::option::Option::Some(EGameSearchResult::k_EGameSearchResult_SearchCanceled),
            _ => ::std::option::Option::None
        }
    }

    fn values() -> &'static [Self] {
        static values: &'static [EGameSearchResult] = &[
            EGameSearchResult::k_EGameSearchResult_Invalid,
            EGameSearchResult::k_EGameSearchResult_SearchInProgress,
            EGameSearchResult::k_EGameSearchResult_SearchFailedNoHosts,
            EGameSearchResult::k_EGameSearchResult_SearchGameFound,
            EGameSearchResult::k_EGameSearchResult_SearchCompleteAccepted,
            EGameSearchResult::k_EGameSearchResult_SearchCompleteDeclined,
            EGameSearchResult::k_EGameSearchResult_SearchCanceled,
        ];
        values
    }

    fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::EnumDescriptor> = ::protobuf::rt::LazyV2::INIT;
        descriptor.get(|| {
            ::protobuf::reflect::EnumDescriptor::new_pb_name::<EGameSearchResult>("EGameSearchResult", file_descriptor_proto())
        })
    }
}

impl ::std::marker::Copy for EGameSearchResult {
}

impl ::std::default::Default for EGameSearchResult {
    fn default() -> Self {
        EGameSearchResult::k_EGameSearchResult_Invalid
    }
}

impl ::protobuf::reflect::ProtobufValue for EGameSearchResult {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Enum(::protobuf::ProtobufEnum::descriptor(self))
    }
}

static file_descriptor_proto_data: &'static [u8] = b"\
    \n#steammessages_qms.steamclient.proto\x1a,steammessages_unified_base.st\
    eamclient.proto\"B\n\x0fGameSearchParam\x12\x19\n\x08key_name\x18\x01\
    \x20\x01(\tR\x07keyName\x12\x14\n\x05value\x18\x02\x20\x03(\tR\x05value\
    \"\xae\x02\n(CQueuedMatchmaking_SearchForGame_Request\x12\x14\n\x05appid\
    \x18\x01\x20\x01(\rR\x05appid\x12D\n\x06action\x18\x02\x20\x01(\x0e2\x12\
    .EGameSearchAction:\x18k_EGameSearchAction_NoneR\x06action\x12(\n\x06par\
    ams\x18\x03\x20\x03(\x0b2\x10.GameSearchParamR\x06params\x12\x1d\n\nplay\
    er_min\x18\x04\x20\x01(\rR\tplayerMin\x12\x1d\n\nplayer_max\x18\x05\x20\
    \x01(\rR\tplayerMax\x12\"\n\x0csteamidlobby\x18\x06\x20\x01(\x06R\x0cste\
    amidlobby\x12\x1a\n\x08searchid\x18\x07\x20\x01(\x04R\x08searchid\"\xc5\
    \x04\n)CQueuedMatchmaking_SearchForGame_Response\x12[\n\x10gamesearchres\
    ult\x18\x01\x20\x01(\x0e2\x12.EGameSearchResult:\x1bk_EGameSearchResult_\
    InvalidR\x10gamesearchresult\x12\x1a\n\x08searchid\x18\x02\x20\x01(\x04R\
    \x08searchid\x122\n\x15seconds_time_estimate\x18\x03\x20\x01(\rR\x13seco\
    ndsTimeEstimate\x12%\n\x0epoll_frequency\x18\x04\x20\x01(\rR\rpollFreque\
    ncy\x12'\n\x0fcount_searching\x18\x05\x20\x01(\rR\x0ecountSearching\x12(\
    \n\x10players_in_match\x18\x06\x20\x01(\rR\x0eplayersInMatch\x12)\n\x10p\
    layers_accepted\x18\x07\x20\x01(\rR\x0fplayersAccepted\x12%\n\x0econnect\
    _string\x18\t\x20\x01(\tR\rconnectString\x12\x20\n\x0bsteamidhost\x18\n\
    \x20\x01(\x06R\x0bsteamidhost\x12(\n\x10rtime_match_made\x18\x0b\x20\x01\
    (\rR\x0ertimeMatchMade\x12\x1b\n\trtime_now\x18\x0c\x20\x01(\rR\x08rtime\
    Now\x126\n\x17steamid_canceled_search\x18\r\x20\x01(\x06R\x15steamidCanc\
    eledSearch\"\xf3\x02\n3CQueuedMatchmakingGameHost_SearchForPlayers_Reque\
    st\x12\x14\n\x05appid\x18\x01\x20\x01(\rR\x05appid\x12D\n\x06action\x18\
    \x02\x20\x01(\x0e2\x12.EGameSearchAction:\x18k_EGameSearchAction_NoneR\
    \x06action\x12(\n\x06params\x18\x03\x20\x03(\x0b2\x10.GameSearchParamR\
    \x06params\x12\x1d\n\nplayer_min\x18\x04\x20\x01(\rR\tplayerMin\x12\x1d\
    \n\nplayer_max\x18\x05\x20\x01(\rR\tplayerMax\x12/\n\x14player_max_team_\
    size\x18\x06\x20\x01(\rR\x11playerMaxTeamSize\x12+\n\x11connection_strin\
    g\x18\x07\x20\x01(\tR\x10connectionString\x12\x1a\n\x08searchid\x18\x08\
    \x20\x01(\x04R\x08searchid\"\xb8\x01\n\x0bPlayerFound\x12\x18\n\x07steam\
    id\x18\x01\x20\x01(\x06R\x07steamid\x12D\n\x06action\x18\x02\x20\x01(\
    \x0e2\x12.EGameSearchAction:\x18k_EGameSearchAction_NoneR\x06action\x12(\
    \n\x06params\x18\x03\x20\x03(\x0b2\x10.GameSearchParamR\x06params\x12\
    \x1f\n\x0bteam_number\x18\x04\x20\x01(\rR\nteamNumber\"\xdf\x02\n4CQueue\
    dMatchmakingGameHost_SearchForPlayers_Response\x12[\n\x10gamesearchresul\
    t\x18\x01\x20\x01(\x0e2\x12.EGameSearchResult:\x1bk_EGameSearchResult_In\
    validR\x10gamesearchresult\x12\x1a\n\x08searchid\x18\x02\x20\x01(\x04R\
    \x08searchid\x12%\n\x0epoll_frequency\x18\x03\x20\x01(\rR\rpollFrequency\
    \x12\x18\n\x07matchid\x18\x04\x20\x01(\x04R\x07matchid\x12&\n\x07players\
    \x18\x05\x20\x03(\x0b2\x0c.PlayerFoundR\x07players\x12(\n\x10rtime_match\
    _made\x18\x06\x20\x01(\rR\x0ertimeMatchMade\x12\x1b\n\trtime_now\x18\x07\
    \x20\x01(\rR\x08rtimeNow\">\n\x0cPlayerResult\x12\x18\n\x07steamid\x18\
    \x01\x20\x01(\x06R\x07steamid\x12\x14\n\x05value\x18\x02\x20\x01(\rR\x05\
    value\"\x9d\x01\n5CQueuedMatchmakingGameHost_SubmitPlayerResult_Request\
    \x12\x14\n\x05appid\x18\x01\x20\x01(\rR\x05appid\x12\x18\n\x07matchid\
    \x18\x02\x20\x01(\x04R\x07matchid\x124\n\x0eplayer_results\x18\x03\x20\
    \x03(\x0b2\r.PlayerResultR\rplayerResults\"8\n6CQueuedMatchmakingGameHos\
    t_SubmitPlayerResult_Response\"\\\n*CQueuedMatchmakingGameHost_EndGame_R\
    equest\x12\x14\n\x05appid\x18\x01\x20\x01(\rR\x05appid\x12\x18\n\x07matc\
    hid\x18\x02\x20\x01(\x04R\x07matchid\"-\n+CQueuedMatchmakingGameHost_End\
    Game_Response*\x92\x01\n\x11EGameSearchAction\x12\x1c\n\x18k_EGameSearch\
    Action_None\x10\0\x12\x1e\n\x1ak_EGameSearchAction_Accept\x10\x01\x12\
    \x1f\n\x1bk_EGameSearchAction_Decline\x10\x02\x12\x1e\n\x1ak_EGameSearch\
    Action_Cancel\x10\x03*\xbc\x02\n\x11EGameSearchResult\x12\x1f\n\x1bk_EGa\
    meSearchResult_Invalid\x10\0\x12(\n$k_EGameSearchResult_SearchInProgress\
    \x10\x01\x12+\n'k_EGameSearchResult_SearchFailedNoHosts\x10\x02\x12'\n#k\
    _EGameSearchResult_SearchGameFound\x10\x03\x12.\n*k_EGameSearchResult_Se\
    archCompleteAccepted\x10\x04\x12.\n*k_EGameSearchResult_SearchCompleteDe\
    clined\x10\x05\x12&\n\"k_EGameSearchResult_SearchCanceled\x10\x062\xb2\
    \x01\n\x11QueuedMatchmaking\x12}\n\rSearchForGame\x12).CQueuedMatchmakin\
    g_SearchForGame_Request\x1a*.CQueuedMatchmaking_SearchForGame_Response\"\
    \x15\x82\xb5\x18\x11Search\x20for\x20a\x20game\x1a\x1e\x82\xb5\x18\x1aQu\
    eued\x20matchmaking\x20service2\xeb\x03\n\x19QueuedMatchmakingGameHost\
    \x12\x95\x01\n\x10SearchForPlayers\x124.CQueuedMatchmakingGameHost_Searc\
    hForPlayers_Request\x1a5.CQueuedMatchmakingGameHost_SearchForPlayers_Res\
    ponse\"\x14\x82\xb5\x18\x10SearchForPlayers\x12\x9d\x01\n\x12SubmitPlaye\
    rResult\x126.CQueuedMatchmakingGameHost_SubmitPlayerResult_Request\x1a7.\
    CQueuedMatchmakingGameHost_SubmitPlayerResult_Response\"\x16\x82\xb5\x18\
    \x12SubmitPlayerResult\x12q\n\x07EndGame\x12+.CQueuedMatchmakingGameHost\
    _EndGame_Request\x1a,.CQueuedMatchmakingGameHost_EndGame_Response\"\x0b\
    \x82\xb5\x18\x07EndGame\x1a#\x82\xb5\x18\x1fQueued\x20matchmaking\x20hos\
    t\x20serviceB\x03\x80\x01\x01J\x9e$\n\x06\x12\x04\0\0{\x01\n\t\n\x02\x03\
    \0\x12\x03\0\06\n\x08\n\x01\x08\x12\x03\x02\0\"\n\t\n\x02\x08\x10\x12\
    \x03\x02\0\"\n\n\n\x02\x05\0\x12\x04\x04\0\t\x01\n\n\n\x03\x05\0\x01\x12\
    \x03\x04\x05\x16\n\x0b\n\x04\x05\0\x02\0\x12\x03\x05\x08%\n\x0c\n\x05\
    \x05\0\x02\0\x01\x12\x03\x05\x08\x20\n\x0c\n\x05\x05\0\x02\0\x02\x12\x03\
    \x05#$\n\x0b\n\x04\x05\0\x02\x01\x12\x03\x06\x08'\n\x0c\n\x05\x05\0\x02\
    \x01\x01\x12\x03\x06\x08\"\n\x0c\n\x05\x05\0\x02\x01\x02\x12\x03\x06%&\n\
    \x0b\n\x04\x05\0\x02\x02\x12\x03\x07\x08(\n\x0c\n\x05\x05\0\x02\x02\x01\
    \x12\x03\x07\x08#\n\x0c\n\x05\x05\0\x02\x02\x02\x12\x03\x07&'\n\x0b\n\
    \x04\x05\0\x02\x03\x12\x03\x08\x08'\n\x0c\n\x05\x05\0\x02\x03\x01\x12\
    \x03\x08\x08\"\n\x0c\n\x05\x05\0\x02\x03\x02\x12\x03\x08%&\n\n\n\x02\x05\
    \x01\x12\x04\x0b\0\x13\x01\n\n\n\x03\x05\x01\x01\x12\x03\x0b\x05\x16\n\
    \x0b\n\x04\x05\x01\x02\0\x12\x03\x0c\x08(\n\x0c\n\x05\x05\x01\x02\0\x01\
    \x12\x03\x0c\x08#\n\x0c\n\x05\x05\x01\x02\0\x02\x12\x03\x0c&'\n\x0b\n\
    \x04\x05\x01\x02\x01\x12\x03\r\x081\n\x0c\n\x05\x05\x01\x02\x01\x01\x12\
    \x03\r\x08,\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\x03\r/0\n\x0b\n\x04\x05\
    \x01\x02\x02\x12\x03\x0e\x084\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03\
    \x0e\x08/\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x03\x0e23\n\x0b\n\x04\x05\
    \x01\x02\x03\x12\x03\x0f\x080\n\x0c\n\x05\x05\x01\x02\x03\x01\x12\x03\
    \x0f\x08+\n\x0c\n\x05\x05\x01\x02\x03\x02\x12\x03\x0f./\n\x0b\n\x04\x05\
    \x01\x02\x04\x12\x03\x10\x087\n\x0c\n\x05\x05\x01\x02\x04\x01\x12\x03\
    \x10\x082\n\x0c\n\x05\x05\x01\x02\x04\x02\x12\x03\x1056\n\x0b\n\x04\x05\
    \x01\x02\x05\x12\x03\x11\x087\n\x0c\n\x05\x05\x01\x02\x05\x01\x12\x03\
    \x11\x082\n\x0c\n\x05\x05\x01\x02\x05\x02\x12\x03\x1156\n\x0b\n\x04\x05\
    \x01\x02\x06\x12\x03\x12\x08/\n\x0c\n\x05\x05\x01\x02\x06\x01\x12\x03\
    \x12\x08*\n\x0c\n\x05\x05\x01\x02\x06\x02\x12\x03\x12-.\n\n\n\x02\x04\0\
    \x12\x04\x15\0\x18\x01\n\n\n\x03\x04\0\x01\x12\x03\x15\x08\x17\n\x0b\n\
    \x04\x04\0\x02\0\x12\x03\x16\x08%\n\x0c\n\x05\x04\0\x02\0\x04\x12\x03\
    \x16\x08\x10\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03\x16\x11\x17\n\x0c\n\x05\
    \x04\0\x02\0\x01\x12\x03\x16\x18\x20\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\
    \x16#$\n\x0b\n\x04\x04\0\x02\x01\x12\x03\x17\x08\"\n\x0c\n\x05\x04\0\x02\
    \x01\x04\x12\x03\x17\x08\x10\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\x17\
    \x11\x17\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x17\x18\x1d\n\x0c\n\x05\
    \x04\0\x02\x01\x03\x12\x03\x17\x20!\n\n\n\x02\x04\x01\x12\x04\x1a\0\"\
    \x01\n\n\n\x03\x04\x01\x01\x12\x03\x1a\x080\n\x0b\n\x04\x04\x01\x02\0\
    \x12\x03\x1b\x08\"\n\x0c\n\x05\x04\x01\x02\0\x04\x12\x03\x1b\x08\x10\n\
    \x0c\n\x05\x04\x01\x02\0\x05\x12\x03\x1b\x11\x17\n\x0c\n\x05\x04\x01\x02\
    \0\x01\x12\x03\x1b\x18\x1d\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03\x1b\x20\
    !\n\x0b\n\x04\x04\x01\x02\x01\x12\x03\x1c\x08T\n\x0c\n\x05\x04\x01\x02\
    \x01\x04\x12\x03\x1c\x08\x10\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03\x1c\
    \x11#\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\x1c$*\n\x0c\n\x05\x04\x01\
    \x02\x01\x03\x12\x03\x1c-.\n\x0c\n\x05\x04\x01\x02\x01\x08\x12\x03\x1c/S\
    \n\x0c\n\x05\x04\x01\x02\x01\x07\x12\x03\x1c:R\n\x0b\n\x04\x04\x01\x02\
    \x02\x12\x03\x1d\x08-\n\x0c\n\x05\x04\x01\x02\x02\x04\x12\x03\x1d\x08\
    \x10\n\x0c\n\x05\x04\x01\x02\x02\x06\x12\x03\x1d\x11!\n\x0c\n\x05\x04\
    \x01\x02\x02\x01\x12\x03\x1d\"(\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03\
    \x1d+,\n\x0b\n\x04\x04\x01\x02\x03\x12\x03\x1e\x08'\n\x0c\n\x05\x04\x01\
    \x02\x03\x04\x12\x03\x1e\x08\x10\n\x0c\n\x05\x04\x01\x02\x03\x05\x12\x03\
    \x1e\x11\x17\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03\x1e\x18\"\n\x0c\n\
    \x05\x04\x01\x02\x03\x03\x12\x03\x1e%&\n\x0b\n\x04\x04\x01\x02\x04\x12\
    \x03\x1f\x08'\n\x0c\n\x05\x04\x01\x02\x04\x04\x12\x03\x1f\x08\x10\n\x0c\
    \n\x05\x04\x01\x02\x04\x05\x12\x03\x1f\x11\x17\n\x0c\n\x05\x04\x01\x02\
    \x04\x01\x12\x03\x1f\x18\"\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03\x1f%&\
    \n\x0b\n\x04\x04\x01\x02\x05\x12\x03\x20\x08*\n\x0c\n\x05\x04\x01\x02\
    \x05\x04\x12\x03\x20\x08\x10\n\x0c\n\x05\x04\x01\x02\x05\x05\x12\x03\x20\
    \x11\x18\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03\x20\x19%\n\x0c\n\x05\
    \x04\x01\x02\x05\x03\x12\x03\x20()\n\x0b\n\x04\x04\x01\x02\x06\x12\x03!\
    \x08%\n\x0c\n\x05\x04\x01\x02\x06\x04\x12\x03!\x08\x10\n\x0c\n\x05\x04\
    \x01\x02\x06\x05\x12\x03!\x11\x17\n\x0c\n\x05\x04\x01\x02\x06\x01\x12\
    \x03!\x18\x20\n\x0c\n\x05\x04\x01\x02\x06\x03\x12\x03!#$\n\n\n\x02\x04\
    \x02\x12\x04$\01\x01\n\n\n\x03\x04\x02\x01\x12\x03$\x081\n\x0b\n\x04\x04\
    \x02\x02\0\x12\x03%\x08a\n\x0c\n\x05\x04\x02\x02\0\x04\x12\x03%\x08\x10\
    \n\x0c\n\x05\x04\x02\x02\0\x06\x12\x03%\x11#\n\x0c\n\x05\x04\x02\x02\0\
    \x01\x12\x03%$4\n\x0c\n\x05\x04\x02\x02\0\x03\x12\x03%78\n\x0c\n\x05\x04\
    \x02\x02\0\x08\x12\x03%9`\n\x0c\n\x05\x04\x02\x02\0\x07\x12\x03%D_\n\x0b\
    \n\x04\x04\x02\x02\x01\x12\x03&\x08%\n\x0c\n\x05\x04\x02\x02\x01\x04\x12\
    \x03&\x08\x10\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03&\x11\x17\n\x0c\n\
    \x05\x04\x02\x02\x01\x01\x12\x03&\x18\x20\n\x0c\n\x05\x04\x02\x02\x01\
    \x03\x12\x03&#$\n\x0b\n\x04\x04\x02\x02\x02\x12\x03'\x082\n\x0c\n\x05\
    \x04\x02\x02\x02\x04\x12\x03'\x08\x10\n\x0c\n\x05\x04\x02\x02\x02\x05\
    \x12\x03'\x11\x17\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03'\x18-\n\x0c\n\
    \x05\x04\x02\x02\x02\x03\x12\x03'01\n\x0b\n\x04\x04\x02\x02\x03\x12\x03(\
    \x08+\n\x0c\n\x05\x04\x02\x02\x03\x04\x12\x03(\x08\x10\n\x0c\n\x05\x04\
    \x02\x02\x03\x05\x12\x03(\x11\x17\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\
    \x03(\x18&\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03()*\n\x0b\n\x04\x04\
    \x02\x02\x04\x12\x03)\x08,\n\x0c\n\x05\x04\x02\x02\x04\x04\x12\x03)\x08\
    \x10\n\x0c\n\x05\x04\x02\x02\x04\x05\x12\x03)\x11\x17\n\x0c\n\x05\x04\
    \x02\x02\x04\x01\x12\x03)\x18'\n\x0c\n\x05\x04\x02\x02\x04\x03\x12\x03)*\
    +\n\x0b\n\x04\x04\x02\x02\x05\x12\x03*\x08-\n\x0c\n\x05\x04\x02\x02\x05\
    \x04\x12\x03*\x08\x10\n\x0c\n\x05\x04\x02\x02\x05\x05\x12\x03*\x11\x17\n\
    \x0c\n\x05\x04\x02\x02\x05\x01\x12\x03*\x18(\n\x0c\n\x05\x04\x02\x02\x05\
    \x03\x12\x03*+,\n\x0b\n\x04\x04\x02\x02\x06\x12\x03+\x08-\n\x0c\n\x05\
    \x04\x02\x02\x06\x04\x12\x03+\x08\x10\n\x0c\n\x05\x04\x02\x02\x06\x05\
    \x12\x03+\x11\x17\n\x0c\n\x05\x04\x02\x02\x06\x01\x12\x03+\x18(\n\x0c\n\
    \x05\x04\x02\x02\x06\x03\x12\x03++,\n\x0b\n\x04\x04\x02\x02\x07\x12\x03,\
    \x08+\n\x0c\n\x05\x04\x02\x02\x07\x04\x12\x03,\x08\x10\n\x0c\n\x05\x04\
    \x02\x02\x07\x05\x12\x03,\x11\x17\n\x0c\n\x05\x04\x02\x02\x07\x01\x12\
    \x03,\x18&\n\x0c\n\x05\x04\x02\x02\x07\x03\x12\x03,)*\n\x0b\n\x04\x04\
    \x02\x02\x08\x12\x03-\x08*\n\x0c\n\x05\x04\x02\x02\x08\x04\x12\x03-\x08\
    \x10\n\x0c\n\x05\x04\x02\x02\x08\x05\x12\x03-\x11\x18\n\x0c\n\x05\x04\
    \x02\x02\x08\x01\x12\x03-\x19$\n\x0c\n\x05\x04\x02\x02\x08\x03\x12\x03-'\
    )\n\x0b\n\x04\x04\x02\x02\t\x12\x03.\x08.\n\x0c\n\x05\x04\x02\x02\t\x04\
    \x12\x03.\x08\x10\n\x0c\n\x05\x04\x02\x02\t\x05\x12\x03.\x11\x17\n\x0c\n\
    \x05\x04\x02\x02\t\x01\x12\x03.\x18(\n\x0c\n\x05\x04\x02\x02\t\x03\x12\
    \x03.+-\n\x0b\n\x04\x04\x02\x02\n\x12\x03/\x08'\n\x0c\n\x05\x04\x02\x02\
    \n\x04\x12\x03/\x08\x10\n\x0c\n\x05\x04\x02\x02\n\x05\x12\x03/\x11\x17\n\
    \x0c\n\x05\x04\x02\x02\n\x01\x12\x03/\x18!\n\x0c\n\x05\x04\x02\x02\n\x03\
    \x12\x03/$&\n\x0b\n\x04\x04\x02\x02\x0b\x12\x030\x086\n\x0c\n\x05\x04\
    \x02\x02\x0b\x04\x12\x030\x08\x10\n\x0c\n\x05\x04\x02\x02\x0b\x05\x12\
    \x030\x11\x18\n\x0c\n\x05\x04\x02\x02\x0b\x01\x12\x030\x190\n\x0c\n\x05\
    \x04\x02\x02\x0b\x03\x12\x03035\n\n\n\x02\x04\x03\x12\x043\0<\x01\n\n\n\
    \x03\x04\x03\x01\x12\x033\x08;\n\x0b\n\x04\x04\x03\x02\0\x12\x034\x08\"\
    \n\x0c\n\x05\x04\x03\x02\0\x04\x12\x034\x08\x10\n\x0c\n\x05\x04\x03\x02\
    \0\x05\x12\x034\x11\x17\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x034\x18\x1d\n\
    \x0c\n\x05\x04\x03\x02\0\x03\x12\x034\x20!\n\x0b\n\x04\x04\x03\x02\x01\
    \x12\x035\x08T\n\x0c\n\x05\x04\x03\x02\x01\x04\x12\x035\x08\x10\n\x0c\n\
    \x05\x04\x03\x02\x01\x06\x12\x035\x11#\n\x0c\n\x05\x04\x03\x02\x01\x01\
    \x12\x035$*\n\x0c\n\x05\x04\x03\x02\x01\x03\x12\x035-.\n\x0c\n\x05\x04\
    \x03\x02\x01\x08\x12\x035/S\n\x0c\n\x05\x04\x03\x02\x01\x07\x12\x035:R\n\
    \x0b\n\x04\x04\x03\x02\x02\x12\x036\x08-\n\x0c\n\x05\x04\x03\x02\x02\x04\
    \x12\x036\x08\x10\n\x0c\n\x05\x04\x03\x02\x02\x06\x12\x036\x11!\n\x0c\n\
    \x05\x04\x03\x02\x02\x01\x12\x036\"(\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\
    \x036+,\n\x0b\n\x04\x04\x03\x02\x03\x12\x037\x08'\n\x0c\n\x05\x04\x03\
    \x02\x03\x04\x12\x037\x08\x10\n\x0c\n\x05\x04\x03\x02\x03\x05\x12\x037\
    \x11\x17\n\x0c\n\x05\x04\x03\x02\x03\x01\x12\x037\x18\"\n\x0c\n\x05\x04\
    \x03\x02\x03\x03\x12\x037%&\n\x0b\n\x04\x04\x03\x02\x04\x12\x038\x08'\n\
    \x0c\n\x05\x04\x03\x02\x04\x04\x12\x038\x08\x10\n\x0c\n\x05\x04\x03\x02\
    \x04\x05\x12\x038\x11\x17\n\x0c\n\x05\x04\x03\x02\x04\x01\x12\x038\x18\"\
    \n\x0c\n\x05\x04\x03\x02\x04\x03\x12\x038%&\n\x0b\n\x04\x04\x03\x02\x05\
    \x12\x039\x081\n\x0c\n\x05\x04\x03\x02\x05\x04\x12\x039\x08\x10\n\x0c\n\
    \x05\x04\x03\x02\x05\x05\x12\x039\x11\x17\n\x0c\n\x05\x04\x03\x02\x05\
    \x01\x12\x039\x18,\n\x0c\n\x05\x04\x03\x02\x05\x03\x12\x039/0\n\x0b\n\
    \x04\x04\x03\x02\x06\x12\x03:\x08.\n\x0c\n\x05\x04\x03\x02\x06\x04\x12\
    \x03:\x08\x10\n\x0c\n\x05\x04\x03\x02\x06\x05\x12\x03:\x11\x17\n\x0c\n\
    \x05\x04\x03\x02\x06\x01\x12\x03:\x18)\n\x0c\n\x05\x04\x03\x02\x06\x03\
    \x12\x03:,-\n\x0b\n\x04\x04\x03\x02\x07\x12\x03;\x08%\n\x0c\n\x05\x04\
    \x03\x02\x07\x04\x12\x03;\x08\x10\n\x0c\n\x05\x04\x03\x02\x07\x05\x12\
    \x03;\x11\x17\n\x0c\n\x05\x04\x03\x02\x07\x01\x12\x03;\x18\x20\n\x0c\n\
    \x05\x04\x03\x02\x07\x03\x12\x03;#$\n\n\n\x02\x04\x04\x12\x04>\0C\x01\n\
    \n\n\x03\x04\x04\x01\x12\x03>\x08\x13\n\x0b\n\x04\x04\x04\x02\0\x12\x03?\
    \x08%\n\x0c\n\x05\x04\x04\x02\0\x04\x12\x03?\x08\x10\n\x0c\n\x05\x04\x04\
    \x02\0\x05\x12\x03?\x11\x18\n\x0c\n\x05\x04\x04\x02\0\x01\x12\x03?\x19\
    \x20\n\x0c\n\x05\x04\x04\x02\0\x03\x12\x03?#$\n\x0b\n\x04\x04\x04\x02\
    \x01\x12\x03@\x08T\n\x0c\n\x05\x04\x04\x02\x01\x04\x12\x03@\x08\x10\n\
    \x0c\n\x05\x04\x04\x02\x01\x06\x12\x03@\x11#\n\x0c\n\x05\x04\x04\x02\x01\
    \x01\x12\x03@$*\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\x03@-.\n\x0c\n\x05\
    \x04\x04\x02\x01\x08\x12\x03@/S\n\x0c\n\x05\x04\x04\x02\x01\x07\x12\x03@\
    :R\n\x0b\n\x04\x04\x04\x02\x02\x12\x03A\x08-\n\x0c\n\x05\x04\x04\x02\x02\
    \x04\x12\x03A\x08\x10\n\x0c\n\x05\x04\x04\x02\x02\x06\x12\x03A\x11!\n\
    \x0c\n\x05\x04\x04\x02\x02\x01\x12\x03A\"(\n\x0c\n\x05\x04\x04\x02\x02\
    \x03\x12\x03A+,\n\x0b\n\x04\x04\x04\x02\x03\x12\x03B\x08(\n\x0c\n\x05\
    \x04\x04\x02\x03\x04\x12\x03B\x08\x10\n\x0c\n\x05\x04\x04\x02\x03\x05\
    \x12\x03B\x11\x17\n\x0c\n\x05\x04\x04\x02\x03\x01\x12\x03B\x18#\n\x0c\n\
    \x05\x04\x04\x02\x03\x03\x12\x03B&'\n\n\n\x02\x04\x05\x12\x04E\0M\x01\n\
    \n\n\x03\x04\x05\x01\x12\x03E\x08<\n\x0b\n\x04\x04\x05\x02\0\x12\x03F\
    \x08a\n\x0c\n\x05\x04\x05\x02\0\x04\x12\x03F\x08\x10\n\x0c\n\x05\x04\x05\
    \x02\0\x06\x12\x03F\x11#\n\x0c\n\x05\x04\x05\x02\0\x01\x12\x03F$4\n\x0c\
    \n\x05\x04\x05\x02\0\x03\x12\x03F78\n\x0c\n\x05\x04\x05\x02\0\x08\x12\
    \x03F9`\n\x0c\n\x05\x04\x05\x02\0\x07\x12\x03FD_\n\x0b\n\x04\x04\x05\x02\
    \x01\x12\x03G\x08%\n\x0c\n\x05\x04\x05\x02\x01\x04\x12\x03G\x08\x10\n\
    \x0c\n\x05\x04\x05\x02\x01\x05\x12\x03G\x11\x17\n\x0c\n\x05\x04\x05\x02\
    \x01\x01\x12\x03G\x18\x20\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03G#$\n\
    \x0b\n\x04\x04\x05\x02\x02\x12\x03H\x08+\n\x0c\n\x05\x04\x05\x02\x02\x04\
    \x12\x03H\x08\x10\n\x0c\n\x05\x04\x05\x02\x02\x05\x12\x03H\x11\x17\n\x0c\
    \n\x05\x04\x05\x02\x02\x01\x12\x03H\x18&\n\x0c\n\x05\x04\x05\x02\x02\x03\
    \x12\x03H)*\n\x0b\n\x04\x04\x05\x02\x03\x12\x03I\x08$\n\x0c\n\x05\x04\
    \x05\x02\x03\x04\x12\x03I\x08\x10\n\x0c\n\x05\x04\x05\x02\x03\x05\x12\
    \x03I\x11\x17\n\x0c\n\x05\x04\x05\x02\x03\x01\x12\x03I\x18\x1f\n\x0c\n\
    \x05\x04\x05\x02\x03\x03\x12\x03I\"#\n\x0b\n\x04\x04\x05\x02\x04\x12\x03\
    J\x08*\n\x0c\n\x05\x04\x05\x02\x04\x04\x12\x03J\x08\x10\n\x0c\n\x05\x04\
    \x05\x02\x04\x06\x12\x03J\x11\x1d\n\x0c\n\x05\x04\x05\x02\x04\x01\x12\
    \x03J\x1e%\n\x0c\n\x05\x04\x05\x02\x04\x03\x12\x03J()\n\x0b\n\x04\x04\
    \x05\x02\x05\x12\x03K\x08-\n\x0c\n\x05\x04\x05\x02\x05\x04\x12\x03K\x08\
    \x10\n\x0c\n\x05\x04\x05\x02\x05\x05\x12\x03K\x11\x17\n\x0c\n\x05\x04\
    \x05\x02\x05\x01\x12\x03K\x18(\n\x0c\n\x05\x04\x05\x02\x05\x03\x12\x03K+\
    ,\n\x0b\n\x04\x04\x05\x02\x06\x12\x03L\x08&\n\x0c\n\x05\x04\x05\x02\x06\
    \x04\x12\x03L\x08\x10\n\x0c\n\x05\x04\x05\x02\x06\x05\x12\x03L\x11\x17\n\
    \x0c\n\x05\x04\x05\x02\x06\x01\x12\x03L\x18!\n\x0c\n\x05\x04\x05\x02\x06\
    \x03\x12\x03L$%\n\n\n\x02\x04\x06\x12\x04O\0R\x01\n\n\n\x03\x04\x06\x01\
    \x12\x03O\x08\x14\n\x0b\n\x04\x04\x06\x02\0\x12\x03P\x08%\n\x0c\n\x05\
    \x04\x06\x02\0\x04\x12\x03P\x08\x10\n\x0c\n\x05\x04\x06\x02\0\x05\x12\
    \x03P\x11\x18\n\x0c\n\x05\x04\x06\x02\0\x01\x12\x03P\x19\x20\n\x0c\n\x05\
    \x04\x06\x02\0\x03\x12\x03P#$\n\x0b\n\x04\x04\x06\x02\x01\x12\x03Q\x08\"\
    \n\x0c\n\x05\x04\x06\x02\x01\x04\x12\x03Q\x08\x10\n\x0c\n\x05\x04\x06\
    \x02\x01\x05\x12\x03Q\x11\x17\n\x0c\n\x05\x04\x06\x02\x01\x01\x12\x03Q\
    \x18\x1d\n\x0c\n\x05\x04\x06\x02\x01\x03\x12\x03Q\x20!\n\n\n\x02\x04\x07\
    \x12\x04T\0X\x01\n\n\n\x03\x04\x07\x01\x12\x03T\x08=\n\x0b\n\x04\x04\x07\
    \x02\0\x12\x03U\x08\"\n\x0c\n\x05\x04\x07\x02\0\x04\x12\x03U\x08\x10\n\
    \x0c\n\x05\x04\x07\x02\0\x05\x12\x03U\x11\x17\n\x0c\n\x05\x04\x07\x02\0\
    \x01\x12\x03U\x18\x1d\n\x0c\n\x05\x04\x07\x02\0\x03\x12\x03U\x20!\n\x0b\
    \n\x04\x04\x07\x02\x01\x12\x03V\x08$\n\x0c\n\x05\x04\x07\x02\x01\x04\x12\
    \x03V\x08\x10\n\x0c\n\x05\x04\x07\x02\x01\x05\x12\x03V\x11\x17\n\x0c\n\
    \x05\x04\x07\x02\x01\x01\x12\x03V\x18\x1f\n\x0c\n\x05\x04\x07\x02\x01\
    \x03\x12\x03V\"#\n\x0b\n\x04\x04\x07\x02\x02\x12\x03W\x082\n\x0c\n\x05\
    \x04\x07\x02\x02\x04\x12\x03W\x08\x10\n\x0c\n\x05\x04\x07\x02\x02\x06\
    \x12\x03W\x11\x1e\n\x0c\n\x05\x04\x07\x02\x02\x01\x12\x03W\x1f-\n\x0c\n\
    \x05\x04\x07\x02\x02\x03\x12\x03W01\n\n\n\x02\x04\x08\x12\x04Z\0[\x01\n\
    \n\n\x03\x04\x08\x01\x12\x03Z\x08>\n\n\n\x02\x04\t\x12\x04]\0`\x01\n\n\n\
    \x03\x04\t\x01\x12\x03]\x082\n\x0b\n\x04\x04\t\x02\0\x12\x03^\x08\"\n\
    \x0c\n\x05\x04\t\x02\0\x04\x12\x03^\x08\x10\n\x0c\n\x05\x04\t\x02\0\x05\
    \x12\x03^\x11\x17\n\x0c\n\x05\x04\t\x02\0\x01\x12\x03^\x18\x1d\n\x0c\n\
    \x05\x04\t\x02\0\x03\x12\x03^\x20!\n\x0b\n\x04\x04\t\x02\x01\x12\x03_\
    \x08$\n\x0c\n\x05\x04\t\x02\x01\x04\x12\x03_\x08\x10\n\x0c\n\x05\x04\t\
    \x02\x01\x05\x12\x03_\x11\x17\n\x0c\n\x05\x04\t\x02\x01\x01\x12\x03_\x18\
    \x1f\n\x0c\n\x05\x04\t\x02\x01\x03\x12\x03_\"#\n\n\n\x02\x04\n\x12\x04b\
    \0c\x01\n\n\n\x03\x04\n\x01\x12\x03b\x083\n\n\n\x02\x06\0\x12\x04e\0k\
    \x01\n\n\n\x03\x06\0\x01\x12\x03e\x08\x19\n\n\n\x03\x06\0\x03\x12\x03f\
    \x08D\n\r\n\x06\x06\0\x03\xd0\x86\x03\x12\x03f\x08D\n\x0c\n\x04\x06\0\
    \x02\0\x12\x04h\x08j\t\n\x0c\n\x05\x06\0\x02\0\x01\x12\x03h\x0c\x19\n\
    \x0c\n\x05\x06\0\x02\0\x02\x12\x03h\x1bD\n\x0c\n\x05\x06\0\x02\0\x03\x12\
    \x03hOy\n\x0c\n\x05\x06\0\x02\0\x04\x12\x03i\x10B\n\x0f\n\x08\x06\0\x02\
    \0\x04\xd0\x86\x03\x12\x03i\x10B\n\n\n\x02\x06\x01\x12\x04m\0{\x01\n\n\n\
    \x03\x06\x01\x01\x12\x03m\x08!\n\n\n\x03\x06\x01\x03\x12\x03n\x08I\n\r\n\
    \x06\x06\x01\x03\xd0\x86\x03\x12\x03n\x08I\n\x0c\n\x04\x06\x01\x02\0\x12\
    \x04p\x08r\t\n\x0c\n\x05\x06\x01\x02\0\x01\x12\x03p\x0c\x1c\n\x0c\n\x05\
    \x06\x01\x02\0\x02\x12\x03p\x1eR\n\r\n\x05\x06\x01\x02\0\x03\x12\x04p]\
    \x92\x01\n\x0c\n\x05\x06\x01\x02\0\x04\x12\x03q\x10A\n\x0f\n\x08\x06\x01\
    \x02\0\x04\xd0\x86\x03\x12\x03q\x10A\n\x0c\n\x04\x06\x01\x02\x01\x12\x04\
    t\x08v\t\n\x0c\n\x05\x06\x01\x02\x01\x01\x12\x03t\x0c\x1e\n\x0c\n\x05\
    \x06\x01\x02\x01\x02\x12\x03t\x20V\n\r\n\x05\x06\x01\x02\x01\x03\x12\x04\
    ta\x98\x01\n\x0c\n\x05\x06\x01\x02\x01\x04\x12\x03u\x10C\n\x0f\n\x08\x06\
    \x01\x02\x01\x04\xd0\x86\x03\x12\x03u\x10C\n\x0c\n\x04\x06\x01\x02\x02\
    \x12\x04x\x08z\t\n\x0c\n\x05\x06\x01\x02\x02\x01\x12\x03x\x0c\x13\n\x0c\
    \n\x05\x06\x01\x02\x02\x02\x12\x03x\x15@\n\x0c\n\x05\x06\x01\x02\x02\x03\
    \x12\x03xKw\n\x0c\n\x05\x06\x01\x02\x02\x04\x12\x03y\x108\n\x0f\n\x08\
    \x06\x01\x02\x02\x04\xd0\x86\x03\x12\x03y\x108\
";

static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;

fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
}

pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
    file_descriptor_proto_lazy.get(|| {
        parse_descriptor_proto()
    })
}