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

#include <lib/fidl/internal.h>


extern const struct FidlCodedEnum fidl_test_consts_EnumTypeTable;
extern const struct FidlCodedBits fidl_test_consts_BitsTypeTable;



static bool EnumValidatorFor_fidl_test_consts_EnumType(uint64_t v) {
  switch (v) {
    case 1ul:
    case 2ul:
      return true;
    default:
      return false;
  }
}

const struct FidlCodedEnum fidl_test_consts_EnumTypeTable = {.tag=kFidlTypeEnum, .underlying_type=kFidlCodedPrimitiveSubtype_Int32, .strictness=kFidlStrictness_Strict, .validate=&EnumValidatorFor_fidl_test_consts_EnumType, .name="fidl.test.consts/EnumType"};

const struct FidlCodedBits fidl_test_consts_BitsTypeTable = {.tag=kFidlTypeBits, .underlying_type=kFidlCodedPrimitiveSubtype_Uint32, .strictness=kFidlStrictness_Strict, .mask=3ul, .name="fidl.test.consts/BitsType"};

