mirror of
https://github.com/KhronosGroup/Vulkan-Hpp.git
synced 2024-10-14 16:32:17 +00:00
Merge pull request #1418 from asuessenbach/selection
Allow union member attribute "selection" to have multiple comma-separated values
This commit is contained in:
commit
a41fa7b593
@ -1222,13 +1222,15 @@ void VulkanHppGenerator::checkStructMemberCorrectness( std::string const &
|
|||||||
{
|
{
|
||||||
// check that each union member has a selection, that is a value of the seleting enum
|
// check that each union member has a selection, that is a value of the seleting enum
|
||||||
assert( !unionMember.selection.empty() );
|
assert( !unionMember.selection.empty() );
|
||||||
std::string const & selection = unionMember.selection;
|
for ( auto const & selection : unionMember.selection )
|
||||||
checkForError( std::find_if( selectorEnumIt->second.values.begin(),
|
{
|
||||||
selectorEnumIt->second.values.end(),
|
checkForError( std::find_if( selectorEnumIt->second.values.begin(),
|
||||||
[&selection]( EnumValueData const & evd ) { return evd.name == selection; } ) != selectorEnumIt->second.values.end(),
|
selectorEnumIt->second.values.end(),
|
||||||
unionMember.xmlLine,
|
[&selection]( EnumValueData const & evd ) { return evd.name == selection; } ) != selectorEnumIt->second.values.end(),
|
||||||
"union member <" + unionMember.name + "> uses selection <" + selection + "> that is not part of the selector type <" +
|
unionMember.xmlLine,
|
||||||
selectorIt->type.type + ">" );
|
"union member <" + unionMember.name + "> uses selection <" + selection + "> that is not part of the selector type <" +
|
||||||
|
selectorIt->type.type + ">" );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -12897,7 +12899,7 @@ void VulkanHppGenerator::readTypesTypeStructMember( tinyxml2::XMLElement const *
|
|||||||
else if ( attribute.first == "selection" )
|
else if ( attribute.first == "selection" )
|
||||||
{
|
{
|
||||||
checkForError( isUnion, line, "attribute <selection> is used with a non-union structure." );
|
checkForError( isUnion, line, "attribute <selection> is used with a non-union structure." );
|
||||||
memberData.selection = attribute.second;
|
memberData.selection = tokenize( attribute.second, "," );
|
||||||
}
|
}
|
||||||
else if ( attribute.first == "selector" )
|
else if ( attribute.first == "selector" )
|
||||||
{
|
{
|
||||||
|
@ -295,7 +295,7 @@ private:
|
|||||||
std::vector<std::string> len;
|
std::vector<std::string> len;
|
||||||
bool noAutoValidity = false;
|
bool noAutoValidity = false;
|
||||||
std::vector<bool> optional;
|
std::vector<bool> optional;
|
||||||
std::string selection;
|
std::vector<std::string> selection;
|
||||||
std::string selector;
|
std::string selector;
|
||||||
std::string value;
|
std::string value;
|
||||||
std::string usedConstant;
|
std::string usedConstant;
|
||||||
|
Loading…
Reference in New Issue
Block a user