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 `steamnetworkingsockets_messages_certs.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 CMsgSteamNetworkingIdentityLegacyBinary {
    // message fields
    steam_id: ::std::option::Option<u64>,
    xbox_pairwise_id: ::protobuf::SingularField<::std::string::String>,
    generic_bytes: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    generic_string: ::protobuf::SingularField<::std::string::String>,
    ipv6_and_port: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

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

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

    // optional fixed64 steam_id = 16;


    pub fn get_steam_id(&self) -> u64 {
        self.steam_id.unwrap_or(0)
    }
    pub fn clear_steam_id(&mut self) {
        self.steam_id = ::std::option::Option::None;
    }

    pub fn has_steam_id(&self) -> bool {
        self.steam_id.is_some()
    }

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

    // optional string xbox_pairwise_id = 17;


    pub fn get_xbox_pairwise_id(&self) -> &str {
        match self.xbox_pairwise_id.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_xbox_pairwise_id(&mut self) {
        self.xbox_pairwise_id.clear();
    }

    pub fn has_xbox_pairwise_id(&self) -> bool {
        self.xbox_pairwise_id.is_some()
    }

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

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

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

    // optional bytes generic_bytes = 2;


    pub fn get_generic_bytes(&self) -> &[u8] {
        match self.generic_bytes.as_ref() {
            Some(v) => &v,
            None => &[],
        }
    }
    pub fn clear_generic_bytes(&mut self) {
        self.generic_bytes.clear();
    }

    pub fn has_generic_bytes(&self) -> bool {
        self.generic_bytes.is_some()
    }

    // Param is passed by value, moved
    pub fn set_generic_bytes(&mut self, v: ::std::vec::Vec<u8>) {
        self.generic_bytes = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_generic_bytes(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.generic_bytes.is_none() {
            self.generic_bytes.set_default();
        }
        self.generic_bytes.as_mut().unwrap()
    }

    // Take field
    pub fn take_generic_bytes(&mut self) -> ::std::vec::Vec<u8> {
        self.generic_bytes.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }

    // optional string generic_string = 3;


    pub fn get_generic_string(&self) -> &str {
        match self.generic_string.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_generic_string(&mut self) {
        self.generic_string.clear();
    }

    pub fn has_generic_string(&self) -> bool {
        self.generic_string.is_some()
    }

    // Param is passed by value, moved
    pub fn set_generic_string(&mut self, v: ::std::string::String) {
        self.generic_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_generic_string(&mut self) -> &mut ::std::string::String {
        if self.generic_string.is_none() {
            self.generic_string.set_default();
        }
        self.generic_string.as_mut().unwrap()
    }

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

    // optional bytes ipv6_and_port = 4;


    pub fn get_ipv6_and_port(&self) -> &[u8] {
        match self.ipv6_and_port.as_ref() {
            Some(v) => &v,
            None => &[],
        }
    }
    pub fn clear_ipv6_and_port(&mut self) {
        self.ipv6_and_port.clear();
    }

    pub fn has_ipv6_and_port(&self) -> bool {
        self.ipv6_and_port.is_some()
    }

    // Param is passed by value, moved
    pub fn set_ipv6_and_port(&mut self, v: ::std::vec::Vec<u8>) {
        self.ipv6_and_port = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_ipv6_and_port(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.ipv6_and_port.is_none() {
            self.ipv6_and_port.set_default();
        }
        self.ipv6_and_port.as_mut().unwrap()
    }

    // Take field
    pub fn take_ipv6_and_port(&mut self) -> ::std::vec::Vec<u8> {
        self.ipv6_and_port.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }
}

impl ::protobuf::Message for CMsgSteamNetworkingIdentityLegacyBinary {
    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 {
                16 => {
                    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.steam_id = ::std::option::Option::Some(tmp);
                },
                17 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.xbox_pairwise_id)?;
                },
                2 => {
                    ::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.generic_bytes)?;
                },
                3 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.generic_string)?;
                },
                4 => {
                    ::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.ipv6_and_port)?;
                },
                _ => {
                    ::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.steam_id {
            my_size += 10;
        }
        if let Some(ref v) = self.xbox_pairwise_id.as_ref() {
            my_size += ::protobuf::rt::string_size(17, &v);
        }
        if let Some(ref v) = self.generic_bytes.as_ref() {
            my_size += ::protobuf::rt::bytes_size(2, &v);
        }
        if let Some(ref v) = self.generic_string.as_ref() {
            my_size += ::protobuf::rt::string_size(3, &v);
        }
        if let Some(ref v) = self.ipv6_and_port.as_ref() {
            my_size += ::protobuf::rt::bytes_size(4, &v);
        }
        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.steam_id {
            os.write_fixed64(16, v)?;
        }
        if let Some(ref v) = self.xbox_pairwise_id.as_ref() {
            os.write_string(17, &v)?;
        }
        if let Some(ref v) = self.generic_bytes.as_ref() {
            os.write_bytes(2, &v)?;
        }
        if let Some(ref v) = self.generic_string.as_ref() {
            os.write_string(3, &v)?;
        }
        if let Some(ref v) = self.ipv6_and_port.as_ref() {
            os.write_bytes(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() -> CMsgSteamNetworkingIdentityLegacyBinary {
        CMsgSteamNetworkingIdentityLegacyBinary::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>(
                "steam_id",
                |m: &CMsgSteamNetworkingIdentityLegacyBinary| { &m.steam_id },
                |m: &mut CMsgSteamNetworkingIdentityLegacyBinary| { &mut m.steam_id },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "xbox_pairwise_id",
                |m: &CMsgSteamNetworkingIdentityLegacyBinary| { &m.xbox_pairwise_id },
                |m: &mut CMsgSteamNetworkingIdentityLegacyBinary| { &mut m.xbox_pairwise_id },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
                "generic_bytes",
                |m: &CMsgSteamNetworkingIdentityLegacyBinary| { &m.generic_bytes },
                |m: &mut CMsgSteamNetworkingIdentityLegacyBinary| { &mut m.generic_bytes },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "generic_string",
                |m: &CMsgSteamNetworkingIdentityLegacyBinary| { &m.generic_string },
                |m: &mut CMsgSteamNetworkingIdentityLegacyBinary| { &mut m.generic_string },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
                "ipv6_and_port",
                |m: &CMsgSteamNetworkingIdentityLegacyBinary| { &m.ipv6_and_port },
                |m: &mut CMsgSteamNetworkingIdentityLegacyBinary| { &mut m.ipv6_and_port },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CMsgSteamNetworkingIdentityLegacyBinary>(
                "CMsgSteamNetworkingIdentityLegacyBinary",
                fields,
                file_descriptor_proto()
            )
        })
    }

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

impl ::protobuf::Clear for CMsgSteamNetworkingIdentityLegacyBinary {
    fn clear(&mut self) {
        self.steam_id = ::std::option::Option::None;
        self.xbox_pairwise_id.clear();
        self.generic_bytes.clear();
        self.generic_string.clear();
        self.ipv6_and_port.clear();
        self.unknown_fields.clear();
    }
}

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

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

#[derive(PartialEq,Clone,Default)]
pub struct CMsgSteamDatagramCertificate {
    // message fields
    key_type: ::std::option::Option<CMsgSteamDatagramCertificate_EKeyType>,
    key_data: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    legacy_steam_id: ::std::option::Option<u64>,
    pub legacy_identity_binary: ::protobuf::SingularPtrField<CMsgSteamNetworkingIdentityLegacyBinary>,
    identity_string: ::protobuf::SingularField<::std::string::String>,
    pub gameserver_datacenter_ids: ::std::vec::Vec<u32>,
    time_created: ::std::option::Option<u32>,
    time_expiry: ::std::option::Option<u32>,
    pub app_ids: ::std::vec::Vec<u32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

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

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

    // optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1;


    pub fn get_key_type(&self) -> CMsgSteamDatagramCertificate_EKeyType {
        self.key_type.unwrap_or(CMsgSteamDatagramCertificate_EKeyType::INVALID)
    }
    pub fn clear_key_type(&mut self) {
        self.key_type = ::std::option::Option::None;
    }

    pub fn has_key_type(&self) -> bool {
        self.key_type.is_some()
    }

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

    // optional bytes key_data = 2;


    pub fn get_key_data(&self) -> &[u8] {
        match self.key_data.as_ref() {
            Some(v) => &v,
            None => &[],
        }
    }
    pub fn clear_key_data(&mut self) {
        self.key_data.clear();
    }

    pub fn has_key_data(&self) -> bool {
        self.key_data.is_some()
    }

    // Param is passed by value, moved
    pub fn set_key_data(&mut self, v: ::std::vec::Vec<u8>) {
        self.key_data = ::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_data(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.key_data.is_none() {
            self.key_data.set_default();
        }
        self.key_data.as_mut().unwrap()
    }

    // Take field
    pub fn take_key_data(&mut self) -> ::std::vec::Vec<u8> {
        self.key_data.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }

    // optional fixed64 legacy_steam_id = 4;


    pub fn get_legacy_steam_id(&self) -> u64 {
        self.legacy_steam_id.unwrap_or(0)
    }
    pub fn clear_legacy_steam_id(&mut self) {
        self.legacy_steam_id = ::std::option::Option::None;
    }

    pub fn has_legacy_steam_id(&self) -> bool {
        self.legacy_steam_id.is_some()
    }

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

    // optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11;


    pub fn get_legacy_identity_binary(&self) -> &CMsgSteamNetworkingIdentityLegacyBinary {
        self.legacy_identity_binary.as_ref().unwrap_or_else(|| <CMsgSteamNetworkingIdentityLegacyBinary as ::protobuf::Message>::default_instance())
    }
    pub fn clear_legacy_identity_binary(&mut self) {
        self.legacy_identity_binary.clear();
    }

    pub fn has_legacy_identity_binary(&self) -> bool {
        self.legacy_identity_binary.is_some()
    }

    // Param is passed by value, moved
    pub fn set_legacy_identity_binary(&mut self, v: CMsgSteamNetworkingIdentityLegacyBinary) {
        self.legacy_identity_binary = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_legacy_identity_binary(&mut self) -> &mut CMsgSteamNetworkingIdentityLegacyBinary {
        if self.legacy_identity_binary.is_none() {
            self.legacy_identity_binary.set_default();
        }
        self.legacy_identity_binary.as_mut().unwrap()
    }

    // Take field
    pub fn take_legacy_identity_binary(&mut self) -> CMsgSteamNetworkingIdentityLegacyBinary {
        self.legacy_identity_binary.take().unwrap_or_else(|| CMsgSteamNetworkingIdentityLegacyBinary::new())
    }

    // optional string identity_string = 12;


    pub fn get_identity_string(&self) -> &str {
        match self.identity_string.as_ref() {
            Some(v) => &v,
            None => "",
        }
    }
    pub fn clear_identity_string(&mut self) {
        self.identity_string.clear();
    }

    pub fn has_identity_string(&self) -> bool {
        self.identity_string.is_some()
    }

    // Param is passed by value, moved
    pub fn set_identity_string(&mut self, v: ::std::string::String) {
        self.identity_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_identity_string(&mut self) -> &mut ::std::string::String {
        if self.identity_string.is_none() {
            self.identity_string.set_default();
        }
        self.identity_string.as_mut().unwrap()
    }

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

    // repeated fixed32 gameserver_datacenter_ids = 5;


    pub fn get_gameserver_datacenter_ids(&self) -> &[u32] {
        &self.gameserver_datacenter_ids
    }
    pub fn clear_gameserver_datacenter_ids(&mut self) {
        self.gameserver_datacenter_ids.clear();
    }

    // Param is passed by value, moved
    pub fn set_gameserver_datacenter_ids(&mut self, v: ::std::vec::Vec<u32>) {
        self.gameserver_datacenter_ids = v;
    }

    // Mutable pointer to the field.
    pub fn mut_gameserver_datacenter_ids(&mut self) -> &mut ::std::vec::Vec<u32> {
        &mut self.gameserver_datacenter_ids
    }

    // Take field
    pub fn take_gameserver_datacenter_ids(&mut self) -> ::std::vec::Vec<u32> {
        ::std::mem::replace(&mut self.gameserver_datacenter_ids, ::std::vec::Vec::new())
    }

    // optional fixed32 time_created = 8;


    pub fn get_time_created(&self) -> u32 {
        self.time_created.unwrap_or(0)
    }
    pub fn clear_time_created(&mut self) {
        self.time_created = ::std::option::Option::None;
    }

    pub fn has_time_created(&self) -> bool {
        self.time_created.is_some()
    }

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

    // optional fixed32 time_expiry = 9;


    pub fn get_time_expiry(&self) -> u32 {
        self.time_expiry.unwrap_or(0)
    }
    pub fn clear_time_expiry(&mut self) {
        self.time_expiry = ::std::option::Option::None;
    }

    pub fn has_time_expiry(&self) -> bool {
        self.time_expiry.is_some()
    }

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

    // repeated uint32 app_ids = 10;


    pub fn get_app_ids(&self) -> &[u32] {
        &self.app_ids
    }
    pub fn clear_app_ids(&mut self) {
        self.app_ids.clear();
    }

    // Param is passed by value, moved
    pub fn set_app_ids(&mut self, v: ::std::vec::Vec<u32>) {
        self.app_ids = v;
    }

    // Mutable pointer to the field.
    pub fn mut_app_ids(&mut self) -> &mut ::std::vec::Vec<u32> {
        &mut self.app_ids
    }

    // Take field
    pub fn take_app_ids(&mut self) -> ::std::vec::Vec<u32> {
        ::std::mem::replace(&mut self.app_ids, ::std::vec::Vec::new())
    }
}

impl ::protobuf::Message for CMsgSteamDatagramCertificate {
    fn is_initialized(&self) -> bool {
        for v in &self.legacy_identity_binary {
            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.key_type, 1, &mut self.unknown_fields)?
                },
                2 => {
                    ::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.key_data)?;
                },
                4 => {
                    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.legacy_steam_id = ::std::option::Option::Some(tmp);
                },
                11 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.legacy_identity_binary)?;
                },
                12 => {
                    ::protobuf::rt::read_singular_string_into(wire_type, is, &mut self.identity_string)?;
                },
                5 => {
                    ::protobuf::rt::read_repeated_fixed32_into(wire_type, is, &mut self.gameserver_datacenter_ids)?;
                },
                8 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed32 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed32()?;
                    self.time_created = ::std::option::Option::Some(tmp);
                },
                9 => {
                    if wire_type != ::protobuf::wire_format::WireTypeFixed32 {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_fixed32()?;
                    self.time_expiry = ::std::option::Option::Some(tmp);
                },
                10 => {
                    ::protobuf::rt::read_repeated_uint32_into(wire_type, is, &mut self.app_ids)?;
                },
                _ => {
                    ::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.key_type {
            my_size += ::protobuf::rt::enum_size(1, v);
        }
        if let Some(ref v) = self.key_data.as_ref() {
            my_size += ::protobuf::rt::bytes_size(2, &v);
        }
        if let Some(v) = self.legacy_steam_id {
            my_size += 9;
        }
        if let Some(ref v) = self.legacy_identity_binary.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if let Some(ref v) = self.identity_string.as_ref() {
            my_size += ::protobuf::rt::string_size(12, &v);
        }
        my_size += 5 * self.gameserver_datacenter_ids.len() as u32;
        if let Some(v) = self.time_created {
            my_size += 5;
        }
        if let Some(v) = self.time_expiry {
            my_size += 5;
        }
        for value in &self.app_ids {
            my_size += ::protobuf::rt::value_size(10, *value, ::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.key_type {
            os.write_enum(1, ::protobuf::ProtobufEnum::value(&v))?;
        }
        if let Some(ref v) = self.key_data.as_ref() {
            os.write_bytes(2, &v)?;
        }
        if let Some(v) = self.legacy_steam_id {
            os.write_fixed64(4, v)?;
        }
        if let Some(ref v) = self.legacy_identity_binary.as_ref() {
            os.write_tag(11, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if let Some(ref v) = self.identity_string.as_ref() {
            os.write_string(12, &v)?;
        }
        for v in &self.gameserver_datacenter_ids {
            os.write_fixed32(5, *v)?;
        };
        if let Some(v) = self.time_created {
            os.write_fixed32(8, v)?;
        }
        if let Some(v) = self.time_expiry {
            os.write_fixed32(9, v)?;
        }
        for v in &self.app_ids {
            os.write_uint32(10, *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() -> CMsgSteamDatagramCertificate {
        CMsgSteamDatagramCertificate::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<CMsgSteamDatagramCertificate_EKeyType>>(
                "key_type",
                |m: &CMsgSteamDatagramCertificate| { &m.key_type },
                |m: &mut CMsgSteamDatagramCertificate| { &mut m.key_type },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
                "key_data",
                |m: &CMsgSteamDatagramCertificate| { &m.key_data },
                |m: &mut CMsgSteamDatagramCertificate| { &mut m.key_data },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "legacy_steam_id",
                |m: &CMsgSteamDatagramCertificate| { &m.legacy_steam_id },
                |m: &mut CMsgSteamDatagramCertificate| { &mut m.legacy_steam_id },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CMsgSteamNetworkingIdentityLegacyBinary>>(
                "legacy_identity_binary",
                |m: &CMsgSteamDatagramCertificate| { &m.legacy_identity_binary },
                |m: &mut CMsgSteamDatagramCertificate| { &mut m.legacy_identity_binary },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                "identity_string",
                |m: &CMsgSteamDatagramCertificate| { &m.identity_string },
                |m: &mut CMsgSteamDatagramCertificate| { &mut m.identity_string },
            ));
            fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeFixed32>(
                "gameserver_datacenter_ids",
                |m: &CMsgSteamDatagramCertificate| { &m.gameserver_datacenter_ids },
                |m: &mut CMsgSteamDatagramCertificate| { &mut m.gameserver_datacenter_ids },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed32>(
                "time_created",
                |m: &CMsgSteamDatagramCertificate| { &m.time_created },
                |m: &mut CMsgSteamDatagramCertificate| { &mut m.time_created },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed32>(
                "time_expiry",
                |m: &CMsgSteamDatagramCertificate| { &m.time_expiry },
                |m: &mut CMsgSteamDatagramCertificate| { &mut m.time_expiry },
            ));
            fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                "app_ids",
                |m: &CMsgSteamDatagramCertificate| { &m.app_ids },
                |m: &mut CMsgSteamDatagramCertificate| { &mut m.app_ids },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CMsgSteamDatagramCertificate>(
                "CMsgSteamDatagramCertificate",
                fields,
                file_descriptor_proto()
            )
        })
    }

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

impl ::protobuf::Clear for CMsgSteamDatagramCertificate {
    fn clear(&mut self) {
        self.key_type = ::std::option::Option::None;
        self.key_data.clear();
        self.legacy_steam_id = ::std::option::Option::None;
        self.legacy_identity_binary.clear();
        self.identity_string.clear();
        self.gameserver_datacenter_ids.clear();
        self.time_created = ::std::option::Option::None;
        self.time_expiry = ::std::option::Option::None;
        self.app_ids.clear();
        self.unknown_fields.clear();
    }
}

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

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

#[derive(Clone,PartialEq,Eq,Debug,Hash)]
pub enum CMsgSteamDatagramCertificate_EKeyType {
    INVALID = 0,
    ED25519 = 1,
}

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

    fn from_i32(value: i32) -> ::std::option::Option<CMsgSteamDatagramCertificate_EKeyType> {
        match value {
            0 => ::std::option::Option::Some(CMsgSteamDatagramCertificate_EKeyType::INVALID),
            1 => ::std::option::Option::Some(CMsgSteamDatagramCertificate_EKeyType::ED25519),
            _ => ::std::option::Option::None
        }
    }

    fn values() -> &'static [Self] {
        static values: &'static [CMsgSteamDatagramCertificate_EKeyType] = &[
            CMsgSteamDatagramCertificate_EKeyType::INVALID,
            CMsgSteamDatagramCertificate_EKeyType::ED25519,
        ];
        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::<CMsgSteamDatagramCertificate_EKeyType>("CMsgSteamDatagramCertificate.EKeyType", file_descriptor_proto())
        })
    }
}

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

impl ::std::default::Default for CMsgSteamDatagramCertificate_EKeyType {
    fn default() -> Self {
        CMsgSteamDatagramCertificate_EKeyType::INVALID
    }
}

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

#[derive(PartialEq,Clone,Default)]
pub struct CMsgSteamDatagramCertificateSigned {
    // message fields
    cert: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    ca_key_id: ::std::option::Option<u64>,
    ca_signature: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    private_key_data: ::protobuf::SingularField<::std::vec::Vec<u8>>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

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

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

    // optional bytes cert = 4;


    pub fn get_cert(&self) -> &[u8] {
        match self.cert.as_ref() {
            Some(v) => &v,
            None => &[],
        }
    }
    pub fn clear_cert(&mut self) {
        self.cert.clear();
    }

    pub fn has_cert(&self) -> bool {
        self.cert.is_some()
    }

    // Param is passed by value, moved
    pub fn set_cert(&mut self, v: ::std::vec::Vec<u8>) {
        self.cert = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_cert(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.cert.is_none() {
            self.cert.set_default();
        }
        self.cert.as_mut().unwrap()
    }

    // Take field
    pub fn take_cert(&mut self) -> ::std::vec::Vec<u8> {
        self.cert.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }

    // optional fixed64 ca_key_id = 5;


    pub fn get_ca_key_id(&self) -> u64 {
        self.ca_key_id.unwrap_or(0)
    }
    pub fn clear_ca_key_id(&mut self) {
        self.ca_key_id = ::std::option::Option::None;
    }

    pub fn has_ca_key_id(&self) -> bool {
        self.ca_key_id.is_some()
    }

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

    // optional bytes ca_signature = 6;


    pub fn get_ca_signature(&self) -> &[u8] {
        match self.ca_signature.as_ref() {
            Some(v) => &v,
            None => &[],
        }
    }
    pub fn clear_ca_signature(&mut self) {
        self.ca_signature.clear();
    }

    pub fn has_ca_signature(&self) -> bool {
        self.ca_signature.is_some()
    }

    // Param is passed by value, moved
    pub fn set_ca_signature(&mut self, v: ::std::vec::Vec<u8>) {
        self.ca_signature = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_ca_signature(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.ca_signature.is_none() {
            self.ca_signature.set_default();
        }
        self.ca_signature.as_mut().unwrap()
    }

    // Take field
    pub fn take_ca_signature(&mut self) -> ::std::vec::Vec<u8> {
        self.ca_signature.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }

    // optional bytes private_key_data = 1;


    pub fn get_private_key_data(&self) -> &[u8] {
        match self.private_key_data.as_ref() {
            Some(v) => &v,
            None => &[],
        }
    }
    pub fn clear_private_key_data(&mut self) {
        self.private_key_data.clear();
    }

    pub fn has_private_key_data(&self) -> bool {
        self.private_key_data.is_some()
    }

    // Param is passed by value, moved
    pub fn set_private_key_data(&mut self, v: ::std::vec::Vec<u8>) {
        self.private_key_data = ::protobuf::SingularField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_private_key_data(&mut self) -> &mut ::std::vec::Vec<u8> {
        if self.private_key_data.is_none() {
            self.private_key_data.set_default();
        }
        self.private_key_data.as_mut().unwrap()
    }

    // Take field
    pub fn take_private_key_data(&mut self) -> ::std::vec::Vec<u8> {
        self.private_key_data.take().unwrap_or_else(|| ::std::vec::Vec::new())
    }
}

impl ::protobuf::Message for CMsgSteamDatagramCertificateSigned {
    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 {
                4 => {
                    ::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.cert)?;
                },
                5 => {
                    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.ca_key_id = ::std::option::Option::Some(tmp);
                },
                6 => {
                    ::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.ca_signature)?;
                },
                1 => {
                    ::protobuf::rt::read_singular_bytes_into(wire_type, is, &mut self.private_key_data)?;
                },
                _ => {
                    ::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.cert.as_ref() {
            my_size += ::protobuf::rt::bytes_size(4, &v);
        }
        if let Some(v) = self.ca_key_id {
            my_size += 9;
        }
        if let Some(ref v) = self.ca_signature.as_ref() {
            my_size += ::protobuf::rt::bytes_size(6, &v);
        }
        if let Some(ref v) = self.private_key_data.as_ref() {
            my_size += ::protobuf::rt::bytes_size(1, &v);
        }
        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.cert.as_ref() {
            os.write_bytes(4, &v)?;
        }
        if let Some(v) = self.ca_key_id {
            os.write_fixed64(5, v)?;
        }
        if let Some(ref v) = self.ca_signature.as_ref() {
            os.write_bytes(6, &v)?;
        }
        if let Some(ref v) = self.private_key_data.as_ref() {
            os.write_bytes(1, &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() -> CMsgSteamDatagramCertificateSigned {
        CMsgSteamDatagramCertificateSigned::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::ProtobufTypeBytes>(
                "cert",
                |m: &CMsgSteamDatagramCertificateSigned| { &m.cert },
                |m: &mut CMsgSteamDatagramCertificateSigned| { &mut m.cert },
            ));
            fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeFixed64>(
                "ca_key_id",
                |m: &CMsgSteamDatagramCertificateSigned| { &m.ca_key_id },
                |m: &mut CMsgSteamDatagramCertificateSigned| { &mut m.ca_key_id },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
                "ca_signature",
                |m: &CMsgSteamDatagramCertificateSigned| { &m.ca_signature },
                |m: &mut CMsgSteamDatagramCertificateSigned| { &mut m.ca_signature },
            ));
            fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
                "private_key_data",
                |m: &CMsgSteamDatagramCertificateSigned| { &m.private_key_data },
                |m: &mut CMsgSteamDatagramCertificateSigned| { &mut m.private_key_data },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CMsgSteamDatagramCertificateSigned>(
                "CMsgSteamDatagramCertificateSigned",
                fields,
                file_descriptor_proto()
            )
        })
    }

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

impl ::protobuf::Clear for CMsgSteamDatagramCertificateSigned {
    fn clear(&mut self) {
        self.cert.clear();
        self.ca_key_id = ::std::option::Option::None;
        self.ca_signature.clear();
        self.private_key_data.clear();
        self.unknown_fields.clear();
    }
}

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

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

#[derive(PartialEq,Clone,Default)]
pub struct CMsgSteamDatagramCertificateRequest {
    // message fields
    pub cert: ::protobuf::SingularPtrField<CMsgSteamDatagramCertificate>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

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

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

    // optional .CMsgSteamDatagramCertificate cert = 1;


    pub fn get_cert(&self) -> &CMsgSteamDatagramCertificate {
        self.cert.as_ref().unwrap_or_else(|| <CMsgSteamDatagramCertificate as ::protobuf::Message>::default_instance())
    }
    pub fn clear_cert(&mut self) {
        self.cert.clear();
    }

    pub fn has_cert(&self) -> bool {
        self.cert.is_some()
    }

    // Param is passed by value, moved
    pub fn set_cert(&mut self, v: CMsgSteamDatagramCertificate) {
        self.cert = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_cert(&mut self) -> &mut CMsgSteamDatagramCertificate {
        if self.cert.is_none() {
            self.cert.set_default();
        }
        self.cert.as_mut().unwrap()
    }

    // Take field
    pub fn take_cert(&mut self) -> CMsgSteamDatagramCertificate {
        self.cert.take().unwrap_or_else(|| CMsgSteamDatagramCertificate::new())
    }
}

impl ::protobuf::Message for CMsgSteamDatagramCertificateRequest {
    fn is_initialized(&self) -> bool {
        for v in &self.cert {
            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_singular_message_into(wire_type, is, &mut self.cert)?;
                },
                _ => {
                    ::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.cert.as_ref() {
            let len = v.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(ref v) = self.cert.as_ref() {
            os.write_tag(1, ::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() -> CMsgSteamDatagramCertificateRequest {
        CMsgSteamDatagramCertificateRequest::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_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CMsgSteamDatagramCertificate>>(
                "cert",
                |m: &CMsgSteamDatagramCertificateRequest| { &m.cert },
                |m: &mut CMsgSteamDatagramCertificateRequest| { &mut m.cert },
            ));
            ::protobuf::reflect::MessageDescriptor::new_pb_name::<CMsgSteamDatagramCertificateRequest>(
                "CMsgSteamDatagramCertificateRequest",
                fields,
                file_descriptor_proto()
            )
        })
    }

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

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

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

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

static file_descriptor_proto_data: &'static [u8] = b"\
    \n+steamnetworkingsockets_messages_certs.proto\"\xde\x01\n'CMsgSteamNetw\
    orkingIdentityLegacyBinary\x12\x19\n\x08steam_id\x18\x10\x20\x01(\x06R\
    \x07steamId\x12(\n\x10xbox_pairwise_id\x18\x11\x20\x01(\tR\x0exboxPairwi\
    seId\x12#\n\rgeneric_bytes\x18\x02\x20\x01(\x0cR\x0cgenericBytes\x12%\n\
    \x0egeneric_string\x18\x03\x20\x01(\tR\rgenericString\x12\"\n\ripv6_and_\
    port\x18\x04\x20\x01(\x0cR\x0bipv6AndPort\"\xf5\x03\n\x1cCMsgSteamDatagr\
    amCertificate\x12J\n\x08key_type\x18\x01\x20\x01(\x0e2&.CMsgSteamDatagra\
    mCertificate.EKeyType:\x07INVALIDR\x07keyType\x12\x19\n\x08key_data\x18\
    \x02\x20\x01(\x0cR\x07keyData\x12&\n\x0flegacy_steam_id\x18\x04\x20\x01(\
    \x06R\rlegacySteamId\x12^\n\x16legacy_identity_binary\x18\x0b\x20\x01(\
    \x0b2(.CMsgSteamNetworkingIdentityLegacyBinaryR\x14legacyIdentityBinary\
    \x12'\n\x0fidentity_string\x18\x0c\x20\x01(\tR\x0eidentityString\x12:\n\
    \x19gameserver_datacenter_ids\x18\x05\x20\x03(\x07R\x17gameserverDatacen\
    terIds\x12!\n\x0ctime_created\x18\x08\x20\x01(\x07R\x0btimeCreated\x12\
    \x1f\n\x0btime_expiry\x18\t\x20\x01(\x07R\ntimeExpiry\x12\x17\n\x07app_i\
    ds\x18\n\x20\x03(\rR\x06appIds\"$\n\x08EKeyType\x12\x0b\n\x07INVALID\x10\
    \0\x12\x0b\n\x07ED25519\x10\x01\"\xa1\x01\n\"CMsgSteamDatagramCertificat\
    eSigned\x12\x12\n\x04cert\x18\x04\x20\x01(\x0cR\x04cert\x12\x1a\n\tca_ke\
    y_id\x18\x05\x20\x01(\x06R\x07caKeyId\x12!\n\x0cca_signature\x18\x06\x20\
    \x01(\x0cR\x0bcaSignature\x12(\n\x10private_key_data\x18\x01\x20\x01(\
    \x0cR\x0eprivateKeyData\"X\n#CMsgSteamDatagramCertificateRequest\x121\n\
    \x04cert\x18\x01\x20\x01(\x0b2\x1d.CMsgSteamDatagramCertificateR\x04cert\
    B\x05H\x01\x80\x01\0J\xc7\x0c\n\x06\x12\x04\0\0%\x01\n\x08\n\x01\x08\x12\
    \x03\0\0\x1c\n\t\n\x02\x08\t\x12\x03\0\0\x1c\n\x08\n\x01\x08\x12\x03\x01\
    \0#\n\t\n\x02\x08\x10\x12\x03\x01\0#\n\n\n\x02\x04\0\x12\x04\x03\0\t\x01\
    \n\n\n\x03\x04\0\x01\x12\x03\x03\x08/\n\x0b\n\x04\x04\0\x02\0\x12\x03\
    \x04\x08'\n\x0c\n\x05\x04\0\x02\0\x04\x12\x03\x04\x08\x10\n\x0c\n\x05\
    \x04\0\x02\0\x05\x12\x03\x04\x11\x18\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\
    \x04\x19!\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x04$&\n\x0b\n\x04\x04\0\
    \x02\x01\x12\x03\x05\x08.\n\x0c\n\x05\x04\0\x02\x01\x04\x12\x03\x05\x08\
    \x10\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\x05\x11\x17\n\x0c\n\x05\x04\0\
    \x02\x01\x01\x12\x03\x05\x18(\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x05+\
    -\n\x0b\n\x04\x04\0\x02\x02\x12\x03\x06\x08)\n\x0c\n\x05\x04\0\x02\x02\
    \x04\x12\x03\x06\x08\x10\n\x0c\n\x05\x04\0\x02\x02\x05\x12\x03\x06\x11\
    \x16\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x06\x17$\n\x0c\n\x05\x04\0\
    \x02\x02\x03\x12\x03\x06'(\n\x0b\n\x04\x04\0\x02\x03\x12\x03\x07\x08+\n\
    \x0c\n\x05\x04\0\x02\x03\x04\x12\x03\x07\x08\x10\n\x0c\n\x05\x04\0\x02\
    \x03\x05\x12\x03\x07\x11\x17\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03\x07\
    \x18&\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x03\x07)*\n\x0b\n\x04\x04\0\x02\
    \x04\x12\x03\x08\x08)\n\x0c\n\x05\x04\0\x02\x04\x04\x12\x03\x08\x08\x10\
    \n\x0c\n\x05\x04\0\x02\x04\x05\x12\x03\x08\x11\x16\n\x0c\n\x05\x04\0\x02\
    \x04\x01\x12\x03\x08\x17$\n\x0c\n\x05\x04\0\x02\x04\x03\x12\x03\x08'(\n\
    \n\n\x02\x04\x01\x12\x04\x0b\0\x1a\x01\n\n\n\x03\x04\x01\x01\x12\x03\x0b\
    \x08$\n\x0c\n\x04\x04\x01\x04\0\x12\x04\x0c\x08\x0f\t\n\x0c\n\x05\x04\
    \x01\x04\0\x01\x12\x03\x0c\r\x15\n\r\n\x06\x04\x01\x04\0\x02\0\x12\x03\r\
    \x10\x1c\n\x0e\n\x07\x04\x01\x04\0\x02\0\x01\x12\x03\r\x10\x17\n\x0e\n\
    \x07\x04\x01\x04\0\x02\0\x02\x12\x03\r\x1a\x1b\n\r\n\x06\x04\x01\x04\0\
    \x02\x01\x12\x03\x0e\x10\x1c\n\x0e\n\x07\x04\x01\x04\0\x02\x01\x01\x12\
    \x03\x0e\x10\x17\n\x0e\n\x07\x04\x01\x04\0\x02\x01\x02\x12\x03\x0e\x1a\
    \x1b\n\x0b\n\x04\x04\x01\x02\0\x12\x03\x11\x08Y\n\x0c\n\x05\x04\x01\x02\
    \0\x04\x12\x03\x11\x08\x10\n\x0c\n\x05\x04\x01\x02\0\x06\x12\x03\x11\x11\
    7\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03\x118@\n\x0c\n\x05\x04\x01\x02\0\
    \x03\x12\x03\x11CD\n\x0c\n\x05\x04\x01\x02\0\x08\x12\x03\x11EX\n\x0c\n\
    \x05\x04\x01\x02\0\x07\x12\x03\x11PW\n\x0b\n\x04\x04\x01\x02\x01\x12\x03\
    \x12\x08$\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x03\x12\x08\x10\n\x0c\n\
    \x05\x04\x01\x02\x01\x05\x12\x03\x12\x11\x16\n\x0c\n\x05\x04\x01\x02\x01\
    \x01\x12\x03\x12\x17\x1f\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\x12\"#\
    \n\x0b\n\x04\x04\x01\x02\x02\x12\x03\x13\x08-\n\x0c\n\x05\x04\x01\x02\
    \x02\x04\x12\x03\x13\x08\x10\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03\x13\
    \x11\x18\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03\x13\x19(\n\x0c\n\x05\
    \x04\x01\x02\x02\x03\x12\x03\x13+,\n\x0b\n\x04\x04\x01\x02\x03\x12\x03\
    \x14\x08V\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03\x14\x08\x10\n\x0c\n\
    \x05\x04\x01\x02\x03\x06\x12\x03\x14\x119\n\x0c\n\x05\x04\x01\x02\x03\
    \x01\x12\x03\x14:P\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03\x14SU\n\x0b\n\
    \x04\x04\x01\x02\x04\x12\x03\x15\x08-\n\x0c\n\x05\x04\x01\x02\x04\x04\
    \x12\x03\x15\x08\x10\n\x0c\n\x05\x04\x01\x02\x04\x05\x12\x03\x15\x11\x17\
    \n\x0c\n\x05\x04\x01\x02\x04\x01\x12\x03\x15\x18'\n\x0c\n\x05\x04\x01\
    \x02\x04\x03\x12\x03\x15*,\n\x0b\n\x04\x04\x01\x02\x05\x12\x03\x16\x087\
    \n\x0c\n\x05\x04\x01\x02\x05\x04\x12\x03\x16\x08\x10\n\x0c\n\x05\x04\x01\
    \x02\x05\x05\x12\x03\x16\x11\x18\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03\
    \x16\x192\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03\x1656\n\x0b\n\x04\x04\
    \x01\x02\x06\x12\x03\x17\x08*\n\x0c\n\x05\x04\x01\x02\x06\x04\x12\x03\
    \x17\x08\x10\n\x0c\n\x05\x04\x01\x02\x06\x05\x12\x03\x17\x11\x18\n\x0c\n\
    \x05\x04\x01\x02\x06\x01\x12\x03\x17\x19%\n\x0c\n\x05\x04\x01\x02\x06\
    \x03\x12\x03\x17()\n\x0b\n\x04\x04\x01\x02\x07\x12\x03\x18\x08)\n\x0c\n\
    \x05\x04\x01\x02\x07\x04\x12\x03\x18\x08\x10\n\x0c\n\x05\x04\x01\x02\x07\
    \x05\x12\x03\x18\x11\x18\n\x0c\n\x05\x04\x01\x02\x07\x01\x12\x03\x18\x19\
    $\n\x0c\n\x05\x04\x01\x02\x07\x03\x12\x03\x18'(\n\x0b\n\x04\x04\x01\x02\
    \x08\x12\x03\x19\x08%\n\x0c\n\x05\x04\x01\x02\x08\x04\x12\x03\x19\x08\
    \x10\n\x0c\n\x05\x04\x01\x02\x08\x05\x12\x03\x19\x11\x17\n\x0c\n\x05\x04\
    \x01\x02\x08\x01\x12\x03\x19\x18\x1f\n\x0c\n\x05\x04\x01\x02\x08\x03\x12\
    \x03\x19\"$\n\n\n\x02\x04\x02\x12\x04\x1c\0!\x01\n\n\n\x03\x04\x02\x01\
    \x12\x03\x1c\x08*\n\x0b\n\x04\x04\x02\x02\0\x12\x03\x1d\x08\x20\n\x0c\n\
    \x05\x04\x02\x02\0\x04\x12\x03\x1d\x08\x10\n\x0c\n\x05\x04\x02\x02\0\x05\
    \x12\x03\x1d\x11\x16\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03\x1d\x17\x1b\n\
    \x0c\n\x05\x04\x02\x02\0\x03\x12\x03\x1d\x1e\x1f\n\x0b\n\x04\x04\x02\x02\
    \x01\x12\x03\x1e\x08'\n\x0c\n\x05\x04\x02\x02\x01\x04\x12\x03\x1e\x08\
    \x10\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03\x1e\x11\x18\n\x0c\n\x05\x04\
    \x02\x02\x01\x01\x12\x03\x1e\x19\"\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\
    \x03\x1e%&\n\x0b\n\x04\x04\x02\x02\x02\x12\x03\x1f\x08(\n\x0c\n\x05\x04\
    \x02\x02\x02\x04\x12\x03\x1f\x08\x10\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\
    \x03\x1f\x11\x16\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03\x1f\x17#\n\x0c\
    \n\x05\x04\x02\x02\x02\x03\x12\x03\x1f&'\n\x0b\n\x04\x04\x02\x02\x03\x12\
    \x03\x20\x08,\n\x0c\n\x05\x04\x02\x02\x03\x04\x12\x03\x20\x08\x10\n\x0c\
    \n\x05\x04\x02\x02\x03\x05\x12\x03\x20\x11\x16\n\x0c\n\x05\x04\x02\x02\
    \x03\x01\x12\x03\x20\x17'\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03\x20*+\
    \n\n\n\x02\x04\x03\x12\x04#\0%\x01\n\n\n\x03\x04\x03\x01\x12\x03#\x08+\n\
    \x0b\n\x04\x04\x03\x02\0\x12\x03$\x088\n\x0c\n\x05\x04\x03\x02\0\x04\x12\
    \x03$\x08\x10\n\x0c\n\x05\x04\x03\x02\0\x06\x12\x03$\x11.\n\x0c\n\x05\
    \x04\x03\x02\0\x01\x12\x03$/3\n\x0c\n\x05\x04\x03\x02\0\x03\x12\x03$67\
";

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()
    })
}