/*========================== begin_copyright_notice ============================

Copyright (C) 2020-2023 Intel Corporation

SPDX-License-Identifier: MIT

============================= end_copyright_notice ===========================*/

//===- ZEInfoYAML.hpp -------------------------------------------*- C++ -*-===//
// ZE Binary Utilitis
//
// \file
// This file declares the mapping between zeInfo structs and YAML
//===----------------------------------------------------------------------===//

// ******************** DO NOT MODIFY DIRECTLY *********************************
// This file is auto-generated by ZEAutoTool/fileparser.py

#ifndef ZE_INFO_YAML_HPP
#define ZE_INFO_YAML_HPP

#include <ZEInfo.hpp>

#ifndef ZEBinStandAloneBuild
#include "common/LLVMWarningsPush.hpp"
#endif

#include "llvm/Support/YAMLTraits.h"
#ifndef ZEBinStandAloneBuild
#include "common/LLVMWarningsPop.hpp"
#endif
LLVM_YAML_IS_SEQUENCE_VECTOR(zebin::zeInfoKernel)
LLVM_YAML_IS_SEQUENCE_VECTOR(zebin::zeInfoFunction)
LLVM_YAML_IS_SEQUENCE_VECTOR(zebin::zeInfoPayloadArgument)
LLVM_YAML_IS_SEQUENCE_VECTOR(zebin::zeInfoPerThreadPayloadArgument)
LLVM_YAML_IS_SEQUENCE_VECTOR(zebin::zeInfoBindingTableIndex)
LLVM_YAML_IS_SEQUENCE_VECTOR(zebin::zeInfoPerThreadMemoryBuffer)
LLVM_YAML_IS_SEQUENCE_VECTOR(zebin::zeInfoInlineSampler)
LLVM_YAML_IS_SEQUENCE_VECTOR(zebin::zeInfoHostAccess)
LLVM_YAML_IS_SEQUENCE_VECTOR(zebin::zeInfoKernelMiscInfo)
LLVM_YAML_IS_SEQUENCE_VECTOR(zebin::zeInfoArgInfo)
namespace llvm {
    namespace yaml{
        template<>
        struct MappingTraits<zebin::zeInfoContainer> {
            static void mapping(IO& io, zebin::zeInfoContainer& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoKernel> {
            static void mapping(IO& io, zebin::zeInfoKernel& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoFunction> {
            static void mapping(IO& io, zebin::zeInfoFunction& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoUserAttribute> {
            static void mapping(IO& io, zebin::zeInfoUserAttribute& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoExecutionEnv> {
            static void mapping(IO& io, zebin::zeInfoExecutionEnv& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoPayloadArgument> {
            static void mapping(IO& io, zebin::zeInfoPayloadArgument& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoPerThreadPayloadArgument> {
            static void mapping(IO& io, zebin::zeInfoPerThreadPayloadArgument& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoBindingTableIndex> {
            static void mapping(IO& io, zebin::zeInfoBindingTableIndex& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoPerThreadMemoryBuffer> {
            static void mapping(IO& io, zebin::zeInfoPerThreadMemoryBuffer& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoInlineSampler> {
            static void mapping(IO& io, zebin::zeInfoInlineSampler& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoExperimentalProperties> {
            static void mapping(IO& io, zebin::zeInfoExperimentalProperties& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoDebugEnv> {
            static void mapping(IO& io, zebin::zeInfoDebugEnv& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoHostAccess> {
            static void mapping(IO& io, zebin::zeInfoHostAccess& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoKernelMiscInfo> {
            static void mapping(IO& io, zebin::zeInfoKernelMiscInfo& info);
        };
        template<>
        struct MappingTraits<zebin::zeInfoArgInfo> {
            static void mapping(IO& io, zebin::zeInfoArgInfo& info);
        };
    }
}
#endif
