/* This file was generated by upb_generator from the input file:
 *
 *     cel/expr/syntax.proto
 *
 * Do not edit -- your changes will be discarded when the file is
 * regenerated.
 * NO CHECKED-IN PROTOBUF GENCODE */

#ifndef CEL_EXPR_SYNTAX_PROTO_UPB_H__UPB_H_
#define CEL_EXPR_SYNTAX_PROTO_UPB_H__UPB_H_

#include "upb/generated_code_support.h"
#include "cel/expr/syntax.upb_minitable.h"
#include "google/protobuf/duration.upb_minitable.h"
#include "google/protobuf/struct.upb_minitable.h"
#include "google/protobuf/timestamp.upb_minitable.h"

// Must be last.
#include "upb/port/def.inc"

#ifdef __cplusplus
extern "C" {
#endif
typedef struct cel_expr_ParsedExpr {
  upb_Message UPB_PRIVATE(base);
} cel_expr_ParsedExpr;

typedef struct cel_expr_Expr {
  upb_Message UPB_PRIVATE(base);
} cel_expr_Expr;

typedef struct cel_expr_Expr_Ident {
  upb_Message UPB_PRIVATE(base);
} cel_expr_Expr_Ident;

typedef struct cel_expr_Expr_Select {
  upb_Message UPB_PRIVATE(base);
} cel_expr_Expr_Select;

typedef struct cel_expr_Expr_Call {
  upb_Message UPB_PRIVATE(base);
} cel_expr_Expr_Call;

typedef struct cel_expr_Expr_CreateList {
  upb_Message UPB_PRIVATE(base);
} cel_expr_Expr_CreateList;

typedef struct cel_expr_Expr_CreateStruct {
  upb_Message UPB_PRIVATE(base);
} cel_expr_Expr_CreateStruct;

typedef struct cel_expr_Expr_CreateStruct_Entry {
  upb_Message UPB_PRIVATE(base);
} cel_expr_Expr_CreateStruct_Entry;

typedef struct cel_expr_Expr_Comprehension {
  upb_Message UPB_PRIVATE(base);
} cel_expr_Expr_Comprehension;

typedef struct cel_expr_Constant {
  upb_Message UPB_PRIVATE(base);
} cel_expr_Constant;

typedef struct cel_expr_SourceInfo {
  upb_Message UPB_PRIVATE(base);
} cel_expr_SourceInfo;

typedef struct cel_expr_SourceInfo_Extension {
  upb_Message UPB_PRIVATE(base);
} cel_expr_SourceInfo_Extension;

typedef struct cel_expr_SourceInfo_Extension_Version {
  upb_Message UPB_PRIVATE(base);
} cel_expr_SourceInfo_Extension_Version;

struct google_protobuf_Duration;
struct google_protobuf_Timestamp;

typedef enum {
  cel_expr_SourceInfo_Extension_COMPONENT_UNSPECIFIED = 0,
  cel_expr_SourceInfo_Extension_COMPONENT_PARSER = 1,
  cel_expr_SourceInfo_Extension_COMPONENT_TYPE_CHECKER = 2,
  cel_expr_SourceInfo_Extension_COMPONENT_RUNTIME = 3
} cel_expr_SourceInfo_Extension_Component;



/* cel.expr.ParsedExpr */
UPB_INLINE cel_expr_ParsedExpr* cel_expr_ParsedExpr_new(upb_Arena* arena) {
  return (cel_expr_ParsedExpr*)_upb_Message_New(&cel__expr__ParsedExpr_msg_init, arena);
}
UPB_INLINE cel_expr_ParsedExpr* cel_expr_ParsedExpr_parse(const char* buf, size_t size,
                                        upb_Arena* arena) {
  cel_expr_ParsedExpr* ret = cel_expr_ParsedExpr_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__ParsedExpr_msg_init, NULL, 0,
                 arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE cel_expr_ParsedExpr* cel_expr_ParsedExpr_parse_ex(
    const char* buf, size_t size, const upb_ExtensionRegistry* extreg,
    int options, upb_Arena* arena) {
  cel_expr_ParsedExpr* ret = cel_expr_ParsedExpr_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__ParsedExpr_msg_init, extreg,
                 options, arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE char* cel_expr_ParsedExpr_serialize(const cel_expr_ParsedExpr* msg,
                                      upb_Arena* arena, size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__ParsedExpr_msg_init, 0, arena, &ptr, len);
  return ptr;
}
UPB_INLINE char* cel_expr_ParsedExpr_serialize_ex(const cel_expr_ParsedExpr* msg,
                                         int options, upb_Arena* arena,
                                         size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__ParsedExpr_msg_init, options, arena, &ptr, len);
  return ptr;
}
UPB_INLINE void cel_expr_ParsedExpr_clear_expr(cel_expr_ParsedExpr* msg) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 64, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr* cel_expr_ParsedExpr_expr(const cel_expr_ParsedExpr* msg) {
  const cel_expr_Expr* default_val = NULL;
  const cel_expr_Expr* ret;
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 64, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_ParsedExpr_has_expr(const cel_expr_ParsedExpr* msg) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 64, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_ParsedExpr_clear_source_info(cel_expr_ParsedExpr* msg) {
  const upb_MiniTableField field = {3, UPB_SIZE(16, 24), 65, UPB_SIZE(4, 5), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_SourceInfo* cel_expr_ParsedExpr_source_info(const cel_expr_ParsedExpr* msg) {
  const cel_expr_SourceInfo* default_val = NULL;
  const cel_expr_SourceInfo* ret;
  const upb_MiniTableField field = {3, UPB_SIZE(16, 24), 65, UPB_SIZE(4, 5), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_ParsedExpr_has_source_info(const cel_expr_ParsedExpr* msg) {
  const upb_MiniTableField field = {3, UPB_SIZE(16, 24), 65, UPB_SIZE(4, 5), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}

UPB_INLINE void cel_expr_ParsedExpr_set_expr(cel_expr_ParsedExpr* msg, cel_expr_Expr* value) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 64, 6, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr* cel_expr_ParsedExpr_mutable_expr(
    cel_expr_ParsedExpr* msg, upb_Arena* arena) {
  struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_ParsedExpr_expr(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena);
    if (sub) cel_expr_ParsedExpr_set_expr(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_ParsedExpr_set_source_info(cel_expr_ParsedExpr* msg, cel_expr_SourceInfo* value) {
  const upb_MiniTableField field = {3, UPB_SIZE(16, 24), 65, UPB_SIZE(4, 5), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_SourceInfo* cel_expr_ParsedExpr_mutable_source_info(
    cel_expr_ParsedExpr* msg, upb_Arena* arena) {
  struct cel_expr_SourceInfo* sub = (struct cel_expr_SourceInfo*)cel_expr_ParsedExpr_source_info(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_SourceInfo*)_upb_Message_New(&cel__expr__SourceInfo_msg_init, arena);
    if (sub) cel_expr_ParsedExpr_set_source_info(msg, sub);
  }
  return sub;
}

/* cel.expr.Expr */
UPB_INLINE cel_expr_Expr* cel_expr_Expr_new(upb_Arena* arena) {
  return (cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena);
}
UPB_INLINE cel_expr_Expr* cel_expr_Expr_parse(const char* buf, size_t size,
                                        upb_Arena* arena) {
  cel_expr_Expr* ret = cel_expr_Expr_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr_msg_init, NULL, 0,
                 arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE cel_expr_Expr* cel_expr_Expr_parse_ex(
    const char* buf, size_t size, const upb_ExtensionRegistry* extreg,
    int options, upb_Arena* arena) {
  cel_expr_Expr* ret = cel_expr_Expr_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr_msg_init, extreg,
                 options, arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE char* cel_expr_Expr_serialize(const cel_expr_Expr* msg,
                                      upb_Arena* arena, size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr_msg_init, 0, arena, &ptr, len);
  return ptr;
}
UPB_INLINE char* cel_expr_Expr_serialize_ex(const cel_expr_Expr* msg,
                                         int options, upb_Arena* arena,
                                         size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr_msg_init, options, arena, &ptr, len);
  return ptr;
}
typedef enum {
  cel_expr_Expr_expr_kind_const_expr = 3,
  cel_expr_Expr_expr_kind_ident_expr = 4,
  cel_expr_Expr_expr_kind_select_expr = 5,
  cel_expr_Expr_expr_kind_call_expr = 6,
  cel_expr_Expr_expr_kind_list_expr = 7,
  cel_expr_Expr_expr_kind_struct_expr = 8,
  cel_expr_Expr_expr_kind_comprehension_expr = 9,
  cel_expr_Expr_expr_kind_NOT_SET = 0
} cel_expr_Expr_expr_kind_oneofcases;

UPB_INLINE cel_expr_Expr_expr_kind_oneofcases
cel_expr_Expr_expr_kind_case(const cel_expr_Expr* msg) {
  const upb_MiniTableField field = {3, UPB_SIZE(12, 24), -9, 21, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return (cel_expr_Expr_expr_kind_oneofcases)upb_Message_WhichOneofFieldNumber(
      UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_clear_expr_kind(cel_expr_Expr* msg) {
  const upb_MiniTableField field = {3, UPB_SIZE(12, 24), -9, 21, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearOneof(UPB_UPCAST(msg), &cel__expr__Expr_msg_init, &field);
}
UPB_INLINE void cel_expr_Expr_clear_id(cel_expr_Expr* msg) {
  const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE int64_t cel_expr_Expr_id(const cel_expr_Expr* msg) {
  int64_t default_val = (int64_t)0ll;
  int64_t ret;
  const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE void cel_expr_Expr_clear_const_expr(cel_expr_Expr* msg) {
  const upb_MiniTableField field = {3, UPB_SIZE(12, 24), -9, 21, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Constant* cel_expr_Expr_const_expr(const cel_expr_Expr* msg) {
  const cel_expr_Constant* default_val = NULL;
  const cel_expr_Constant* ret;
  const upb_MiniTableField field = {3, UPB_SIZE(12, 24), -9, 21, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Constant_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_has_const_expr(const cel_expr_Expr* msg) {
  const upb_MiniTableField field = {3, UPB_SIZE(12, 24), -9, 21, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_clear_ident_expr(cel_expr_Expr* msg) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 24), -9, UPB_SIZE(19, 20), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr_Ident* cel_expr_Expr_ident_expr(const cel_expr_Expr* msg) {
  const cel_expr_Expr_Ident* default_val = NULL;
  const cel_expr_Expr_Ident* ret;
  const upb_MiniTableField field = {4, UPB_SIZE(12, 24), -9, UPB_SIZE(19, 20), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Ident_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_has_ident_expr(const cel_expr_Expr* msg) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 24), -9, UPB_SIZE(19, 20), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_clear_select_expr(cel_expr_Expr* msg) {
  const upb_MiniTableField field = {5, UPB_SIZE(12, 24), -9, UPB_SIZE(17, 19), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr_Select* cel_expr_Expr_select_expr(const cel_expr_Expr* msg) {
  const cel_expr_Expr_Select* default_val = NULL;
  const cel_expr_Expr_Select* ret;
  const upb_MiniTableField field = {5, UPB_SIZE(12, 24), -9, UPB_SIZE(17, 19), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Select_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_has_select_expr(const cel_expr_Expr* msg) {
  const upb_MiniTableField field = {5, UPB_SIZE(12, 24), -9, UPB_SIZE(17, 19), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_clear_call_expr(cel_expr_Expr* msg) {
  const upb_MiniTableField field = {6, UPB_SIZE(12, 24), -9, UPB_SIZE(15, 18), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr_Call* cel_expr_Expr_call_expr(const cel_expr_Expr* msg) {
  const cel_expr_Expr_Call* default_val = NULL;
  const cel_expr_Expr_Call* ret;
  const upb_MiniTableField field = {6, UPB_SIZE(12, 24), -9, UPB_SIZE(15, 18), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Call_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_has_call_expr(const cel_expr_Expr* msg) {
  const upb_MiniTableField field = {6, UPB_SIZE(12, 24), -9, UPB_SIZE(15, 18), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_clear_list_expr(cel_expr_Expr* msg) {
  const upb_MiniTableField field = {7, UPB_SIZE(12, 24), -9, UPB_SIZE(13, 17), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr_CreateList* cel_expr_Expr_list_expr(const cel_expr_Expr* msg) {
  const cel_expr_Expr_CreateList* default_val = NULL;
  const cel_expr_Expr_CreateList* ret;
  const upb_MiniTableField field = {7, UPB_SIZE(12, 24), -9, UPB_SIZE(13, 17), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateList_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_has_list_expr(const cel_expr_Expr* msg) {
  const upb_MiniTableField field = {7, UPB_SIZE(12, 24), -9, UPB_SIZE(13, 17), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_clear_struct_expr(cel_expr_Expr* msg) {
  const upb_MiniTableField field = {8, UPB_SIZE(12, 24), -9, UPB_SIZE(11, 16), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr_CreateStruct* cel_expr_Expr_struct_expr(const cel_expr_Expr* msg) {
  const cel_expr_Expr_CreateStruct* default_val = NULL;
  const cel_expr_Expr_CreateStruct* ret;
  const upb_MiniTableField field = {8, UPB_SIZE(12, 24), -9, UPB_SIZE(11, 16), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_has_struct_expr(const cel_expr_Expr* msg) {
  const upb_MiniTableField field = {8, UPB_SIZE(12, 24), -9, UPB_SIZE(11, 16), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_clear_comprehension_expr(cel_expr_Expr* msg) {
  const upb_MiniTableField field = {9, UPB_SIZE(12, 24), -9, UPB_SIZE(9, 15), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr_Comprehension* cel_expr_Expr_comprehension_expr(const cel_expr_Expr* msg) {
  const cel_expr_Expr_Comprehension* default_val = NULL;
  const cel_expr_Expr_Comprehension* ret;
  const upb_MiniTableField field = {9, UPB_SIZE(12, 24), -9, UPB_SIZE(9, 15), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Comprehension_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_has_comprehension_expr(const cel_expr_Expr* msg) {
  const upb_MiniTableField field = {9, UPB_SIZE(12, 24), -9, UPB_SIZE(9, 15), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}

UPB_INLINE void cel_expr_Expr_set_id(cel_expr_Expr* msg, int64_t value) {
  const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_Expr_set_const_expr(cel_expr_Expr* msg, cel_expr_Constant* value) {
  const upb_MiniTableField field = {3, UPB_SIZE(12, 24), -9, 21, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Constant_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Constant* cel_expr_Expr_mutable_const_expr(
    cel_expr_Expr* msg, upb_Arena* arena) {
  struct cel_expr_Constant* sub = (struct cel_expr_Constant*)cel_expr_Expr_const_expr(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Constant*)_upb_Message_New(&cel__expr__Constant_msg_init, arena);
    if (sub) cel_expr_Expr_set_const_expr(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_set_ident_expr(cel_expr_Expr* msg, cel_expr_Expr_Ident* value) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 24), -9, UPB_SIZE(19, 20), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Ident_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr_Ident* cel_expr_Expr_mutable_ident_expr(
    cel_expr_Expr* msg, upb_Arena* arena) {
  struct cel_expr_Expr_Ident* sub = (struct cel_expr_Expr_Ident*)cel_expr_Expr_ident_expr(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr_Ident*)_upb_Message_New(&cel__expr__Expr__Ident_msg_init, arena);
    if (sub) cel_expr_Expr_set_ident_expr(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_set_select_expr(cel_expr_Expr* msg, cel_expr_Expr_Select* value) {
  const upb_MiniTableField field = {5, UPB_SIZE(12, 24), -9, UPB_SIZE(17, 19), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Select_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr_Select* cel_expr_Expr_mutable_select_expr(
    cel_expr_Expr* msg, upb_Arena* arena) {
  struct cel_expr_Expr_Select* sub = (struct cel_expr_Expr_Select*)cel_expr_Expr_select_expr(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr_Select*)_upb_Message_New(&cel__expr__Expr__Select_msg_init, arena);
    if (sub) cel_expr_Expr_set_select_expr(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_set_call_expr(cel_expr_Expr* msg, cel_expr_Expr_Call* value) {
  const upb_MiniTableField field = {6, UPB_SIZE(12, 24), -9, UPB_SIZE(15, 18), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Call_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr_Call* cel_expr_Expr_mutable_call_expr(
    cel_expr_Expr* msg, upb_Arena* arena) {
  struct cel_expr_Expr_Call* sub = (struct cel_expr_Expr_Call*)cel_expr_Expr_call_expr(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr_Call*)_upb_Message_New(&cel__expr__Expr__Call_msg_init, arena);
    if (sub) cel_expr_Expr_set_call_expr(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_set_list_expr(cel_expr_Expr* msg, cel_expr_Expr_CreateList* value) {
  const upb_MiniTableField field = {7, UPB_SIZE(12, 24), -9, UPB_SIZE(13, 17), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateList_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr_CreateList* cel_expr_Expr_mutable_list_expr(
    cel_expr_Expr* msg, upb_Arena* arena) {
  struct cel_expr_Expr_CreateList* sub = (struct cel_expr_Expr_CreateList*)cel_expr_Expr_list_expr(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr_CreateList*)_upb_Message_New(&cel__expr__Expr__CreateList_msg_init, arena);
    if (sub) cel_expr_Expr_set_list_expr(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_set_struct_expr(cel_expr_Expr* msg, cel_expr_Expr_CreateStruct* value) {
  const upb_MiniTableField field = {8, UPB_SIZE(12, 24), -9, UPB_SIZE(11, 16), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr_CreateStruct* cel_expr_Expr_mutable_struct_expr(
    cel_expr_Expr* msg, upb_Arena* arena) {
  struct cel_expr_Expr_CreateStruct* sub = (struct cel_expr_Expr_CreateStruct*)cel_expr_Expr_struct_expr(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr_CreateStruct*)_upb_Message_New(&cel__expr__Expr__CreateStruct_msg_init, arena);
    if (sub) cel_expr_Expr_set_struct_expr(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_set_comprehension_expr(cel_expr_Expr* msg, cel_expr_Expr_Comprehension* value) {
  const upb_MiniTableField field = {9, UPB_SIZE(12, 24), -9, UPB_SIZE(9, 15), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__Comprehension_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr_Comprehension* cel_expr_Expr_mutable_comprehension_expr(
    cel_expr_Expr* msg, upb_Arena* arena) {
  struct cel_expr_Expr_Comprehension* sub = (struct cel_expr_Expr_Comprehension*)cel_expr_Expr_comprehension_expr(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr_Comprehension*)_upb_Message_New(&cel__expr__Expr__Comprehension_msg_init, arena);
    if (sub) cel_expr_Expr_set_comprehension_expr(msg, sub);
  }
  return sub;
}

/* cel.expr.Expr.Ident */
UPB_INLINE cel_expr_Expr_Ident* cel_expr_Expr_Ident_new(upb_Arena* arena) {
  return (cel_expr_Expr_Ident*)_upb_Message_New(&cel__expr__Expr__Ident_msg_init, arena);
}
UPB_INLINE cel_expr_Expr_Ident* cel_expr_Expr_Ident_parse(const char* buf, size_t size,
                                        upb_Arena* arena) {
  cel_expr_Expr_Ident* ret = cel_expr_Expr_Ident_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Ident_msg_init, NULL, 0,
                 arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE cel_expr_Expr_Ident* cel_expr_Expr_Ident_parse_ex(
    const char* buf, size_t size, const upb_ExtensionRegistry* extreg,
    int options, upb_Arena* arena) {
  cel_expr_Expr_Ident* ret = cel_expr_Expr_Ident_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Ident_msg_init, extreg,
                 options, arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE char* cel_expr_Expr_Ident_serialize(const cel_expr_Expr_Ident* msg,
                                      upb_Arena* arena, size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Ident_msg_init, 0, arena, &ptr, len);
  return ptr;
}
UPB_INLINE char* cel_expr_Expr_Ident_serialize_ex(const cel_expr_Expr_Ident* msg,
                                         int options, upb_Arena* arena,
                                         size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Ident_msg_init, options, arena, &ptr, len);
  return ptr;
}
UPB_INLINE void cel_expr_Expr_Ident_clear_name(cel_expr_Expr_Ident* msg) {
  const upb_MiniTableField field = {1, 8, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE upb_StringView cel_expr_Expr_Ident_name(const cel_expr_Expr_Ident* msg) {
  upb_StringView default_val = upb_StringView_FromString("");
  upb_StringView ret;
  const upb_MiniTableField field = {1, 8, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}

UPB_INLINE void cel_expr_Expr_Ident_set_name(cel_expr_Expr_Ident* msg, upb_StringView value) {
  const upb_MiniTableField field = {1, 8, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}

/* cel.expr.Expr.Select */
UPB_INLINE cel_expr_Expr_Select* cel_expr_Expr_Select_new(upb_Arena* arena) {
  return (cel_expr_Expr_Select*)_upb_Message_New(&cel__expr__Expr__Select_msg_init, arena);
}
UPB_INLINE cel_expr_Expr_Select* cel_expr_Expr_Select_parse(const char* buf, size_t size,
                                        upb_Arena* arena) {
  cel_expr_Expr_Select* ret = cel_expr_Expr_Select_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Select_msg_init, NULL, 0,
                 arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE cel_expr_Expr_Select* cel_expr_Expr_Select_parse_ex(
    const char* buf, size_t size, const upb_ExtensionRegistry* extreg,
    int options, upb_Arena* arena) {
  cel_expr_Expr_Select* ret = cel_expr_Expr_Select_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Select_msg_init, extreg,
                 options, arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE char* cel_expr_Expr_Select_serialize(const cel_expr_Expr_Select* msg,
                                      upb_Arena* arena, size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Select_msg_init, 0, arena, &ptr, len);
  return ptr;
}
UPB_INLINE char* cel_expr_Expr_Select_serialize_ex(const cel_expr_Expr_Select* msg,
                                         int options, upb_Arena* arena,
                                         size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Select_msg_init, options, arena, &ptr, len);
  return ptr;
}
UPB_INLINE void cel_expr_Expr_Select_clear_operand(cel_expr_Expr_Select* msg) {
  const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, UPB_SIZE(9, 10), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Select_operand(const cel_expr_Expr_Select* msg) {
  const cel_expr_Expr* default_val = NULL;
  const cel_expr_Expr* ret;
  const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, UPB_SIZE(9, 10), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_Select_has_operand(const cel_expr_Expr_Select* msg) {
  const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, UPB_SIZE(9, 10), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_Select_clear_field(cel_expr_Expr_Select* msg) {
  const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE upb_StringView cel_expr_Expr_Select_field(const cel_expr_Expr_Select* msg) {
  upb_StringView default_val = upb_StringView_FromString("");
  upb_StringView ret;
  const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE void cel_expr_Expr_Select_clear_test_only(cel_expr_Expr_Select* msg) {
  const upb_MiniTableField field = {3, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE bool cel_expr_Expr_Select_test_only(const cel_expr_Expr_Select* msg) {
  bool default_val = false;
  bool ret;
  const upb_MiniTableField field = {3, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}

UPB_INLINE void cel_expr_Expr_Select_set_operand(cel_expr_Expr_Select* msg, cel_expr_Expr* value) {
  const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, UPB_SIZE(9, 10), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Select_mutable_operand(
    cel_expr_Expr_Select* msg, upb_Arena* arena) {
  struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Select_operand(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena);
    if (sub) cel_expr_Expr_Select_set_operand(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_Select_set_field(cel_expr_Expr_Select* msg, upb_StringView value) {
  const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_Expr_Select_set_test_only(cel_expr_Expr_Select* msg, bool value) {
  const upb_MiniTableField field = {3, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}

/* cel.expr.Expr.Call */
UPB_INLINE cel_expr_Expr_Call* cel_expr_Expr_Call_new(upb_Arena* arena) {
  return (cel_expr_Expr_Call*)_upb_Message_New(&cel__expr__Expr__Call_msg_init, arena);
}
UPB_INLINE cel_expr_Expr_Call* cel_expr_Expr_Call_parse(const char* buf, size_t size,
                                        upb_Arena* arena) {
  cel_expr_Expr_Call* ret = cel_expr_Expr_Call_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Call_msg_init, NULL, 0,
                 arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE cel_expr_Expr_Call* cel_expr_Expr_Call_parse_ex(
    const char* buf, size_t size, const upb_ExtensionRegistry* extreg,
    int options, upb_Arena* arena) {
  cel_expr_Expr_Call* ret = cel_expr_Expr_Call_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Call_msg_init, extreg,
                 options, arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE char* cel_expr_Expr_Call_serialize(const cel_expr_Expr_Call* msg,
                                      upb_Arena* arena, size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Call_msg_init, 0, arena, &ptr, len);
  return ptr;
}
UPB_INLINE char* cel_expr_Expr_Call_serialize_ex(const cel_expr_Expr_Call* msg,
                                         int options, upb_Arena* arena,
                                         size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Call_msg_init, options, arena, &ptr, len);
  return ptr;
}
UPB_INLINE void cel_expr_Expr_Call_clear_target(cel_expr_Expr_Call* msg) {
  const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, UPB_SIZE(9, 10), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Call_target(const cel_expr_Expr_Call* msg) {
  const cel_expr_Expr* default_val = NULL;
  const cel_expr_Expr* ret;
  const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, UPB_SIZE(9, 10), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_Call_has_target(const cel_expr_Expr_Call* msg) {
  const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, UPB_SIZE(9, 10), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_Call_clear_function(cel_expr_Expr_Call* msg) {
  const upb_MiniTableField field = {2, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE upb_StringView cel_expr_Expr_Call_function(const cel_expr_Expr_Call* msg) {
  upb_StringView default_val = upb_StringView_FromString("");
  upb_StringView ret;
  const upb_MiniTableField field = {2, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE void cel_expr_Expr_Call_clear_args(cel_expr_Expr_Call* msg) {
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, UPB_SIZE(4, 6), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr* const* cel_expr_Expr_Call_args(const cel_expr_Expr_Call* msg,
                                                  size_t* size) {
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, UPB_SIZE(4, 6), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (const cel_expr_Expr* const*)upb_Array_DataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

//
UPB_INLINE const upb_Array* _cel_expr_Expr_Call_args_upb_array(
    const cel_expr_Expr_Call* msg, size_t* size) {
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, UPB_SIZE(4, 6), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}

UPB_INLINE upb_Array* _cel_expr_Expr_Call_args_mutable_upb_array(
    cel_expr_Expr_Call* msg, size_t* size, upb_Arena* arena) {
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, UPB_SIZE(4, 6), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
                                                       &field, arena);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}

UPB_INLINE void cel_expr_Expr_Call_set_target(cel_expr_Expr_Call* msg, cel_expr_Expr* value) {
  const upb_MiniTableField field = {1, UPB_SIZE(12, 32), 64, UPB_SIZE(9, 10), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Call_mutable_target(
    cel_expr_Expr_Call* msg, upb_Arena* arena) {
  struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Call_target(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena);
    if (sub) cel_expr_Expr_Call_set_target(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_Call_set_function(cel_expr_Expr_Call* msg, upb_StringView value) {
  const upb_MiniTableField field = {2, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE cel_expr_Expr** cel_expr_Expr_Call_mutable_args(cel_expr_Expr_Call* msg,
                                              size_t* size) {
  upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, UPB_SIZE(4, 6), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (cel_expr_Expr**)upb_Array_MutableDataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

UPB_INLINE cel_expr_Expr** cel_expr_Expr_Call_resize_args(cel_expr_Expr_Call* msg,
                                             size_t size,
                                             upb_Arena* arena) {
  upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, UPB_SIZE(4, 6), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  return (cel_expr_Expr**)upb_Message_ResizeArrayUninitialized(
      UPB_UPCAST(msg), &field, size, arena);
}
UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Call_add_args(
    cel_expr_Expr_Call* msg, upb_Arena* arena) {
  upb_MiniTableField field = {3, UPB_SIZE(16, 40), 0, UPB_SIZE(4, 6), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
      UPB_UPCAST(msg), &field, arena);
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
                  arr, arr->UPB_PRIVATE(size) + 1, arena)) {
    return NULL;
  }
  struct cel_expr_Expr* sub =
      (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena);
  if (!arr || !sub) return NULL;
  UPB_PRIVATE(_upb_Array_Set)
  (arr, arr->UPB_PRIVATE(size) - 1, &sub, sizeof(sub));
  return sub;
}

/* cel.expr.Expr.CreateList */
UPB_INLINE cel_expr_Expr_CreateList* cel_expr_Expr_CreateList_new(upb_Arena* arena) {
  return (cel_expr_Expr_CreateList*)_upb_Message_New(&cel__expr__Expr__CreateList_msg_init, arena);
}
UPB_INLINE cel_expr_Expr_CreateList* cel_expr_Expr_CreateList_parse(const char* buf, size_t size,
                                        upb_Arena* arena) {
  cel_expr_Expr_CreateList* ret = cel_expr_Expr_CreateList_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__CreateList_msg_init, NULL, 0,
                 arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE cel_expr_Expr_CreateList* cel_expr_Expr_CreateList_parse_ex(
    const char* buf, size_t size, const upb_ExtensionRegistry* extreg,
    int options, upb_Arena* arena) {
  cel_expr_Expr_CreateList* ret = cel_expr_Expr_CreateList_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__CreateList_msg_init, extreg,
                 options, arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE char* cel_expr_Expr_CreateList_serialize(const cel_expr_Expr_CreateList* msg,
                                      upb_Arena* arena, size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__CreateList_msg_init, 0, arena, &ptr, len);
  return ptr;
}
UPB_INLINE char* cel_expr_Expr_CreateList_serialize_ex(const cel_expr_Expr_CreateList* msg,
                                         int options, upb_Arena* arena,
                                         size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__CreateList_msg_init, options, arena, &ptr, len);
  return ptr;
}
UPB_INLINE void cel_expr_Expr_CreateList_clear_elements(cel_expr_Expr_CreateList* msg) {
  const upb_MiniTableField field = {1, 8, 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr* const* cel_expr_Expr_CreateList_elements(const cel_expr_Expr_CreateList* msg,
                                                  size_t* size) {
  const upb_MiniTableField field = {1, 8, 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (const cel_expr_Expr* const*)upb_Array_DataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

//
UPB_INLINE const upb_Array* _cel_expr_Expr_CreateList_elements_upb_array(
    const cel_expr_Expr_CreateList* msg, size_t* size) {
  const upb_MiniTableField field = {1, 8, 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}

UPB_INLINE upb_Array* _cel_expr_Expr_CreateList_elements_mutable_upb_array(
    cel_expr_Expr_CreateList* msg, size_t* size, upb_Arena* arena) {
  const upb_MiniTableField field = {1, 8, 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
                                                       &field, arena);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}
UPB_INLINE void cel_expr_Expr_CreateList_clear_optional_indices(cel_expr_Expr_CreateList* msg) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE int32_t const* cel_expr_Expr_CreateList_optional_indices(const cel_expr_Expr_CreateList* msg,
                                                  size_t* size) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (int32_t const*)upb_Array_DataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

//
UPB_INLINE const upb_Array* _cel_expr_Expr_CreateList_optional_indices_upb_array(
    const cel_expr_Expr_CreateList* msg, size_t* size) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}

UPB_INLINE upb_Array* _cel_expr_Expr_CreateList_optional_indices_mutable_upb_array(
    cel_expr_Expr_CreateList* msg, size_t* size, upb_Arena* arena) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
                                                       &field, arena);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}

UPB_INLINE cel_expr_Expr** cel_expr_Expr_CreateList_mutable_elements(cel_expr_Expr_CreateList* msg,
                                              size_t* size) {
  upb_MiniTableField field = {1, 8, 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (cel_expr_Expr**)upb_Array_MutableDataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

UPB_INLINE cel_expr_Expr** cel_expr_Expr_CreateList_resize_elements(cel_expr_Expr_CreateList* msg,
                                             size_t size,
                                             upb_Arena* arena) {
  upb_MiniTableField field = {1, 8, 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  return (cel_expr_Expr**)upb_Message_ResizeArrayUninitialized(
      UPB_UPCAST(msg), &field, size, arena);
}
UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_CreateList_add_elements(
    cel_expr_Expr_CreateList* msg, upb_Arena* arena) {
  upb_MiniTableField field = {1, 8, 0, 6, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
      UPB_UPCAST(msg), &field, arena);
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
                  arr, arr->UPB_PRIVATE(size) + 1, arena)) {
    return NULL;
  }
  struct cel_expr_Expr* sub =
      (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena);
  if (!arr || !sub) return NULL;
  UPB_PRIVATE(_upb_Array_Set)
  (arr, arr->UPB_PRIVATE(size) - 1, &sub, sizeof(sub));
  return sub;
}
UPB_INLINE int32_t* cel_expr_Expr_CreateList_mutable_optional_indices(cel_expr_Expr_CreateList* msg,
                                              size_t* size) {
  upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (int32_t*)upb_Array_MutableDataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

UPB_INLINE int32_t* cel_expr_Expr_CreateList_resize_optional_indices(cel_expr_Expr_CreateList* msg,
                                             size_t size,
                                             upb_Arena* arena) {
  upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return (int32_t*)upb_Message_ResizeArrayUninitialized(
      UPB_UPCAST(msg), &field, size, arena);
}
UPB_INLINE bool cel_expr_Expr_CreateList_add_optional_indices(cel_expr_Expr_CreateList* msg, int32_t val,
                                      upb_Arena* arena) {
  upb_MiniTableField field = {2, UPB_SIZE(12, 16), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
      UPB_UPCAST(msg), &field, arena);
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
                  arr, arr->UPB_PRIVATE(size) + 1, arena)) {
    return false;
  }
  UPB_PRIVATE(_upb_Array_Set)
  (arr, arr->UPB_PRIVATE(size) - 1, &val, sizeof(val));
  return true;
}

/* cel.expr.Expr.CreateStruct */
UPB_INLINE cel_expr_Expr_CreateStruct* cel_expr_Expr_CreateStruct_new(upb_Arena* arena) {
  return (cel_expr_Expr_CreateStruct*)_upb_Message_New(&cel__expr__Expr__CreateStruct_msg_init, arena);
}
UPB_INLINE cel_expr_Expr_CreateStruct* cel_expr_Expr_CreateStruct_parse(const char* buf, size_t size,
                                        upb_Arena* arena) {
  cel_expr_Expr_CreateStruct* ret = cel_expr_Expr_CreateStruct_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__CreateStruct_msg_init, NULL, 0,
                 arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE cel_expr_Expr_CreateStruct* cel_expr_Expr_CreateStruct_parse_ex(
    const char* buf, size_t size, const upb_ExtensionRegistry* extreg,
    int options, upb_Arena* arena) {
  cel_expr_Expr_CreateStruct* ret = cel_expr_Expr_CreateStruct_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__CreateStruct_msg_init, extreg,
                 options, arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE char* cel_expr_Expr_CreateStruct_serialize(const cel_expr_Expr_CreateStruct* msg,
                                      upb_Arena* arena, size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__CreateStruct_msg_init, 0, arena, &ptr, len);
  return ptr;
}
UPB_INLINE char* cel_expr_Expr_CreateStruct_serialize_ex(const cel_expr_Expr_CreateStruct* msg,
                                         int options, upb_Arena* arena,
                                         size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__CreateStruct_msg_init, options, arena, &ptr, len);
  return ptr;
}
UPB_INLINE void cel_expr_Expr_CreateStruct_clear_message_name(cel_expr_Expr_CreateStruct* msg) {
  const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE upb_StringView cel_expr_Expr_CreateStruct_message_name(const cel_expr_Expr_CreateStruct* msg) {
  upb_StringView default_val = upb_StringView_FromString("");
  upb_StringView ret;
  const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE void cel_expr_Expr_CreateStruct_clear_entries(cel_expr_Expr_CreateStruct* msg) {
  const upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr_CreateStruct_Entry* const* cel_expr_Expr_CreateStruct_entries(const cel_expr_Expr_CreateStruct* msg,
                                                  size_t* size) {
  const upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct__Entry_msg_init);
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (const cel_expr_Expr_CreateStruct_Entry* const*)upb_Array_DataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

//
UPB_INLINE const upb_Array* _cel_expr_Expr_CreateStruct_entries_upb_array(
    const cel_expr_Expr_CreateStruct* msg, size_t* size) {
  const upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct__Entry_msg_init);
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}

UPB_INLINE upb_Array* _cel_expr_Expr_CreateStruct_entries_mutable_upb_array(
    cel_expr_Expr_CreateStruct* msg, size_t* size, upb_Arena* arena) {
  const upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct__Entry_msg_init);
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
                                                       &field, arena);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}

UPB_INLINE void cel_expr_Expr_CreateStruct_set_message_name(cel_expr_Expr_CreateStruct* msg, upb_StringView value) {
  const upb_MiniTableField field = {1, UPB_SIZE(12, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE cel_expr_Expr_CreateStruct_Entry** cel_expr_Expr_CreateStruct_mutable_entries(cel_expr_Expr_CreateStruct* msg,
                                              size_t* size) {
  upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct__Entry_msg_init);
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (cel_expr_Expr_CreateStruct_Entry**)upb_Array_MutableDataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

UPB_INLINE cel_expr_Expr_CreateStruct_Entry** cel_expr_Expr_CreateStruct_resize_entries(cel_expr_Expr_CreateStruct* msg,
                                             size_t size,
                                             upb_Arena* arena) {
  upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct__Entry_msg_init);
  return (cel_expr_Expr_CreateStruct_Entry**)upb_Message_ResizeArrayUninitialized(
      UPB_UPCAST(msg), &field, size, arena);
}
UPB_INLINE struct cel_expr_Expr_CreateStruct_Entry* cel_expr_Expr_CreateStruct_add_entries(
    cel_expr_Expr_CreateStruct* msg, upb_Arena* arena) {
  upb_MiniTableField field = {2, UPB_SIZE(8, 24), 0, 3, 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr__CreateStruct__Entry_msg_init);
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
      UPB_UPCAST(msg), &field, arena);
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
                  arr, arr->UPB_PRIVATE(size) + 1, arena)) {
    return NULL;
  }
  struct cel_expr_Expr_CreateStruct_Entry* sub =
      (struct cel_expr_Expr_CreateStruct_Entry*)_upb_Message_New(&cel__expr__Expr__CreateStruct__Entry_msg_init, arena);
  if (!arr || !sub) return NULL;
  UPB_PRIVATE(_upb_Array_Set)
  (arr, arr->UPB_PRIVATE(size) - 1, &sub, sizeof(sub));
  return sub;
}

/* cel.expr.Expr.CreateStruct.Entry */
UPB_INLINE cel_expr_Expr_CreateStruct_Entry* cel_expr_Expr_CreateStruct_Entry_new(upb_Arena* arena) {
  return (cel_expr_Expr_CreateStruct_Entry*)_upb_Message_New(&cel__expr__Expr__CreateStruct__Entry_msg_init, arena);
}
UPB_INLINE cel_expr_Expr_CreateStruct_Entry* cel_expr_Expr_CreateStruct_Entry_parse(const char* buf, size_t size,
                                        upb_Arena* arena) {
  cel_expr_Expr_CreateStruct_Entry* ret = cel_expr_Expr_CreateStruct_Entry_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__CreateStruct__Entry_msg_init, NULL, 0,
                 arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE cel_expr_Expr_CreateStruct_Entry* cel_expr_Expr_CreateStruct_Entry_parse_ex(
    const char* buf, size_t size, const upb_ExtensionRegistry* extreg,
    int options, upb_Arena* arena) {
  cel_expr_Expr_CreateStruct_Entry* ret = cel_expr_Expr_CreateStruct_Entry_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__CreateStruct__Entry_msg_init, extreg,
                 options, arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE char* cel_expr_Expr_CreateStruct_Entry_serialize(const cel_expr_Expr_CreateStruct_Entry* msg,
                                      upb_Arena* arena, size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__CreateStruct__Entry_msg_init, 0, arena, &ptr, len);
  return ptr;
}
UPB_INLINE char* cel_expr_Expr_CreateStruct_Entry_serialize_ex(const cel_expr_Expr_CreateStruct_Entry* msg,
                                         int options, upb_Arena* arena,
                                         size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__CreateStruct__Entry_msg_init, options, arena, &ptr, len);
  return ptr;
}
typedef enum {
  cel_expr_Expr_CreateStruct_Entry_key_kind_field_key = 2,
  cel_expr_Expr_CreateStruct_Entry_key_kind_map_key = 3,
  cel_expr_Expr_CreateStruct_Entry_key_kind_NOT_SET = 0
} cel_expr_Expr_CreateStruct_Entry_key_kind_oneofcases;

UPB_INLINE cel_expr_Expr_CreateStruct_Entry_key_kind_oneofcases
cel_expr_Expr_CreateStruct_Entry_key_kind_case(const cel_expr_Expr_CreateStruct_Entry* msg) {
  const upb_MiniTableField field = {2, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  return (cel_expr_Expr_CreateStruct_Entry_key_kind_oneofcases)upb_Message_WhichOneofFieldNumber(
      UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_clear_key_kind(cel_expr_Expr_CreateStruct_Entry* msg) {
  const upb_MiniTableField field = {2, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearOneof(UPB_UPCAST(msg), &cel__expr__Expr__CreateStruct__Entry_msg_init, &field);
}
UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_clear_id(cel_expr_Expr_CreateStruct_Entry* msg) {
  const upb_MiniTableField field = {1, 32, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE int64_t cel_expr_Expr_CreateStruct_Entry_id(const cel_expr_Expr_CreateStruct_Entry* msg) {
  int64_t default_val = (int64_t)0ll;
  int64_t ret;
  const upb_MiniTableField field = {1, 32, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_clear_field_key(cel_expr_Expr_CreateStruct_Entry* msg) {
  const upb_MiniTableField field = {2, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE upb_StringView cel_expr_Expr_CreateStruct_Entry_field_key(const cel_expr_Expr_CreateStruct_Entry* msg) {
  upb_StringView default_val = upb_StringView_FromString("");
  upb_StringView ret;
  const upb_MiniTableField field = {2, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_CreateStruct_Entry_has_field_key(const cel_expr_Expr_CreateStruct_Entry* msg) {
  const upb_MiniTableField field = {2, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_clear_map_key(cel_expr_Expr_CreateStruct_Entry* msg) {
  const upb_MiniTableField field = {3, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), UPB_SIZE(9, 10), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr* cel_expr_Expr_CreateStruct_Entry_map_key(const cel_expr_Expr_CreateStruct_Entry* msg) {
  const cel_expr_Expr* default_val = NULL;
  const cel_expr_Expr* ret;
  const upb_MiniTableField field = {3, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), UPB_SIZE(9, 10), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_CreateStruct_Entry_has_map_key(const cel_expr_Expr_CreateStruct_Entry* msg) {
  const upb_MiniTableField field = {3, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), UPB_SIZE(9, 10), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_clear_value(cel_expr_Expr_CreateStruct_Entry* msg) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 64, UPB_SIZE(7, 9), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr* cel_expr_Expr_CreateStruct_Entry_value(const cel_expr_Expr_CreateStruct_Entry* msg) {
  const cel_expr_Expr* default_val = NULL;
  const cel_expr_Expr* ret;
  const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 64, UPB_SIZE(7, 9), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_CreateStruct_Entry_has_value(const cel_expr_Expr_CreateStruct_Entry* msg) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 64, UPB_SIZE(7, 9), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_clear_optional_entry(cel_expr_Expr_CreateStruct_Entry* msg) {
  const upb_MiniTableField field = {5, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE bool cel_expr_Expr_CreateStruct_Entry_optional_entry(const cel_expr_Expr_CreateStruct_Entry* msg) {
  bool default_val = false;
  bool ret;
  const upb_MiniTableField field = {5, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}

UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_set_id(cel_expr_Expr_CreateStruct_Entry* msg, int64_t value) {
  const upb_MiniTableField field = {1, 32, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_set_field_key(cel_expr_Expr_CreateStruct_Entry* msg, upb_StringView value) {
  const upb_MiniTableField field = {2, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_set_map_key(cel_expr_Expr_CreateStruct_Entry* msg, cel_expr_Expr* value) {
  const upb_MiniTableField field = {3, UPB_SIZE(20, 16), UPB_SIZE(-17, -13), UPB_SIZE(9, 10), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_CreateStruct_Entry_mutable_map_key(
    cel_expr_Expr_CreateStruct_Entry* msg, upb_Arena* arena) {
  struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_CreateStruct_Entry_map_key(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena);
    if (sub) cel_expr_Expr_CreateStruct_Entry_set_map_key(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_set_value(cel_expr_Expr_CreateStruct_Entry* msg, cel_expr_Expr* value) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 40), 64, UPB_SIZE(7, 9), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_CreateStruct_Entry_mutable_value(
    cel_expr_Expr_CreateStruct_Entry* msg, upb_Arena* arena) {
  struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_CreateStruct_Entry_value(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena);
    if (sub) cel_expr_Expr_CreateStruct_Entry_set_value(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_CreateStruct_Entry_set_optional_entry(cel_expr_Expr_CreateStruct_Entry* msg, bool value) {
  const upb_MiniTableField field = {5, 9, 0, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}

/* cel.expr.Expr.Comprehension */
UPB_INLINE cel_expr_Expr_Comprehension* cel_expr_Expr_Comprehension_new(upb_Arena* arena) {
  return (cel_expr_Expr_Comprehension*)_upb_Message_New(&cel__expr__Expr__Comprehension_msg_init, arena);
}
UPB_INLINE cel_expr_Expr_Comprehension* cel_expr_Expr_Comprehension_parse(const char* buf, size_t size,
                                        upb_Arena* arena) {
  cel_expr_Expr_Comprehension* ret = cel_expr_Expr_Comprehension_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Comprehension_msg_init, NULL, 0,
                 arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE cel_expr_Expr_Comprehension* cel_expr_Expr_Comprehension_parse_ex(
    const char* buf, size_t size, const upb_ExtensionRegistry* extreg,
    int options, upb_Arena* arena) {
  cel_expr_Expr_Comprehension* ret = cel_expr_Expr_Comprehension_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Expr__Comprehension_msg_init, extreg,
                 options, arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE char* cel_expr_Expr_Comprehension_serialize(const cel_expr_Expr_Comprehension* msg,
                                      upb_Arena* arena, size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Comprehension_msg_init, 0, arena, &ptr, len);
  return ptr;
}
UPB_INLINE char* cel_expr_Expr_Comprehension_serialize_ex(const cel_expr_Expr_Comprehension* msg,
                                         int options, upb_Arena* arena,
                                         size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Expr__Comprehension_msg_init, options, arena, &ptr, len);
  return ptr;
}
UPB_INLINE void cel_expr_Expr_Comprehension_clear_iter_var(cel_expr_Expr_Comprehension* msg) {
  const upb_MiniTableField field = {1, UPB_SIZE(32, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE upb_StringView cel_expr_Expr_Comprehension_iter_var(const cel_expr_Expr_Comprehension* msg) {
  upb_StringView default_val = upb_StringView_FromString("");
  upb_StringView ret;
  const upb_MiniTableField field = {1, UPB_SIZE(32, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE void cel_expr_Expr_Comprehension_clear_iter_range(cel_expr_Expr_Comprehension* msg) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 64), 64, 21, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Comprehension_iter_range(const cel_expr_Expr_Comprehension* msg) {
  const cel_expr_Expr* default_val = NULL;
  const cel_expr_Expr* ret;
  const upb_MiniTableField field = {2, UPB_SIZE(12, 64), 64, 21, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_Comprehension_has_iter_range(const cel_expr_Expr_Comprehension* msg) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 64), 64, 21, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_Comprehension_clear_accu_var(cel_expr_Expr_Comprehension* msg) {
  const upb_MiniTableField field = {3, UPB_SIZE(40, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE upb_StringView cel_expr_Expr_Comprehension_accu_var(const cel_expr_Expr_Comprehension* msg) {
  upb_StringView default_val = upb_StringView_FromString("");
  upb_StringView ret;
  const upb_MiniTableField field = {3, UPB_SIZE(40, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE void cel_expr_Expr_Comprehension_clear_accu_init(cel_expr_Expr_Comprehension* msg) {
  const upb_MiniTableField field = {4, UPB_SIZE(16, 72), 65, UPB_SIZE(16, 17), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Comprehension_accu_init(const cel_expr_Expr_Comprehension* msg) {
  const cel_expr_Expr* default_val = NULL;
  const cel_expr_Expr* ret;
  const upb_MiniTableField field = {4, UPB_SIZE(16, 72), 65, UPB_SIZE(16, 17), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_Comprehension_has_accu_init(const cel_expr_Expr_Comprehension* msg) {
  const upb_MiniTableField field = {4, UPB_SIZE(16, 72), 65, UPB_SIZE(16, 17), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_Comprehension_clear_loop_condition(cel_expr_Expr_Comprehension* msg) {
  const upb_MiniTableField field = {5, UPB_SIZE(20, 80), 66, UPB_SIZE(14, 16), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Comprehension_loop_condition(const cel_expr_Expr_Comprehension* msg) {
  const cel_expr_Expr* default_val = NULL;
  const cel_expr_Expr* ret;
  const upb_MiniTableField field = {5, UPB_SIZE(20, 80), 66, UPB_SIZE(14, 16), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_Comprehension_has_loop_condition(const cel_expr_Expr_Comprehension* msg) {
  const upb_MiniTableField field = {5, UPB_SIZE(20, 80), 66, UPB_SIZE(14, 16), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_Comprehension_clear_loop_step(cel_expr_Expr_Comprehension* msg) {
  const upb_MiniTableField field = {6, UPB_SIZE(24, 88), 67, UPB_SIZE(12, 15), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Comprehension_loop_step(const cel_expr_Expr_Comprehension* msg) {
  const cel_expr_Expr* default_val = NULL;
  const cel_expr_Expr* ret;
  const upb_MiniTableField field = {6, UPB_SIZE(24, 88), 67, UPB_SIZE(12, 15), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_Comprehension_has_loop_step(const cel_expr_Expr_Comprehension* msg) {
  const upb_MiniTableField field = {6, UPB_SIZE(24, 88), 67, UPB_SIZE(12, 15), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_Comprehension_clear_result(cel_expr_Expr_Comprehension* msg) {
  const upb_MiniTableField field = {7, UPB_SIZE(28, 96), 68, UPB_SIZE(10, 14), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_Expr* cel_expr_Expr_Comprehension_result(const cel_expr_Expr_Comprehension* msg) {
  const cel_expr_Expr* default_val = NULL;
  const cel_expr_Expr* ret;
  const upb_MiniTableField field = {7, UPB_SIZE(28, 96), 68, UPB_SIZE(10, 14), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Expr_Comprehension_has_result(const cel_expr_Expr_Comprehension* msg) {
  const upb_MiniTableField field = {7, UPB_SIZE(28, 96), 68, UPB_SIZE(10, 14), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Expr_Comprehension_clear_iter_var2(cel_expr_Expr_Comprehension* msg) {
  const upb_MiniTableField field = {8, 48, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE upb_StringView cel_expr_Expr_Comprehension_iter_var2(const cel_expr_Expr_Comprehension* msg) {
  upb_StringView default_val = upb_StringView_FromString("");
  upb_StringView ret;
  const upb_MiniTableField field = {8, 48, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}

UPB_INLINE void cel_expr_Expr_Comprehension_set_iter_var(cel_expr_Expr_Comprehension* msg, upb_StringView value) {
  const upb_MiniTableField field = {1, UPB_SIZE(32, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_Expr_Comprehension_set_iter_range(cel_expr_Expr_Comprehension* msg, cel_expr_Expr* value) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 64), 64, 21, 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Comprehension_mutable_iter_range(
    cel_expr_Expr_Comprehension* msg, upb_Arena* arena) {
  struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Comprehension_iter_range(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena);
    if (sub) cel_expr_Expr_Comprehension_set_iter_range(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_Comprehension_set_accu_var(cel_expr_Expr_Comprehension* msg, upb_StringView value) {
  const upb_MiniTableField field = {3, UPB_SIZE(40, 32), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_Expr_Comprehension_set_accu_init(cel_expr_Expr_Comprehension* msg, cel_expr_Expr* value) {
  const upb_MiniTableField field = {4, UPB_SIZE(16, 72), 65, UPB_SIZE(16, 17), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Comprehension_mutable_accu_init(
    cel_expr_Expr_Comprehension* msg, upb_Arena* arena) {
  struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Comprehension_accu_init(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena);
    if (sub) cel_expr_Expr_Comprehension_set_accu_init(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_Comprehension_set_loop_condition(cel_expr_Expr_Comprehension* msg, cel_expr_Expr* value) {
  const upb_MiniTableField field = {5, UPB_SIZE(20, 80), 66, UPB_SIZE(14, 16), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Comprehension_mutable_loop_condition(
    cel_expr_Expr_Comprehension* msg, upb_Arena* arena) {
  struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Comprehension_loop_condition(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena);
    if (sub) cel_expr_Expr_Comprehension_set_loop_condition(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_Comprehension_set_loop_step(cel_expr_Expr_Comprehension* msg, cel_expr_Expr* value) {
  const upb_MiniTableField field = {6, UPB_SIZE(24, 88), 67, UPB_SIZE(12, 15), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Comprehension_mutable_loop_step(
    cel_expr_Expr_Comprehension* msg, upb_Arena* arena) {
  struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Comprehension_loop_step(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena);
    if (sub) cel_expr_Expr_Comprehension_set_loop_step(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_Comprehension_set_result(cel_expr_Expr_Comprehension* msg, cel_expr_Expr* value) {
  const upb_MiniTableField field = {7, UPB_SIZE(28, 96), 68, UPB_SIZE(10, 14), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_Expr* cel_expr_Expr_Comprehension_mutable_result(
    cel_expr_Expr_Comprehension* msg, upb_Arena* arena) {
  struct cel_expr_Expr* sub = (struct cel_expr_Expr*)cel_expr_Expr_Comprehension_result(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_Expr*)_upb_Message_New(&cel__expr__Expr_msg_init, arena);
    if (sub) cel_expr_Expr_Comprehension_set_result(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Expr_Comprehension_set_iter_var2(cel_expr_Expr_Comprehension* msg, upb_StringView value) {
  const upb_MiniTableField field = {8, 48, 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}

/* cel.expr.Constant */
UPB_INLINE cel_expr_Constant* cel_expr_Constant_new(upb_Arena* arena) {
  return (cel_expr_Constant*)_upb_Message_New(&cel__expr__Constant_msg_init, arena);
}
UPB_INLINE cel_expr_Constant* cel_expr_Constant_parse(const char* buf, size_t size,
                                        upb_Arena* arena) {
  cel_expr_Constant* ret = cel_expr_Constant_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Constant_msg_init, NULL, 0,
                 arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE cel_expr_Constant* cel_expr_Constant_parse_ex(
    const char* buf, size_t size, const upb_ExtensionRegistry* extreg,
    int options, upb_Arena* arena) {
  cel_expr_Constant* ret = cel_expr_Constant_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__Constant_msg_init, extreg,
                 options, arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE char* cel_expr_Constant_serialize(const cel_expr_Constant* msg,
                                      upb_Arena* arena, size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Constant_msg_init, 0, arena, &ptr, len);
  return ptr;
}
UPB_INLINE char* cel_expr_Constant_serialize_ex(const cel_expr_Constant* msg,
                                         int options, upb_Arena* arena,
                                         size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__Constant_msg_init, options, arena, &ptr, len);
  return ptr;
}
typedef enum {
  cel_expr_Constant_constant_kind_null_value = 1,
  cel_expr_Constant_constant_kind_bool_value = 2,
  cel_expr_Constant_constant_kind_int64_value = 3,
  cel_expr_Constant_constant_kind_uint64_value = 4,
  cel_expr_Constant_constant_kind_double_value = 5,
  cel_expr_Constant_constant_kind_string_value = 6,
  cel_expr_Constant_constant_kind_bytes_value = 7,
  cel_expr_Constant_constant_kind_duration_value = 8,
  cel_expr_Constant_constant_kind_timestamp_value = 9,
  cel_expr_Constant_constant_kind_NOT_SET = 0
} cel_expr_Constant_constant_kind_oneofcases;

UPB_INLINE cel_expr_Constant_constant_kind_oneofcases
cel_expr_Constant_constant_kind_case(const cel_expr_Constant* msg) {
  const upb_MiniTableField field = {1, 16, -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
  return (cel_expr_Constant_constant_kind_oneofcases)upb_Message_WhichOneofFieldNumber(
      UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Constant_clear_constant_kind(cel_expr_Constant* msg) {
  const upb_MiniTableField field = {1, 16, -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
  upb_Message_ClearOneof(UPB_UPCAST(msg), &cel__expr__Constant_msg_init, &field);
}
UPB_INLINE void cel_expr_Constant_clear_null_value(cel_expr_Constant* msg) {
  const upb_MiniTableField field = {1, 16, -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE int32_t cel_expr_Constant_null_value(const cel_expr_Constant* msg) {
  int32_t default_val = 0;
  int32_t ret;
  const upb_MiniTableField field = {1, 16, -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Constant_has_null_value(const cel_expr_Constant* msg) {
  const upb_MiniTableField field = {1, 16, -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Constant_clear_bool_value(cel_expr_Constant* msg) {
  const upb_MiniTableField field = {2, 16, -9, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE bool cel_expr_Constant_bool_value(const cel_expr_Constant* msg) {
  bool default_val = false;
  bool ret;
  const upb_MiniTableField field = {2, 16, -9, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Constant_has_bool_value(const cel_expr_Constant* msg) {
  const upb_MiniTableField field = {2, 16, -9, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Constant_clear_int64_value(cel_expr_Constant* msg) {
  const upb_MiniTableField field = {3, 16, -9, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE int64_t cel_expr_Constant_int64_value(const cel_expr_Constant* msg) {
  int64_t default_val = (int64_t)0ll;
  int64_t ret;
  const upb_MiniTableField field = {3, 16, -9, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Constant_has_int64_value(const cel_expr_Constant* msg) {
  const upb_MiniTableField field = {3, 16, -9, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Constant_clear_uint64_value(cel_expr_Constant* msg) {
  const upb_MiniTableField field = {4, 16, -9, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE uint64_t cel_expr_Constant_uint64_value(const cel_expr_Constant* msg) {
  uint64_t default_val = (uint64_t)0ull;
  uint64_t ret;
  const upb_MiniTableField field = {4, 16, -9, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Constant_has_uint64_value(const cel_expr_Constant* msg) {
  const upb_MiniTableField field = {4, 16, -9, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Constant_clear_double_value(cel_expr_Constant* msg) {
  const upb_MiniTableField field = {5, 16, -9, kUpb_NoSub, 1, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE double cel_expr_Constant_double_value(const cel_expr_Constant* msg) {
  double default_val = 0;
  double ret;
  const upb_MiniTableField field = {5, 16, -9, kUpb_NoSub, 1, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Constant_has_double_value(const cel_expr_Constant* msg) {
  const upb_MiniTableField field = {5, 16, -9, kUpb_NoSub, 1, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Constant_clear_string_value(cel_expr_Constant* msg) {
  const upb_MiniTableField field = {6, 16, -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE upb_StringView cel_expr_Constant_string_value(const cel_expr_Constant* msg) {
  upb_StringView default_val = upb_StringView_FromString("");
  upb_StringView ret;
  const upb_MiniTableField field = {6, 16, -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Constant_has_string_value(const cel_expr_Constant* msg) {
  const upb_MiniTableField field = {6, 16, -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Constant_clear_bytes_value(cel_expr_Constant* msg) {
  const upb_MiniTableField field = {7, 16, -9, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE upb_StringView cel_expr_Constant_bytes_value(const cel_expr_Constant* msg) {
  upb_StringView default_val = upb_StringView_FromString("");
  upb_StringView ret;
  const upb_MiniTableField field = {7, 16, -9, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Constant_has_bytes_value(const cel_expr_Constant* msg) {
  const upb_MiniTableField field = {7, 16, -9, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Constant_clear_duration_value(cel_expr_Constant* msg) {
  const upb_MiniTableField field = {8, 16, -9, UPB_SIZE(6, 7), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const struct google_protobuf_Duration* cel_expr_Constant_duration_value(const cel_expr_Constant* msg) {
  const struct google_protobuf_Duration* default_val = NULL;
  const struct google_protobuf_Duration* ret;
  const upb_MiniTableField field = {8, 16, -9, UPB_SIZE(6, 7), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__Duration_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Constant_has_duration_value(const cel_expr_Constant* msg) {
  const upb_MiniTableField field = {8, 16, -9, UPB_SIZE(6, 7), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE void cel_expr_Constant_clear_timestamp_value(cel_expr_Constant* msg) {
  const upb_MiniTableField field = {9, 16, -9, UPB_SIZE(4, 6), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const struct google_protobuf_Timestamp* cel_expr_Constant_timestamp_value(const cel_expr_Constant* msg) {
  const struct google_protobuf_Timestamp* default_val = NULL;
  const struct google_protobuf_Timestamp* ret;
  const upb_MiniTableField field = {9, 16, -9, UPB_SIZE(4, 6), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__Timestamp_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_Constant_has_timestamp_value(const cel_expr_Constant* msg) {
  const upb_MiniTableField field = {9, 16, -9, UPB_SIZE(4, 6), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}

UPB_INLINE void cel_expr_Constant_set_null_value(cel_expr_Constant* msg, int32_t value) {
  const upb_MiniTableField field = {1, 16, -9, kUpb_NoSub, 5, (int)kUpb_FieldMode_Scalar | (int)kUpb_LabelFlags_IsAlternate | ((int)kUpb_FieldRep_4Byte << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_Constant_set_bool_value(cel_expr_Constant* msg, bool value) {
  const upb_MiniTableField field = {2, 16, -9, kUpb_NoSub, 8, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_Constant_set_int64_value(cel_expr_Constant* msg, int64_t value) {
  const upb_MiniTableField field = {3, 16, -9, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_Constant_set_uint64_value(cel_expr_Constant* msg, uint64_t value) {
  const upb_MiniTableField field = {4, 16, -9, kUpb_NoSub, 4, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_Constant_set_double_value(cel_expr_Constant* msg, double value) {
  const upb_MiniTableField field = {5, 16, -9, kUpb_NoSub, 1, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_Constant_set_string_value(cel_expr_Constant* msg, upb_StringView value) {
  const upb_MiniTableField field = {6, 16, -9, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_Constant_set_bytes_value(cel_expr_Constant* msg, upb_StringView value) {
  const upb_MiniTableField field = {7, 16, -9, kUpb_NoSub, 12, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_Constant_set_duration_value(cel_expr_Constant* msg, struct google_protobuf_Duration* value) {
  const upb_MiniTableField field = {8, 16, -9, UPB_SIZE(6, 7), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__Duration_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct google_protobuf_Duration* cel_expr_Constant_mutable_duration_value(
    cel_expr_Constant* msg, upb_Arena* arena) {
  struct google_protobuf_Duration* sub = (struct google_protobuf_Duration*)cel_expr_Constant_duration_value(msg);
  if (sub == NULL) {
    sub = (struct google_protobuf_Duration*)_upb_Message_New(&google__protobuf__Duration_msg_init, arena);
    if (sub) cel_expr_Constant_set_duration_value(msg, sub);
  }
  return sub;
}
UPB_INLINE void cel_expr_Constant_set_timestamp_value(cel_expr_Constant* msg, struct google_protobuf_Timestamp* value) {
  const upb_MiniTableField field = {9, 16, -9, UPB_SIZE(4, 6), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&google__protobuf__Timestamp_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct google_protobuf_Timestamp* cel_expr_Constant_mutable_timestamp_value(
    cel_expr_Constant* msg, upb_Arena* arena) {
  struct google_protobuf_Timestamp* sub = (struct google_protobuf_Timestamp*)cel_expr_Constant_timestamp_value(msg);
  if (sub == NULL) {
    sub = (struct google_protobuf_Timestamp*)_upb_Message_New(&google__protobuf__Timestamp_msg_init, arena);
    if (sub) cel_expr_Constant_set_timestamp_value(msg, sub);
  }
  return sub;
}

/* cel.expr.SourceInfo */
UPB_INLINE cel_expr_SourceInfo* cel_expr_SourceInfo_new(upb_Arena* arena) {
  return (cel_expr_SourceInfo*)_upb_Message_New(&cel__expr__SourceInfo_msg_init, arena);
}
UPB_INLINE cel_expr_SourceInfo* cel_expr_SourceInfo_parse(const char* buf, size_t size,
                                        upb_Arena* arena) {
  cel_expr_SourceInfo* ret = cel_expr_SourceInfo_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__SourceInfo_msg_init, NULL, 0,
                 arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE cel_expr_SourceInfo* cel_expr_SourceInfo_parse_ex(
    const char* buf, size_t size, const upb_ExtensionRegistry* extreg,
    int options, upb_Arena* arena) {
  cel_expr_SourceInfo* ret = cel_expr_SourceInfo_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__SourceInfo_msg_init, extreg,
                 options, arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE char* cel_expr_SourceInfo_serialize(const cel_expr_SourceInfo* msg,
                                      upb_Arena* arena, size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__SourceInfo_msg_init, 0, arena, &ptr, len);
  return ptr;
}
UPB_INLINE char* cel_expr_SourceInfo_serialize_ex(const cel_expr_SourceInfo* msg,
                                         int options, upb_Arena* arena,
                                         size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__SourceInfo_msg_init, options, arena, &ptr, len);
  return ptr;
}
UPB_INLINE void cel_expr_SourceInfo_clear_syntax_version(cel_expr_SourceInfo* msg) {
  const upb_MiniTableField field = {1, UPB_SIZE(24, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE upb_StringView cel_expr_SourceInfo_syntax_version(const cel_expr_SourceInfo* msg) {
  upb_StringView default_val = upb_StringView_FromString("");
  upb_StringView ret;
  const upb_MiniTableField field = {1, UPB_SIZE(24, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE void cel_expr_SourceInfo_clear_location(cel_expr_SourceInfo* msg) {
  const upb_MiniTableField field = {2, UPB_SIZE(32, 24), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE upb_StringView cel_expr_SourceInfo_location(const cel_expr_SourceInfo* msg) {
  upb_StringView default_val = upb_StringView_FromString("");
  upb_StringView ret;
  const upb_MiniTableField field = {2, UPB_SIZE(32, 24), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE void cel_expr_SourceInfo_clear_line_offsets(cel_expr_SourceInfo* msg) {
  const upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE int32_t const* cel_expr_SourceInfo_line_offsets(const cel_expr_SourceInfo* msg,
                                                  size_t* size) {
  const upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (int32_t const*)upb_Array_DataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

//
UPB_INLINE const upb_Array* _cel_expr_SourceInfo_line_offsets_upb_array(
    const cel_expr_SourceInfo* msg, size_t* size) {
  const upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}

UPB_INLINE upb_Array* _cel_expr_SourceInfo_line_offsets_mutable_upb_array(
    cel_expr_SourceInfo* msg, size_t* size, upb_Arena* arena) {
  const upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
                                                       &field, arena);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}
UPB_INLINE void cel_expr_SourceInfo_clear_positions(cel_expr_SourceInfo* msg) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 9, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE size_t cel_expr_SourceInfo_positions_size(const cel_expr_SourceInfo* msg) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 9, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__PositionsEntry_msg_init);
  const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field);
  return map ? _upb_Map_Size(map) : 0;
}

UPB_INLINE bool cel_expr_SourceInfo_positions_get(const cel_expr_SourceInfo* msg,
                                      int64_t key, int32_t* val) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 9, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__PositionsEntry_msg_init);
  const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field);
  if (!map) return false;
  return _upb_Map_Get(map, &key, sizeof(int64_t), val, sizeof(int32_t));
}

UPB_INLINE bool cel_expr_SourceInfo_positions_next(const cel_expr_SourceInfo* msg,
                                       int64_t* key,
                                       int32_t* val,
                                       size_t* iter) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 9, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__PositionsEntry_msg_init);
  const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field);
  if (!map) return false;
  upb_MessageValue k;
  upb_MessageValue v;
  if (!upb_Map_Next(map, &k, &v, iter)) return false;
  memcpy(key, &k, sizeof(*key));
  memcpy(val, &v, sizeof(*val));
  return true;
}

// and ~ a upb_Map for mutable.
//
UPB_INLINE const upb_Map* _cel_expr_SourceInfo_positions_upb_map(cel_expr_SourceInfo* msg) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 9, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__PositionsEntry_msg_init);
  return upb_Message_GetMap(UPB_UPCAST(msg), &field);
}

UPB_INLINE upb_Map* _cel_expr_SourceInfo_positions_mutable_upb_map(
    cel_expr_SourceInfo* msg, upb_Arena* a) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 9, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__PositionsEntry_msg_init);
  return _upb_Message_GetOrCreateMutableMap(UPB_UPCAST(msg), &field,
                                            sizeof(int64_t), sizeof(int32_t), a);
}
UPB_INLINE void cel_expr_SourceInfo_clear_macro_calls(cel_expr_SourceInfo* msg) {
  const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, UPB_SIZE(7, 8), 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE size_t cel_expr_SourceInfo_macro_calls_size(const cel_expr_SourceInfo* msg) {
  const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, UPB_SIZE(7, 8), 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__MacroCallsEntry_msg_init);
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field);
  return map ? _upb_Map_Size(map) : 0;
}

UPB_INLINE bool cel_expr_SourceInfo_macro_calls_get(const cel_expr_SourceInfo* msg,
                                      int64_t key, cel_expr_Expr** val) {
  const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, UPB_SIZE(7, 8), 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__MacroCallsEntry_msg_init);
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field);
  if (!map) return false;
  return _upb_Map_Get(map, &key, sizeof(int64_t), val, sizeof(cel_expr_Expr*));
}

UPB_INLINE bool cel_expr_SourceInfo_macro_calls_next(const cel_expr_SourceInfo* msg,
                                       int64_t* key,
                                       const cel_expr_Expr** val,
                                       size_t* iter) {
  const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, UPB_SIZE(7, 8), 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__MacroCallsEntry_msg_init);
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  const upb_Map* map = upb_Message_GetMap(UPB_UPCAST(msg), &field);
  if (!map) return false;
  upb_MessageValue k;
  upb_MessageValue v;
  if (!upb_Map_Next(map, &k, &v, iter)) return false;
  memcpy(key, &k, sizeof(*key));
  memcpy(val, &v, sizeof(*val));
  return true;
}

// and ~ a upb_Map for mutable.
//
UPB_INLINE const upb_Map* _cel_expr_SourceInfo_macro_calls_upb_map(cel_expr_SourceInfo* msg) {
  const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, UPB_SIZE(7, 8), 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__MacroCallsEntry_msg_init);
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  return upb_Message_GetMap(UPB_UPCAST(msg), &field);
}

UPB_INLINE upb_Map* _cel_expr_SourceInfo_macro_calls_mutable_upb_map(
    cel_expr_SourceInfo* msg, upb_Arena* a) {
  const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, UPB_SIZE(7, 8), 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__MacroCallsEntry_msg_init);
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  return _upb_Message_GetOrCreateMutableMap(UPB_UPCAST(msg), &field,
                                            sizeof(int64_t), sizeof(cel_expr_Expr*), a);
}
UPB_INLINE void cel_expr_SourceInfo_clear_extensions(cel_expr_SourceInfo* msg) {
  const upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, UPB_SIZE(5, 7), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_SourceInfo_Extension* const* cel_expr_SourceInfo_extensions(const cel_expr_SourceInfo* msg,
                                                  size_t* size) {
  const upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, UPB_SIZE(5, 7), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension_msg_init);
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (const cel_expr_SourceInfo_Extension* const*)upb_Array_DataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

//
UPB_INLINE const upb_Array* _cel_expr_SourceInfo_extensions_upb_array(
    const cel_expr_SourceInfo* msg, size_t* size) {
  const upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, UPB_SIZE(5, 7), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension_msg_init);
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}

UPB_INLINE upb_Array* _cel_expr_SourceInfo_extensions_mutable_upb_array(
    cel_expr_SourceInfo* msg, size_t* size, upb_Arena* arena) {
  const upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, UPB_SIZE(5, 7), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension_msg_init);
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
                                                       &field, arena);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}

UPB_INLINE void cel_expr_SourceInfo_set_syntax_version(cel_expr_SourceInfo* msg, upb_StringView value) {
  const upb_MiniTableField field = {1, UPB_SIZE(24, 8), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_SourceInfo_set_location(cel_expr_SourceInfo* msg, upb_StringView value) {
  const upb_MiniTableField field = {2, UPB_SIZE(32, 24), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE int32_t* cel_expr_SourceInfo_mutable_line_offsets(cel_expr_SourceInfo* msg,
                                              size_t* size) {
  upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (int32_t*)upb_Array_MutableDataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

UPB_INLINE int32_t* cel_expr_SourceInfo_resize_line_offsets(cel_expr_SourceInfo* msg,
                                             size_t size,
                                             upb_Arena* arena) {
  upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return (int32_t*)upb_Message_ResizeArrayUninitialized(
      UPB_UPCAST(msg), &field, size, arena);
}
UPB_INLINE bool cel_expr_SourceInfo_add_line_offsets(cel_expr_SourceInfo* msg, int32_t val,
                                      upb_Arena* arena) {
  upb_MiniTableField field = {3, UPB_SIZE(8, 40), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
      UPB_UPCAST(msg), &field, arena);
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
                  arr, arr->UPB_PRIVATE(size) + 1, arena)) {
    return false;
  }
  UPB_PRIVATE(_upb_Array_Set)
  (arr, arr->UPB_PRIVATE(size) - 1, &val, sizeof(val));
  return true;
}
UPB_INLINE void cel_expr_SourceInfo_positions_clear(cel_expr_SourceInfo* msg) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 9, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__PositionsEntry_msg_init);
  upb_Map* map = (upb_Map*)upb_Message_GetMap(UPB_UPCAST(msg), &field);
  if (!map) return;
  _upb_Map_Clear(map);
}

UPB_INLINE bool cel_expr_SourceInfo_positions_set(cel_expr_SourceInfo* msg, int64_t key,
                                      int32_t val, upb_Arena* a) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 9, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__PositionsEntry_msg_init);
  upb_Map* map = _upb_Message_GetOrCreateMutableMap(
      UPB_UPCAST(msg), &field, sizeof(key), sizeof(val), a);
  return _upb_Map_Insert(map, &key, sizeof(key), &val, sizeof(val), a) !=
         kUpb_MapInsertStatus_OutOfMemory;
}

UPB_INLINE bool cel_expr_SourceInfo_positions_delete(cel_expr_SourceInfo* msg, int64_t key) {
  const upb_MiniTableField field = {4, UPB_SIZE(12, 48), 0, 9, 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__PositionsEntry_msg_init);
  upb_Map* map = (upb_Map*)upb_Message_GetMap(UPB_UPCAST(msg), &field);
  if (!map) return false;
  return _upb_Map_Delete(map, &key, sizeof(key), NULL);
}
UPB_INLINE void cel_expr_SourceInfo_macro_calls_clear(cel_expr_SourceInfo* msg) {
  const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, UPB_SIZE(7, 8), 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__MacroCallsEntry_msg_init);
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Map* map = (upb_Map*)upb_Message_GetMap(UPB_UPCAST(msg), &field);
  if (!map) return;
  _upb_Map_Clear(map);
}

UPB_INLINE bool cel_expr_SourceInfo_macro_calls_set(cel_expr_SourceInfo* msg, int64_t key,
                                      cel_expr_Expr* val, upb_Arena* a) {
  const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, UPB_SIZE(7, 8), 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__MacroCallsEntry_msg_init);
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Map* map = _upb_Message_GetOrCreateMutableMap(
      UPB_UPCAST(msg), &field, sizeof(key), sizeof(val), a);
  return _upb_Map_Insert(map, &key, sizeof(key), &val, sizeof(val), a) !=
         kUpb_MapInsertStatus_OutOfMemory;
}

UPB_INLINE bool cel_expr_SourceInfo_macro_calls_delete(cel_expr_SourceInfo* msg, int64_t key) {
  const upb_MiniTableField field = {5, UPB_SIZE(16, 56), 0, UPB_SIZE(7, 8), 11, (int)kUpb_FieldMode_Map | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__MacroCallsEntry_msg_init);
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__Expr_msg_init);
  upb_Map* map = (upb_Map*)upb_Message_GetMap(UPB_UPCAST(msg), &field);
  if (!map) return false;
  return _upb_Map_Delete(map, &key, sizeof(key), NULL);
}
UPB_INLINE cel_expr_SourceInfo_Extension** cel_expr_SourceInfo_mutable_extensions(cel_expr_SourceInfo* msg,
                                              size_t* size) {
  upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, UPB_SIZE(5, 7), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension_msg_init);
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (cel_expr_SourceInfo_Extension**)upb_Array_MutableDataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

UPB_INLINE cel_expr_SourceInfo_Extension** cel_expr_SourceInfo_resize_extensions(cel_expr_SourceInfo* msg,
                                             size_t size,
                                             upb_Arena* arena) {
  upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, UPB_SIZE(5, 7), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension_msg_init);
  return (cel_expr_SourceInfo_Extension**)upb_Message_ResizeArrayUninitialized(
      UPB_UPCAST(msg), &field, size, arena);
}
UPB_INLINE struct cel_expr_SourceInfo_Extension* cel_expr_SourceInfo_add_extensions(
    cel_expr_SourceInfo* msg, upb_Arena* arena) {
  upb_MiniTableField field = {6, UPB_SIZE(20, 64), 0, UPB_SIZE(5, 7), 11, (int)kUpb_FieldMode_Array | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension_msg_init);
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
      UPB_UPCAST(msg), &field, arena);
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
                  arr, arr->UPB_PRIVATE(size) + 1, arena)) {
    return NULL;
  }
  struct cel_expr_SourceInfo_Extension* sub =
      (struct cel_expr_SourceInfo_Extension*)_upb_Message_New(&cel__expr__SourceInfo__Extension_msg_init, arena);
  if (!arr || !sub) return NULL;
  UPB_PRIVATE(_upb_Array_Set)
  (arr, arr->UPB_PRIVATE(size) - 1, &sub, sizeof(sub));
  return sub;
}

/* cel.expr.SourceInfo.Extension */
UPB_INLINE cel_expr_SourceInfo_Extension* cel_expr_SourceInfo_Extension_new(upb_Arena* arena) {
  return (cel_expr_SourceInfo_Extension*)_upb_Message_New(&cel__expr__SourceInfo__Extension_msg_init, arena);
}
UPB_INLINE cel_expr_SourceInfo_Extension* cel_expr_SourceInfo_Extension_parse(const char* buf, size_t size,
                                        upb_Arena* arena) {
  cel_expr_SourceInfo_Extension* ret = cel_expr_SourceInfo_Extension_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__SourceInfo__Extension_msg_init, NULL, 0,
                 arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE cel_expr_SourceInfo_Extension* cel_expr_SourceInfo_Extension_parse_ex(
    const char* buf, size_t size, const upb_ExtensionRegistry* extreg,
    int options, upb_Arena* arena) {
  cel_expr_SourceInfo_Extension* ret = cel_expr_SourceInfo_Extension_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__SourceInfo__Extension_msg_init, extreg,
                 options, arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE char* cel_expr_SourceInfo_Extension_serialize(const cel_expr_SourceInfo_Extension* msg,
                                      upb_Arena* arena, size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__SourceInfo__Extension_msg_init, 0, arena, &ptr, len);
  return ptr;
}
UPB_INLINE char* cel_expr_SourceInfo_Extension_serialize_ex(const cel_expr_SourceInfo_Extension* msg,
                                         int options, upb_Arena* arena,
                                         size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__SourceInfo__Extension_msg_init, options, arena, &ptr, len);
  return ptr;
}
UPB_INLINE void cel_expr_SourceInfo_Extension_clear_id(cel_expr_SourceInfo_Extension* msg) {
  const upb_MiniTableField field = {1, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE upb_StringView cel_expr_SourceInfo_Extension_id(const cel_expr_SourceInfo_Extension* msg) {
  upb_StringView default_val = upb_StringView_FromString("");
  upb_StringView ret;
  const upb_MiniTableField field = {1, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE void cel_expr_SourceInfo_Extension_clear_affected_components(cel_expr_SourceInfo_Extension* msg) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE int32_t const* cel_expr_SourceInfo_Extension_affected_components(const cel_expr_SourceInfo_Extension* msg,
                                                  size_t* size) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (int32_t const*)upb_Array_DataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

//
UPB_INLINE const upb_Array* _cel_expr_SourceInfo_Extension_affected_components_upb_array(
    const cel_expr_SourceInfo_Extension* msg, size_t* size) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  const upb_Array* arr = upb_Message_GetArray(UPB_UPCAST(msg), &field);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}

UPB_INLINE upb_Array* _cel_expr_SourceInfo_Extension_affected_components_mutable_upb_array(
    cel_expr_SourceInfo_Extension* msg, size_t* size, upb_Arena* arena) {
  const upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(UPB_UPCAST(msg),
                                                       &field, arena);
  if (size) {
    *size = arr ? arr->UPB_PRIVATE(size) : 0;
  }
  return arr;
}
UPB_INLINE void cel_expr_SourceInfo_Extension_clear_version(cel_expr_SourceInfo_Extension* msg) {
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 64, UPB_SIZE(3, 4), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE const cel_expr_SourceInfo_Extension_Version* cel_expr_SourceInfo_Extension_version(const cel_expr_SourceInfo_Extension* msg) {
  const cel_expr_SourceInfo_Extension_Version* default_val = NULL;
  const cel_expr_SourceInfo_Extension_Version* ret;
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 64, UPB_SIZE(3, 4), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension__Version_msg_init);
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE bool cel_expr_SourceInfo_Extension_has_version(const cel_expr_SourceInfo_Extension* msg) {
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 64, UPB_SIZE(3, 4), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return upb_Message_HasBaseField(UPB_UPCAST(msg), &field);
}

UPB_INLINE void cel_expr_SourceInfo_Extension_set_id(cel_expr_SourceInfo_Extension* msg, upb_StringView value) {
  const upb_MiniTableField field = {1, UPB_SIZE(20, 16), 0, kUpb_NoSub, 9, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_StringView << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE int32_t* cel_expr_SourceInfo_Extension_mutable_affected_components(cel_expr_SourceInfo_Extension* msg,
                                              size_t* size) {
  upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Array* arr = upb_Message_GetMutableArray(UPB_UPCAST(msg), &field);
  if (arr) {
    if (size) *size = arr->UPB_PRIVATE(size);
    return (int32_t*)upb_Array_MutableDataPtr(arr);
  } else {
    if (size) *size = 0;
    return NULL;
  }
}

UPB_INLINE int32_t* cel_expr_SourceInfo_Extension_resize_affected_components(cel_expr_SourceInfo_Extension* msg,
                                             size_t size,
                                             upb_Arena* arena) {
  upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  return (int32_t*)upb_Message_ResizeArrayUninitialized(
      UPB_UPCAST(msg), &field, size, arena);
}
UPB_INLINE bool cel_expr_SourceInfo_Extension_add_affected_components(cel_expr_SourceInfo_Extension* msg, int32_t val,
                                      upb_Arena* arena) {
  upb_MiniTableField field = {2, UPB_SIZE(12, 32), 0, kUpb_NoSub, 5, (int)kUpb_FieldMode_Array | (int)kUpb_LabelFlags_IsPacked | (int)kUpb_LabelFlags_IsAlternate | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  upb_Array* arr = upb_Message_GetOrCreateMutableArray(
      UPB_UPCAST(msg), &field, arena);
  if (!arr || !UPB_PRIVATE(_upb_Array_ResizeUninitialized)(
                  arr, arr->UPB_PRIVATE(size) + 1, arena)) {
    return false;
  }
  UPB_PRIVATE(_upb_Array_Set)
  (arr, arr->UPB_PRIVATE(size) - 1, &val, sizeof(val));
  return true;
}
UPB_INLINE void cel_expr_SourceInfo_Extension_set_version(cel_expr_SourceInfo_Extension* msg, cel_expr_SourceInfo_Extension_Version* value) {
  const upb_MiniTableField field = {3, UPB_SIZE(16, 40), 64, UPB_SIZE(3, 4), 11, (int)kUpb_FieldMode_Scalar | ((int)UPB_SIZE(kUpb_FieldRep_4Byte, kUpb_FieldRep_8Byte) << kUpb_FieldRep_Shift)};
  UPB_PRIVATE(_upb_MiniTable_StrongReference)(&cel__expr__SourceInfo__Extension__Version_msg_init);
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE struct cel_expr_SourceInfo_Extension_Version* cel_expr_SourceInfo_Extension_mutable_version(
    cel_expr_SourceInfo_Extension* msg, upb_Arena* arena) {
  struct cel_expr_SourceInfo_Extension_Version* sub = (struct cel_expr_SourceInfo_Extension_Version*)cel_expr_SourceInfo_Extension_version(msg);
  if (sub == NULL) {
    sub = (struct cel_expr_SourceInfo_Extension_Version*)_upb_Message_New(&cel__expr__SourceInfo__Extension__Version_msg_init, arena);
    if (sub) cel_expr_SourceInfo_Extension_set_version(msg, sub);
  }
  return sub;
}

/* cel.expr.SourceInfo.Extension.Version */
UPB_INLINE cel_expr_SourceInfo_Extension_Version* cel_expr_SourceInfo_Extension_Version_new(upb_Arena* arena) {
  return (cel_expr_SourceInfo_Extension_Version*)_upb_Message_New(&cel__expr__SourceInfo__Extension__Version_msg_init, arena);
}
UPB_INLINE cel_expr_SourceInfo_Extension_Version* cel_expr_SourceInfo_Extension_Version_parse(const char* buf, size_t size,
                                        upb_Arena* arena) {
  cel_expr_SourceInfo_Extension_Version* ret = cel_expr_SourceInfo_Extension_Version_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__SourceInfo__Extension__Version_msg_init, NULL, 0,
                 arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE cel_expr_SourceInfo_Extension_Version* cel_expr_SourceInfo_Extension_Version_parse_ex(
    const char* buf, size_t size, const upb_ExtensionRegistry* extreg,
    int options, upb_Arena* arena) {
  cel_expr_SourceInfo_Extension_Version* ret = cel_expr_SourceInfo_Extension_Version_new(arena);
  if (!ret) return NULL;
  if (upb_Decode(buf, size, UPB_UPCAST(ret), &cel__expr__SourceInfo__Extension__Version_msg_init, extreg,
                 options, arena) != kUpb_DecodeStatus_Ok) {
    return NULL;
  }
  return ret;
}
UPB_INLINE char* cel_expr_SourceInfo_Extension_Version_serialize(const cel_expr_SourceInfo_Extension_Version* msg,
                                      upb_Arena* arena, size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__SourceInfo__Extension__Version_msg_init, 0, arena, &ptr, len);
  return ptr;
}
UPB_INLINE char* cel_expr_SourceInfo_Extension_Version_serialize_ex(const cel_expr_SourceInfo_Extension_Version* msg,
                                         int options, upb_Arena* arena,
                                         size_t* len) {
  char* ptr;
  (void)upb_Encode(UPB_UPCAST(msg), &cel__expr__SourceInfo__Extension__Version_msg_init, options, arena, &ptr, len);
  return ptr;
}
UPB_INLINE void cel_expr_SourceInfo_Extension_Version_clear_major(cel_expr_SourceInfo_Extension_Version* msg) {
  const upb_MiniTableField field = {1, 8, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE int64_t cel_expr_SourceInfo_Extension_Version_major(const cel_expr_SourceInfo_Extension_Version* msg) {
  int64_t default_val = (int64_t)0ll;
  int64_t ret;
  const upb_MiniTableField field = {1, 8, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}
UPB_INLINE void cel_expr_SourceInfo_Extension_Version_clear_minor(cel_expr_SourceInfo_Extension_Version* msg) {
  const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_ClearBaseField(UPB_UPCAST(msg), &field);
}
UPB_INLINE int64_t cel_expr_SourceInfo_Extension_Version_minor(const cel_expr_SourceInfo_Extension_Version* msg) {
  int64_t default_val = (int64_t)0ll;
  int64_t ret;
  const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  _upb_Message_GetNonExtensionField(UPB_UPCAST(msg), &field,
                                    &default_val, &ret);
  return ret;
}

UPB_INLINE void cel_expr_SourceInfo_Extension_Version_set_major(cel_expr_SourceInfo_Extension_Version* msg, int64_t value) {
  const upb_MiniTableField field = {1, 8, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}
UPB_INLINE void cel_expr_SourceInfo_Extension_Version_set_minor(cel_expr_SourceInfo_Extension_Version* msg, int64_t value) {
  const upb_MiniTableField field = {2, 16, 0, kUpb_NoSub, 3, (int)kUpb_FieldMode_Scalar | ((int)kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)};
  upb_Message_SetBaseField((upb_Message*)msg, &field, &value);
}

#ifdef __cplusplus
              } /* extern "C" */
#endif

#include "upb/port/undef.inc"

#endif /* CEL_EXPR_SYNTAX_PROTO_UPB_H__UPB_H_ */
