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

// fidl_experiment = output_index_json

#pragma once

#include <fidl/test.consts/cpp/natural_types.h>
#include <lib/fidl/cpp/hlcpp_conversion.h>
#include <lib/fidl/cpp/wire/service_handler.h>
#include <test/consts/cpp/fidl.h>

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

namespace fidl {
namespace internal {

template <>
struct NaturalToHLCPPTraits<::test_consts::EnumType> : public NaturalToHLCPPTraitsEnum<::test_consts::EnumType, ::test::consts::EnumType, int32_t> {};
template <>
struct HLCPPToNaturalTraits<::test::consts::EnumType> : public HLCPPToNaturalTraitsEnum<::test::consts::EnumType, ::test_consts::EnumType> {};
template <>
struct NaturalToHLCPPTraits<::test_consts::BitsType> : public NaturalToHLCPPTraitsBits<::test_consts::BitsType, ::test::consts::BitsType, uint32_t> {};
template <>
struct HLCPPToNaturalTraits<::test::consts::BitsType> : public HLCPPToNaturalTraitsBits<::test::consts::BitsType, ::test_consts::BitsType, uint32_t> {};

#pragma clang diagnostic pop

}  // namespace internal
}  // namespace fidl
