llvm/llvm/include/llvm/XRay/YAMLXRayRecord.h

//===- YAMLXRayRecord.h - XRay Record YAML Support Definitions ------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// Types and traits specialisations for YAML I/O of XRay log entries.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_XRAY_YAMLXRAYRECORD_H
#define LLVM_XRAY_YAMLXRAYRECORD_H

#include <type_traits>

#include "llvm/Support/YAMLTraits.h"
#include "llvm/XRay/XRayRecord.h"

namespace llvm {
namespace xray {

struct YAMLXRayFileHeader {};

struct YAMLXRayRecord {};

struct YAMLXRayTrace {};

} // namespace xray

namespace yaml {

// YAML Traits
// -----------
template <> struct ScalarEnumerationTraits<xray::RecordTypes> {};

template <> struct MappingTraits<xray::YAMLXRayFileHeader> {};

template <> struct MappingTraits<xray::YAMLXRayRecord> {};

template <> struct MappingTraits<xray::YAMLXRayTrace> {};

} // namespace yaml
} // namespace llvm

LLVM_YAML_IS_SEQUENCE_VECTOR(xray::YAMLXRayRecord)

#endif // LLVM_XRAY_YAMLXRAYRECORD_H