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

// fidl_experiment = output_index_json

#include <test/bits/cpp/fidl.h>

#include "lib/fidl/cpp/internal/implementation.h"

//
// Domain objects definitions
//
namespace test {
namespace bits {

#if (__cplusplus < 201703)
constexpr const ::test::bits::FlexibleBits FlexibleBits::SMALLEST = ::test::bits::FlexibleBits(1u);
constexpr const ::test::bits::FlexibleBits FlexibleBits::BIGGEST = ::test::bits::FlexibleBits(9223372036854775808u);
constexpr const ::test::bits::FlexibleBits FlexibleBits::kMask = ::test::bits::FlexibleBits(9223372036854775809u);

#endif  // (__cplusplus < 201703)

#if (__cplusplus < 201703)
constexpr const ::test::bits::EmptyBits EmptyBits::kMask = ::test::bits::EmptyBits(0u);

#endif  // (__cplusplus < 201703)

//
// Proxies and stubs definitions
//
}  // namespace bits
}  // namespace test
