// WARNING: This file is machine generated by fidlgen.

// fidl_experiment = output_index_json

#pragma once

#include <fidl/test.consts/cpp/markers.h>
#include <fidl/test.consts/cpp/natural_types.h>
#include <fidl/test.consts/cpp/wire_types.h>
#ifdef __Fuchsia__
#include <fidl/test.consts/cpp/natural_messaging.h>
#include <fidl/test.consts/cpp/wire_messaging.h>

#endif  // __Fuchsia__
#include <lib/fidl/cpp/wire_natural_conversions.h>

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wshadow"

namespace fidl {
namespace internal {

template <>
struct NaturalTypeForWireType<::test_consts::wire::BitsType> {
  using type = ::test_consts::BitsType;
};
template <>
struct WireTypeForNaturalType<::test_consts::BitsType> {
  using type = ::test_consts::wire::BitsType;
};

template <>
struct NaturalTypeForWireType<::test_consts::wire::EnumType> {
  using type = ::test_consts::EnumType;
};
template <>
struct WireTypeForNaturalType<::test_consts::EnumType> {
  using type = ::test_consts::wire::EnumType;
};

#ifdef __Fuchsia__

#endif  // __Fuchsia__
#pragma clang diagnostic pop

}  // namespace internal
}  // namespace fidl
