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

#pragma once

#include <lib/fidl/llcpp/array.h>
#include <lib/fidl/llcpp/coding.h>
#include <lib/fidl/llcpp/envelope.h>
#include <lib/fidl/llcpp/message.h>
#include <lib/fidl/llcpp/message_storage.h>
#include <lib/fidl/llcpp/object_view.h>
#include <lib/fidl/llcpp/string_view.h>
#include <lib/fidl/llcpp/traits.h>
#include <lib/fidl/llcpp/wire_types.h>
#include <lib/stdcompat/optional.h>

#include <cinttypes>
#ifdef __Fuchsia__

#endif  // __Fuchsia__

#include <fidl/test.bitsconstants/cpp/common_types.h>
#include <fidl/test.bitsconstants/cpp/markers.h>

namespace test_bitsconstants {
namespace wire {
using BitsType = ::test_bitsconstants::BitsType;

constexpr ::test_bitsconstants::wire::BitsType kConst3 =
    static_cast<::test_bitsconstants::wire::BitsType>(131);

constexpr ::test_bitsconstants::wire::BitsType kConst2 =
    static_cast<::test_bitsconstants::wire::BitsType>(129);

constexpr ::test_bitsconstants::wire::BitsType kConst1 =
    ::test_bitsconstants::wire::BitsType::kA;

}  // namespace wire
}  // namespace test_bitsconstants
namespace fidl {}  // namespace fidl
