MCPcopy Create free account
hub / github.com/KhronosGroup/Vulkan-Hpp / generateResultExceptions

Method generateResultExceptions

generator/VulkanHppGenerator.cpp:9850–9880  ·  view source on GitHub ↗

Intended only for `enum class Result`!

Source from the content-addressed store, hash-verified

9848
9849// Intended only for `enum class Result`!
9850std::string VulkanHppGenerator::generateResultExceptions() const
9851{
9852 std::string const templateString = R"(
9853${enter} class ${className} : public SystemError
9854 {
9855 public:
9856 ${className}( std::string const & message )
9857 : SystemError( make_error_code( ${enumName}::${enumMemberName} ), message ) {}
9858 ${className}( char const * message )
9859 : SystemError( make_error_code( ${enumName}::${enumMemberName} ), message ) {}
9860 };
9861${leave})";
9862
9863 std::string str;
9864 auto enumIt = m_enums.find( "VkResult" );
9865 for ( auto const & value : enumIt->second.values )
9866 {
9867 if ( value.supported && value.name.starts_with( "VK_ERROR" ) )
9868 {
9869 auto [enter, leave] = generateProtection( value.protect );
9870 std::string valueName = generateEnumValueName( enumIt->first, value.name, false );
9871 str += replaceWithMap( templateString,
9872 { { "className", stripPrefix( valueName, "eError" ) + "Error" },
9873 { "enter", enter },
9874 { "enumName", stripPrefix( enumIt->first, "Vk" ) },
9875 { "enumMemberName", valueName },
9876 { "leave", leave } } );
9877 }
9878 }
9879 return str;
9880}
9881
9882std::string VulkanHppGenerator::generateReturnDataType( std::map<size_t, VectorParamData> const & vectorParams,
9883 std::vector<size_t> const & returnParams,

Callers

nothing calls this directly

Calls 2

replaceWithMapFunction · 0.85
stripPrefixFunction · 0.85

Tested by

no test coverage detected