mirror of
https://github.com/ValveSoftware/source-sdk-2013.git
synced 2025-05-18 09:38:03 +03:00
32 lines
999 B
C++
32 lines
999 B
C++
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
|
|
#include "cbase.h"
|
|
#include "protoutils.h"
|
|
|
|
#include "google/protobuf/message.h"
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool ValveProtoUtils::MessageHasExactFields( const google::protobuf::Message &msg,
|
|
std::initializer_list<int> fields )
|
|
{
|
|
auto &desc = *msg.GetDescriptor();
|
|
return ValveProtoUtils::MessageHasExactFields( desc, std::move( fields ) );
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool ValveProtoUtils::MessageHasExactFields( const google::protobuf::Descriptor &msgDesc,
|
|
std::initializer_list<int> fields )
|
|
{
|
|
int nFields = msgDesc.field_count();
|
|
if ( nFields != (int)fields.size() )
|
|
{ return false; }
|
|
|
|
for ( int field : fields )
|
|
{
|
|
if ( msgDesc.FindFieldByNumber( field ) == nullptr )
|
|
{ return false; }
|
|
}
|
|
|
|
return true;
|
|
}
|