chromium/third_party/vulkan-validation-layers/src/layers/vulkan/generated/error_location_helper.h

// *** THIS FILE IS GENERATED - DO NOT EDIT ***
// See error_location_helper_generator.py for modifications

/***************************************************************************
 *
 * Copyright (c) 2023-2024 The Khronos Group Inc.
 * Copyright (c) 2023-2024 Valve Corporation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ****************************************************************************/

// NOLINTBEGIN

#pragma once
#include <string_view>
#include <sstream>
#include <vulkan/vulkan.h>
#include "containers/custom_containers.h"
#include "generated/vk_api_version.h"

namespace vvl {
enum class Func {};

enum class Struct {};

enum class Field {};

enum class Enum {};
enum class FlagBitmask {};

// Need underscore prefix to not conflict with namespace, but still easy to match generation
enum class Extension {};

// Sometimes you know the requirement list doesn't contain any version values
Extensions;

struct Requirement {};
Requirements;

const char* String(Func func);
const char* String(Struct structure);
const char* String(Field field);
const char* String(Enum value);
const char* String(FlagBitmask value);
const char* String(Extension extension);
std::string String(const Extensions& extensions);
std::string String(const Requirement& requirement);
std::string String(const Requirements& requirements);

bool IsFieldPointer(Field field);
}  // namespace vvl

// NOLINTEND