1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2025-09-20 20:46:03 +08:00
Files
hl2sdk/common/protoutils.cpp
2025-02-19 18:39:00 -05:00

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;
}