// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: opentelemetry/proto/metrics/v1/metrics.proto
// Protobuf C++ Version: 7.35.1

#include "opentelemetry/proto/metrics/v1/metrics.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/descriptor.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/reflection_ops.h"
#include "google/protobuf/wire_format.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
#ifdef PROTOBUF_MESSAGE_GLOBALS
namespace {
PROTOBUF_CONSTINIT ::google::protobuf::internal::ReflectionData
    file_reflection_data[] = {
        // ::opentelemetry::proto::metrics::v1::MetricsData
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::ResourceMetrics
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::ScopeMetrics
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::Metric
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::Gauge
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::Sum
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::Histogram
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::ExponentialHistogram
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::Summary
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::NumberDataPoint
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::HistogramDataPoint
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::SummaryDataPoint_ValueAtQuantile
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::SummaryDataPoint
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
        // ::opentelemetry::proto::metrics::v1::Exemplar
        {&::_pbi::kDescriptorMethods, &::descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto, /* tracker*/ nullptr,},
};
}  // namespace
#endif
namespace opentelemetry {
namespace proto {
namespace metrics {
namespace v1 {
class SummaryDataPoint_ValueAtQuantile::_Internal {
 public:
  using HasBits = decltype(::std::declval<SummaryDataPoint_ValueAtQuantile>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(SummaryDataPoint_ValueAtQuantile, _impl_._has_bits_);
};

constexpr SummaryDataPoint_ValueAtQuantile::ParseTableT_ SummaryDataPoint_ValueAtQuantile::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SummaryDataPoint_ValueAtQuantile, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::SummaryDataPoint_ValueAtQuantile>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // double value = 2;
      {::_pbi::TcParser::FastF64S1,
       {17, 1, 0,
        PROTOBUF_FIELD_OFFSET(SummaryDataPoint_ValueAtQuantile, _impl_.value_)}},
      // double quantile = 1;
      {::_pbi::TcParser::FastF64S1,
       {9, 0, 0,
        PROTOBUF_FIELD_OFFSET(SummaryDataPoint_ValueAtQuantile, _impl_.quantile_)}},
    }}, {{
      65535, 65535
    }}, {{
      // double quantile = 1;
      {PROTOBUF_FIELD_OFFSET(SummaryDataPoint_ValueAtQuantile, _impl_.quantile_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
      // double value = 2;
      {PROTOBUF_FIELD_OFFSET(SummaryDataPoint_ValueAtQuantile, _impl_.value_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr SummaryDataPoint_ValueAtQuantile::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        quantile_{0},
        value_{0} {}

template <typename>
constexpr SummaryDataPoint_ValueAtQuantile::SummaryDataPoint_ValueAtQuantile(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SummaryDataPoint_ValueAtQuantile::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SummaryDataPoint_ValueAtQuantile(arena);
}
constexpr auto SummaryDataPoint_ValueAtQuantile::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(SummaryDataPoint_ValueAtQuantile), alignof(SummaryDataPoint_ValueAtQuantile));
}
constexpr auto SummaryDataPoint_ValueAtQuantile::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SummaryDataPoint_ValueAtQuantile::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SummaryDataPoint_ValueAtQuantile>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SummaryDataPoint_ValueAtQuantile::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SummaryDataPoint_ValueAtQuantile>(), &SummaryDataPoint_ValueAtQuantile::ByteSizeLong,
              &SummaryDataPoint_ValueAtQuantile::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SummaryDataPoint_ValueAtQuantile, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[13],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SummaryDataPoint_ValueAtQuantileGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SummaryDataPoint_ValueAtQuantileGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SummaryDataPoint_ValueAtQuantile_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SummaryDataPoint_ValueAtQuantile::InternalGenerateClassData_(
            _default, &SummaryDataPoint_ValueAtQuantile_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SummaryDataPoint_ValueAtQuantile>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SummaryDataPoint_ValueAtQuantileGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SummaryDataPoint_ValueAtQuantile _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SummaryDataPoint_ValueAtQuantile>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SummaryDataPoint_ValueAtQuantileGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST SummaryDataPoint_ValueAtQuantileGlobalsTypeInternal SummaryDataPoint_ValueAtQuantile_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* SummaryDataPoint_ValueAtQuantile_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return SummaryDataPoint_ValueAtQuantile_globals_.GetClassData();
#else
  return SummaryDataPoint_ValueAtQuantile_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ExponentialHistogramDataPoint_Buckets::_Internal {
 public:
  using HasBits = decltype(::std::declval<ExponentialHistogramDataPoint_Buckets>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint_Buckets, _impl_._has_bits_);
};

constexpr ExponentialHistogramDataPoint_Buckets::ParseTableT_ ExponentialHistogramDataPoint_Buckets::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint_Buckets, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated uint64 bucket_counts = 2;
      {::_pbi::TcParser::FastV64P1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint_Buckets, _impl_.bucket_counts_)}},
      // sint32 offset = 1;
      {::_pbi::TcParser::FastZ32S1,
       {8, 1, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint_Buckets, _impl_.offset_)}},
    }}, {{
      65535, 65535
    }}, {{
      // sint32 offset = 1;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint_Buckets, _impl_.offset_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kSInt32)},
      // repeated uint64 bucket_counts = 2;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint_Buckets, _impl_.bucket_counts_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedUInt64)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr ExponentialHistogramDataPoint_Buckets::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        bucket_counts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets, _impl_.bucket_counts_)>()
         }
        ,
        _bucket_counts_cached_byte_size_{0},
        offset_{0} {}

template <typename>
constexpr ExponentialHistogramDataPoint_Buckets::ExponentialHistogramDataPoint_Buckets(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ExponentialHistogramDataPoint_Buckets::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExponentialHistogramDataPoint_Buckets(arena);
}
constexpr auto ExponentialHistogramDataPoint_Buckets::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ExponentialHistogramDataPoint_Buckets), alignof(ExponentialHistogramDataPoint_Buckets));
}
constexpr auto ExponentialHistogramDataPoint_Buckets::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ExponentialHistogramDataPoint_Buckets::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExponentialHistogramDataPoint_Buckets>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExponentialHistogramDataPoint_Buckets::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExponentialHistogramDataPoint_Buckets>(), &ExponentialHistogramDataPoint_Buckets::ByteSizeLong,
              &ExponentialHistogramDataPoint_Buckets::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint_Buckets, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[11],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExponentialHistogramDataPoint_BucketsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExponentialHistogramDataPoint_BucketsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExponentialHistogramDataPoint_Buckets_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExponentialHistogramDataPoint_Buckets::InternalGenerateClassData_(
            _default, &ExponentialHistogramDataPoint_Buckets_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExponentialHistogramDataPoint_Buckets>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExponentialHistogramDataPoint_BucketsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExponentialHistogramDataPoint_Buckets _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExponentialHistogramDataPoint_Buckets>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint_BucketsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ExponentialHistogramDataPoint_BucketsGlobalsTypeInternal ExponentialHistogramDataPoint_Buckets_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ExponentialHistogramDataPoint_Buckets_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ExponentialHistogramDataPoint_Buckets_globals_.GetClassData();
#else
  return ExponentialHistogramDataPoint_Buckets_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class SummaryDataPoint::_Internal {
 public:
  using HasBits = decltype(::std::declval<SummaryDataPoint>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_._has_bits_);
};

constexpr SummaryDataPoint::ParseTableT_ SummaryDataPoint::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_._has_bits_),
      0, // no _extensions_
      8, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967041,  // skipmap
      offsetof(ParseTableT_, field_entries),
      7,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::SummaryDataPoint>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 flags = 8;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SummaryDataPoint, _impl_.flags_), 6>(),
       {64, 6, 0,
        PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.flags_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // fixed64 start_time_unix_nano = 2;
      {::_pbi::TcParser::FastF64S1,
       {17, 2, 0,
        PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.start_time_unix_nano_)}},
      // fixed64 time_unix_nano = 3;
      {::_pbi::TcParser::FastF64S1,
       {25, 3, 0,
        PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.time_unix_nano_)}},
      // fixed64 count = 4;
      {::_pbi::TcParser::FastF64S1,
       {33, 4, 0,
        PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.count_)}},
      // double sum = 5;
      {::_pbi::TcParser::FastF64S1,
       {41, 5, 0,
        PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.sum_)}},
      // repeated .opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile quantile_values = 6;
      {::_pbi::TcParser::FastMtR1,
       {50, 0, 0,
        PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.quantile_values_)}},
      // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 7;
      {::_pbi::TcParser::FastMtR1,
       {58, 1, 1,
        PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.attributes_)}},
    }}, {{
      65535, 65535
    }}, {{
      // fixed64 start_time_unix_nano = 2;
      {PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.start_time_unix_nano_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // fixed64 time_unix_nano = 3;
      {PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.time_unix_nano_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // fixed64 count = 4;
      {PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.count_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // double sum = 5;
      {PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.sum_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
      // repeated .opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile quantile_values = 6;
      {PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.quantile_values_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 7;
      {PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.attributes_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 flags = 8;
      {PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.flags_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::SummaryDataPoint_ValueAtQuantile>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::SummaryDataPoint_ValueAtQuantile_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::common::v1::KeyValue>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::common::v1::KeyValue_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr SummaryDataPoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        quantile_values_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::SummaryDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_.quantile_values_)>()
         }
        ,
        attributes_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::SummaryDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_.attributes_)>()
         }
        ,
        start_time_unix_nano_{::uint64_t{0u}},
        time_unix_nano_{::uint64_t{0u}},
        count_{::uint64_t{0u}},
        sum_{0},
        flags_{0u} {}

template <typename>
constexpr SummaryDataPoint::SummaryDataPoint(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SummaryDataPoint::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SummaryDataPoint(arena);
}
constexpr auto SummaryDataPoint::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SummaryDataPoint), alignof(SummaryDataPoint));
}
constexpr auto SummaryDataPoint::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SummaryDataPoint::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SummaryDataPoint>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SummaryDataPoint::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SummaryDataPoint>(), &SummaryDataPoint::ByteSizeLong,
              &SummaryDataPoint::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[14],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SummaryDataPointGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SummaryDataPointGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SummaryDataPoint_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SummaryDataPoint::InternalGenerateClassData_(
            _default, &SummaryDataPoint_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SummaryDataPoint>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SummaryDataPointGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SummaryDataPoint _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SummaryDataPoint>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SummaryDataPointGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST SummaryDataPointGlobalsTypeInternal SummaryDataPoint_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* SummaryDataPoint_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return SummaryDataPoint_globals_.GetClassData();
#else
  return SummaryDataPoint_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Exemplar::_Internal {
 public:
  using HasBits = decltype(::std::declval<Exemplar>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Exemplar, _impl_._has_bits_);
  static constexpr ::int32_t kOneofCaseOffset =
      PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Exemplar, _impl_._oneof_case_);
};

constexpr Exemplar::ParseTableT_ Exemplar::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Exemplar, _impl_._has_bits_),
      0, // no _extensions_
      7, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967169,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Exemplar>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // bytes span_id = 4;
      {::_pbi::TcParser::FastBS1,
       {34, 1, 0,
        PROTOBUF_FIELD_OFFSET(Exemplar, _impl_.span_id_)}},
      // bytes trace_id = 5;
      {::_pbi::TcParser::FastBS1,
       {42, 2, 0,
        PROTOBUF_FIELD_OFFSET(Exemplar, _impl_.trace_id_)}},
      // fixed64 time_unix_nano = 2;
      {::_pbi::TcParser::FastF64S1,
       {17, 3, 0,
        PROTOBUF_FIELD_OFFSET(Exemplar, _impl_.time_unix_nano_)}},
      // repeated .opentelemetry.proto.common.v1.KeyValue filtered_attributes = 7;
      {::_pbi::TcParser::FastMtR1,
       {58, 0, 0,
        PROTOBUF_FIELD_OFFSET(Exemplar, _impl_.filtered_attributes_)}},
    }}, {{
      65535, 65535
    }}, {{
      // fixed64 time_unix_nano = 2;
      {PROTOBUF_FIELD_OFFSET(Exemplar, _impl_.time_unix_nano_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // double as_double = 3;
      {PROTOBUF_FIELD_OFFSET(Exemplar, _impl_.value_.as_double_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kDouble)},
      // bytes span_id = 4;
      {PROTOBUF_FIELD_OFFSET(Exemplar, _impl_.span_id_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // bytes trace_id = 5;
      {PROTOBUF_FIELD_OFFSET(Exemplar, _impl_.trace_id_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // sfixed64 as_int = 6;
      {PROTOBUF_FIELD_OFFSET(Exemplar, _impl_.value_.as_int_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kSFixed64)},
      // repeated .opentelemetry.proto.common.v1.KeyValue filtered_attributes = 7;
      {PROTOBUF_FIELD_OFFSET(Exemplar, _impl_.filtered_attributes_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::common::v1::KeyValue>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::common::v1::KeyValue_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Exemplar::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        filtered_attributes_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::Exemplar,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Exemplar, _impl_.filtered_attributes_)>()
         }
        ,
        span_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        trace_id_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        time_unix_nano_{::uint64_t{0u}},
        value_{},
        _oneof_case_{} {}

template <typename>
constexpr Exemplar::Exemplar(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Exemplar::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Exemplar(arena);
}
constexpr auto Exemplar::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Exemplar), alignof(Exemplar));
}
constexpr auto Exemplar::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Exemplar::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Exemplar>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Exemplar::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Exemplar>(), &Exemplar::ByteSizeLong,
              &Exemplar::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Exemplar, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[15],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExemplarGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExemplarGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Exemplar_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Exemplar::InternalGenerateClassData_(
            _default, &Exemplar_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Exemplar>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExemplarGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Exemplar _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Exemplar>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExemplarGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ExemplarGlobalsTypeInternal Exemplar_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Exemplar_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Exemplar_globals_.GetClassData();
#else
  return Exemplar_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Summary::_Internal {
 public:
  using HasBits = decltype(::std::declval<Summary>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Summary, _impl_._has_bits_);
};

constexpr Summary::ParseTableT_ Summary::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Summary, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Summary>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .opentelemetry.proto.metrics.v1.SummaryDataPoint data_points = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Summary, _impl_.data_points_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .opentelemetry.proto.metrics.v1.SummaryDataPoint data_points = 1;
      {PROTOBUF_FIELD_OFFSET(Summary, _impl_.data_points_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::SummaryDataPoint>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::SummaryDataPoint_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Summary::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        data_points_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::Summary,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Summary, _impl_.data_points_)>()
         }
     {}

template <typename>
constexpr Summary::Summary(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Summary::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Summary(arena);
}
constexpr auto Summary::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Summary), alignof(Summary));
}
constexpr auto Summary::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Summary::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Summary>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Summary::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Summary>(), &Summary::ByteSizeLong,
              &Summary::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Summary, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[8],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SummaryGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SummaryGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Summary_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Summary::InternalGenerateClassData_(
            _default, &Summary_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Summary>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SummaryGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Summary _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Summary>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SummaryGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST SummaryGlobalsTypeInternal Summary_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Summary_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Summary_globals_.GetClassData();
#else
  return Summary_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class NumberDataPoint::_Internal {
 public:
  using HasBits = decltype(::std::declval<NumberDataPoint>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_._has_bits_);
  static constexpr ::int32_t kOneofCaseOffset =
      PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_._oneof_case_);
};

constexpr NumberDataPoint::ParseTableT_ NumberDataPoint::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_._has_bits_),
      0, // no _extensions_
      8, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967041,  // skipmap
      offsetof(ParseTableT_, field_entries),
      7,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::NumberDataPoint>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // uint32 flags = 8;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NumberDataPoint, _impl_.flags_), 4>(),
       {64, 4, 0,
        PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.flags_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // fixed64 start_time_unix_nano = 2;
      {::_pbi::TcParser::FastF64S1,
       {17, 2, 0,
        PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.start_time_unix_nano_)}},
      // fixed64 time_unix_nano = 3;
      {::_pbi::TcParser::FastF64S1,
       {25, 3, 0,
        PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.time_unix_nano_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .opentelemetry.proto.metrics.v1.Exemplar exemplars = 5;
      {::_pbi::TcParser::FastMtR1,
       {42, 0, 0,
        PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.exemplars_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 7;
      {::_pbi::TcParser::FastMtR1,
       {58, 1, 1,
        PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.attributes_)}},
    }}, {{
      65535, 65535
    }}, {{
      // fixed64 start_time_unix_nano = 2;
      {PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.start_time_unix_nano_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // fixed64 time_unix_nano = 3;
      {PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.time_unix_nano_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // double as_double = 4;
      {PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.value_.as_double_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kDouble)},
      // repeated .opentelemetry.proto.metrics.v1.Exemplar exemplars = 5;
      {PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.exemplars_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // sfixed64 as_int = 6;
      {PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.value_.as_int_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kSFixed64)},
      // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 7;
      {PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.attributes_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 flags = 8;
      {PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.flags_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Exemplar>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::Exemplar_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::common::v1::KeyValue>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::common::v1::KeyValue_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr NumberDataPoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        exemplars_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::NumberDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.exemplars_)>()
         }
        ,
        attributes_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::NumberDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.attributes_)>()
         }
        ,
        start_time_unix_nano_{::uint64_t{0u}},
        time_unix_nano_{::uint64_t{0u}},
        flags_{0u},
        value_{},
        _oneof_case_{} {}

template <typename>
constexpr NumberDataPoint::NumberDataPoint(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL NumberDataPoint::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NumberDataPoint(arena);
}
constexpr auto NumberDataPoint::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(NumberDataPoint), alignof(NumberDataPoint));
}
constexpr auto NumberDataPoint::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &NumberDataPoint::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NumberDataPoint>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NumberDataPoint::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NumberDataPoint>(), &NumberDataPoint::ByteSizeLong,
              &NumberDataPoint::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[9],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct NumberDataPointGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr NumberDataPointGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 NumberDataPoint_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(NumberDataPoint::InternalGenerateClassData_(
            _default, &NumberDataPoint_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<NumberDataPoint>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~NumberDataPointGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) NumberDataPoint _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<NumberDataPoint>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(NumberDataPointGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST NumberDataPointGlobalsTypeInternal NumberDataPoint_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* NumberDataPoint_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return NumberDataPoint_globals_.GetClassData();
#else
  return NumberDataPoint_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class HistogramDataPoint::_Internal {
 public:
  using HasBits = decltype(::std::declval<HistogramDataPoint>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_._has_bits_);
};

constexpr HistogramDataPoint::ParseTableT_ HistogramDataPoint::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_._has_bits_),
      0, // no _extensions_
      12, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294963201,  // skipmap
      offsetof(ParseTableT_, field_entries),
      11,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::HistogramDataPoint>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // fixed64 start_time_unix_nano = 2;
      {::_pbi::TcParser::FastF64S1,
       {17, 4, 0,
        PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.start_time_unix_nano_)}},
      // fixed64 time_unix_nano = 3;
      {::_pbi::TcParser::FastF64S1,
       {25, 5, 0,
        PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.time_unix_nano_)}},
      // fixed64 count = 4;
      {::_pbi::TcParser::FastF64S1,
       {33, 6, 0,
        PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.count_)}},
      // optional double sum = 5;
      {::_pbi::TcParser::FastF64S1,
       {41, 7, 0,
        PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.sum_)}},
      // repeated fixed64 bucket_counts = 6;
      {::_pbi::TcParser::FastF64P1,
       {50, 0, 0,
        PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.bucket_counts_)}},
      // repeated double explicit_bounds = 7;
      {::_pbi::TcParser::FastF64P1,
       {58, 1, 0,
        PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.explicit_bounds_)}},
      // repeated .opentelemetry.proto.metrics.v1.Exemplar exemplars = 8;
      {::_pbi::TcParser::FastMtR1,
       {66, 2, 0,
        PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.exemplars_)}},
      // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 9;
      {::_pbi::TcParser::FastMtR1,
       {74, 3, 1,
        PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.attributes_)}},
      // uint32 flags = 10;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(HistogramDataPoint, _impl_.flags_), 10>(),
       {80, 10, 0,
        PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.flags_)}},
      // optional double min = 11;
      {::_pbi::TcParser::FastF64S1,
       {89, 8, 0,
        PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.min_)}},
      // optional double max = 12;
      {::_pbi::TcParser::FastF64S1,
       {97, 9, 0,
        PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.max_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // fixed64 start_time_unix_nano = 2;
      {PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.start_time_unix_nano_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // fixed64 time_unix_nano = 3;
      {PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.time_unix_nano_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // fixed64 count = 4;
      {PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.count_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // optional double sum = 5;
      {PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.sum_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
      // repeated fixed64 bucket_counts = 6;
      {PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.bucket_counts_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedFixed64)},
      // repeated double explicit_bounds = 7;
      {PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.explicit_bounds_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedDouble)},
      // repeated .opentelemetry.proto.metrics.v1.Exemplar exemplars = 8;
      {PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.exemplars_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 9;
      {PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.attributes_), _Internal::kHasBitsOffset + 3, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 flags = 10;
      {PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.flags_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional double min = 11;
      {PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.min_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
      // optional double max = 12;
      {PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.max_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Exemplar>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::Exemplar_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::common::v1::KeyValue>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::common::v1::KeyValue_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr HistogramDataPoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        bucket_counts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::HistogramDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.bucket_counts_)>()
         }
        ,
        explicit_bounds_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::HistogramDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.explicit_bounds_)>()
         }
        ,
        exemplars_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::HistogramDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.exemplars_)>()
         }
        ,
        attributes_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::HistogramDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.attributes_)>()
         }
        ,
        start_time_unix_nano_{::uint64_t{0u}},
        time_unix_nano_{::uint64_t{0u}},
        count_{::uint64_t{0u}},
        sum_{0},
        min_{0},
        max_{0},
        flags_{0u} {}

template <typename>
constexpr HistogramDataPoint::HistogramDataPoint(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL HistogramDataPoint::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) HistogramDataPoint(arena);
}
constexpr auto HistogramDataPoint::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(HistogramDataPoint), alignof(HistogramDataPoint));
}
constexpr auto HistogramDataPoint::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &HistogramDataPoint::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<HistogramDataPoint>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &HistogramDataPoint::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<HistogramDataPoint>(), &HistogramDataPoint::ByteSizeLong,
              &HistogramDataPoint::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[10],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct HistogramDataPointGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr HistogramDataPointGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 HistogramDataPoint_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(HistogramDataPoint::InternalGenerateClassData_(
            _default, &HistogramDataPoint_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<HistogramDataPoint>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~HistogramDataPointGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) HistogramDataPoint _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<HistogramDataPoint>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(HistogramDataPointGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST HistogramDataPointGlobalsTypeInternal HistogramDataPoint_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* HistogramDataPoint_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return HistogramDataPoint_globals_.GetClassData();
#else
  return HistogramDataPoint_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ExponentialHistogramDataPoint::_Internal {
 public:
  using HasBits = decltype(::std::declval<ExponentialHistogramDataPoint>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_._has_bits_);
};

constexpr ExponentialHistogramDataPoint::ParseTableT_ ExponentialHistogramDataPoint::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_._has_bits_),
      0, // no _extensions_
      14, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294950912,  // skipmap
      offsetof(ParseTableT_, field_entries),
      14,  // num_field_entries
      4,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.attributes_)}},
      // fixed64 start_time_unix_nano = 2;
      {::_pbi::TcParser::FastF64S1,
       {17, 4, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.start_time_unix_nano_)}},
      // fixed64 time_unix_nano = 3;
      {::_pbi::TcParser::FastF64S1,
       {25, 5, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.time_unix_nano_)}},
      // fixed64 count = 4;
      {::_pbi::TcParser::FastF64S1,
       {33, 6, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.count_)}},
      // optional double sum = 5;
      {::_pbi::TcParser::FastF64S1,
       {41, 7, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.sum_)}},
      // sint32 scale = 6;
      {::_pbi::TcParser::FastZ32S1,
       {48, 9, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.scale_)}},
      // fixed64 zero_count = 7;
      {::_pbi::TcParser::FastF64S1,
       {57, 8, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.zero_count_)}},
      // .opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets positive = 8;
      {::_pbi::TcParser::FastMtS1,
       {66, 2, 1,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.positive_)}},
      // .opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets negative = 9;
      {::_pbi::TcParser::FastMtS1,
       {74, 3, 2,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.negative_)}},
      // uint32 flags = 10;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ExponentialHistogramDataPoint, _impl_.flags_), 10>(),
       {80, 10, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.flags_)}},
      // repeated .opentelemetry.proto.metrics.v1.Exemplar exemplars = 11;
      {::_pbi::TcParser::FastMtR1,
       {90, 1, 3,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.exemplars_)}},
      // optional double min = 12;
      {::_pbi::TcParser::FastF64S1,
       {97, 11, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.min_)}},
      // optional double max = 13;
      {::_pbi::TcParser::FastF64S1,
       {105, 12, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.max_)}},
      // double zero_threshold = 14;
      {::_pbi::TcParser::FastF64S1,
       {113, 13, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.zero_threshold_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 1;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.attributes_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // fixed64 start_time_unix_nano = 2;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.start_time_unix_nano_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // fixed64 time_unix_nano = 3;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.time_unix_nano_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // fixed64 count = 4;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.count_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // optional double sum = 5;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.sum_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
      // sint32 scale = 6;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.scale_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kSInt32)},
      // fixed64 zero_count = 7;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.zero_count_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kFixed64)},
      // .opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets positive = 8;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.positive_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // .opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets negative = 9;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.negative_), _Internal::kHasBitsOffset + 3, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // uint32 flags = 10;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.flags_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // repeated .opentelemetry.proto.metrics.v1.Exemplar exemplars = 11;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.exemplars_), _Internal::kHasBitsOffset + 1, 3, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional double min = 12;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.min_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
      // optional double max = 13;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.max_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
      // double zero_threshold = 14;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.zero_threshold_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kDouble)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::common::v1::KeyValue>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::common::v1::KeyValue_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Exemplar>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::Exemplar_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ExponentialHistogramDataPoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        attributes_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.attributes_)>()
         }
        ,
        exemplars_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.exemplars_)>()
         }
        ,
        positive_{nullptr},
        negative_{nullptr},
        start_time_unix_nano_{::uint64_t{0u}},
        time_unix_nano_{::uint64_t{0u}},
        count_{::uint64_t{0u}},
        sum_{0},
        zero_count_{::uint64_t{0u}},
        scale_{0},
        flags_{0u},
        min_{0},
        max_{0},
        zero_threshold_{0} {}

template <typename>
constexpr ExponentialHistogramDataPoint::ExponentialHistogramDataPoint(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ExponentialHistogramDataPoint::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExponentialHistogramDataPoint(arena);
}
constexpr auto ExponentialHistogramDataPoint::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ExponentialHistogramDataPoint), alignof(ExponentialHistogramDataPoint));
}
constexpr auto ExponentialHistogramDataPoint::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ExponentialHistogramDataPoint::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExponentialHistogramDataPoint>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExponentialHistogramDataPoint::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExponentialHistogramDataPoint>(), &ExponentialHistogramDataPoint::ByteSizeLong,
              &ExponentialHistogramDataPoint::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[12],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExponentialHistogramDataPointGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExponentialHistogramDataPointGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExponentialHistogramDataPoint_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExponentialHistogramDataPoint::InternalGenerateClassData_(
            _default, &ExponentialHistogramDataPoint_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExponentialHistogramDataPoint>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExponentialHistogramDataPointGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExponentialHistogramDataPoint _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExponentialHistogramDataPoint>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPointGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ExponentialHistogramDataPointGlobalsTypeInternal ExponentialHistogramDataPoint_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ExponentialHistogramDataPoint_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ExponentialHistogramDataPoint_globals_.GetClassData();
#else
  return ExponentialHistogramDataPoint_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Sum::_Internal {
 public:
  using HasBits = decltype(::std::declval<Sum>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Sum, _impl_._has_bits_);
};

constexpr Sum::ParseTableT_ Sum::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Sum, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Sum>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .opentelemetry.proto.metrics.v1.NumberDataPoint data_points = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Sum, _impl_.data_points_)}},
      // .opentelemetry.proto.metrics.v1.AggregationTemporality aggregation_temporality = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Sum, _impl_.aggregation_temporality_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Sum, _impl_.aggregation_temporality_)}},
      // bool is_monotonic = 3;
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(Sum, _impl_.is_monotonic_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Sum, _impl_.is_monotonic_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .opentelemetry.proto.metrics.v1.NumberDataPoint data_points = 1;
      {PROTOBUF_FIELD_OFFSET(Sum, _impl_.data_points_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .opentelemetry.proto.metrics.v1.AggregationTemporality aggregation_temporality = 2;
      {PROTOBUF_FIELD_OFFSET(Sum, _impl_.aggregation_temporality_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
      // bool is_monotonic = 3;
      {PROTOBUF_FIELD_OFFSET(Sum, _impl_.is_monotonic_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::NumberDataPoint>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::NumberDataPoint_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Sum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        data_points_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::Sum,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Sum, _impl_.data_points_)>()
         }
        ,
        aggregation_temporality_{static_cast< ::opentelemetry::proto::metrics::v1::AggregationTemporality >(0)},
        is_monotonic_{false} {}

template <typename>
constexpr Sum::Sum(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Sum::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Sum(arena);
}
constexpr auto Sum::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Sum), alignof(Sum));
}
constexpr auto Sum::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Sum::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Sum>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Sum::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Sum>(), &Sum::ByteSizeLong,
              &Sum::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Sum, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[5],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SumGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SumGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Sum_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Sum::InternalGenerateClassData_(
            _default, &Sum_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Sum>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SumGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Sum _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Sum>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SumGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST SumGlobalsTypeInternal Sum_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Sum_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Sum_globals_.GetClassData();
#else
  return Sum_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Histogram::_Internal {
 public:
  using HasBits = decltype(::std::declval<Histogram>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Histogram, _impl_._has_bits_);
};

constexpr Histogram::ParseTableT_ Histogram::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Histogram, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Histogram>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .opentelemetry.proto.metrics.v1.AggregationTemporality aggregation_temporality = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Histogram, _impl_.aggregation_temporality_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Histogram, _impl_.aggregation_temporality_)}},
      // repeated .opentelemetry.proto.metrics.v1.HistogramDataPoint data_points = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Histogram, _impl_.data_points_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .opentelemetry.proto.metrics.v1.HistogramDataPoint data_points = 1;
      {PROTOBUF_FIELD_OFFSET(Histogram, _impl_.data_points_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .opentelemetry.proto.metrics.v1.AggregationTemporality aggregation_temporality = 2;
      {PROTOBUF_FIELD_OFFSET(Histogram, _impl_.aggregation_temporality_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::HistogramDataPoint>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::HistogramDataPoint_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Histogram::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        data_points_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::Histogram,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Histogram, _impl_.data_points_)>()
         }
        ,
        aggregation_temporality_{static_cast< ::opentelemetry::proto::metrics::v1::AggregationTemporality >(0)} {}

template <typename>
constexpr Histogram::Histogram(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Histogram::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Histogram(arena);
}
constexpr auto Histogram::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Histogram), alignof(Histogram));
}
constexpr auto Histogram::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Histogram::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Histogram>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Histogram::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Histogram>(), &Histogram::ByteSizeLong,
              &Histogram::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Histogram, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[6],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct HistogramGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr HistogramGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Histogram_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Histogram::InternalGenerateClassData_(
            _default, &Histogram_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Histogram>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~HistogramGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Histogram _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Histogram>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(HistogramGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST HistogramGlobalsTypeInternal Histogram_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Histogram_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Histogram_globals_.GetClassData();
#else
  return Histogram_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Gauge::_Internal {
 public:
  using HasBits = decltype(::std::declval<Gauge>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Gauge, _impl_._has_bits_);
};

constexpr Gauge::ParseTableT_ Gauge::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Gauge, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Gauge>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .opentelemetry.proto.metrics.v1.NumberDataPoint data_points = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Gauge, _impl_.data_points_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .opentelemetry.proto.metrics.v1.NumberDataPoint data_points = 1;
      {PROTOBUF_FIELD_OFFSET(Gauge, _impl_.data_points_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::NumberDataPoint>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::NumberDataPoint_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr Gauge::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        data_points_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::Gauge,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Gauge, _impl_.data_points_)>()
         }
     {}

template <typename>
constexpr Gauge::Gauge(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Gauge::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Gauge(arena);
}
constexpr auto Gauge::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Gauge), alignof(Gauge));
}
constexpr auto Gauge::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Gauge::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Gauge>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Gauge::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Gauge>(), &Gauge::ByteSizeLong,
              &Gauge::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Gauge, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[4],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct GaugeGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr GaugeGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Gauge_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Gauge::InternalGenerateClassData_(
            _default, &Gauge_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Gauge>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~GaugeGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Gauge _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Gauge>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(GaugeGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST GaugeGlobalsTypeInternal Gauge_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Gauge_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Gauge_globals_.GetClassData();
#else
  return Gauge_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ExponentialHistogram::_Internal {
 public:
  using HasBits = decltype(::std::declval<ExponentialHistogram>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ExponentialHistogram, _impl_._has_bits_);
};

constexpr ExponentialHistogram::ParseTableT_ ExponentialHistogram::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ExponentialHistogram, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::ExponentialHistogram>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // .opentelemetry.proto.metrics.v1.AggregationTemporality aggregation_temporality = 2;
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ExponentialHistogram, _impl_.aggregation_temporality_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogram, _impl_.aggregation_temporality_)}},
      // repeated .opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint data_points = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ExponentialHistogram, _impl_.data_points_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint data_points = 1;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogram, _impl_.data_points_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // .opentelemetry.proto.metrics.v1.AggregationTemporality aggregation_temporality = 2;
      {PROTOBUF_FIELD_OFFSET(ExponentialHistogram, _impl_.aggregation_temporality_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kOpenEnum)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ExponentialHistogram::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        data_points_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::ExponentialHistogram,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogram, _impl_.data_points_)>()
         }
        ,
        aggregation_temporality_{static_cast< ::opentelemetry::proto::metrics::v1::AggregationTemporality >(0)} {}

template <typename>
constexpr ExponentialHistogram::ExponentialHistogram(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ExponentialHistogram::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExponentialHistogram(arena);
}
constexpr auto ExponentialHistogram::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ExponentialHistogram), alignof(ExponentialHistogram));
}
constexpr auto ExponentialHistogram::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ExponentialHistogram::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExponentialHistogram>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExponentialHistogram::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExponentialHistogram>(), &ExponentialHistogram::ByteSizeLong,
              &ExponentialHistogram::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExponentialHistogram, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[7],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ExponentialHistogramGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ExponentialHistogramGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ExponentialHistogram_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ExponentialHistogram::InternalGenerateClassData_(
            _default, &ExponentialHistogram_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ExponentialHistogram>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ExponentialHistogramGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ExponentialHistogram _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ExponentialHistogram>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ExponentialHistogramGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ExponentialHistogramGlobalsTypeInternal ExponentialHistogram_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ExponentialHistogram_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ExponentialHistogram_globals_.GetClassData();
#else
  return ExponentialHistogram_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Metric::_Internal {
 public:
  using HasBits = decltype(::std::declval<Metric>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Metric, _impl_._has_bits_);
  static constexpr ::int32_t kOneofCaseOffset =
      PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Metric, _impl_._oneof_case_);
};

constexpr Metric::ParseTableT_ Metric::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Metric, _impl_._has_bits_),
      0, // no _extensions_
      11, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294965416,  // skipmap
      offsetof(ParseTableT_, field_entries),
      8,  // num_field_entries
      5,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Metric>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // string name = 1;
      {::_pbi::TcParser::FastUS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(Metric, _impl_.name_)}},
      // string description = 2;
      {::_pbi::TcParser::FastUS1,
       {18, 1, 0,
        PROTOBUF_FIELD_OFFSET(Metric, _impl_.description_)}},
      // string unit = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 2, 0,
        PROTOBUF_FIELD_OFFSET(Metric, _impl_.unit_)}},
    }}, {{
      65535, 65535
    }}, {{
      // string name = 1;
      {PROTOBUF_FIELD_OFFSET(Metric, _impl_.name_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string description = 2;
      {PROTOBUF_FIELD_OFFSET(Metric, _impl_.description_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // string unit = 3;
      {PROTOBUF_FIELD_OFFSET(Metric, _impl_.unit_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
      // .opentelemetry.proto.metrics.v1.Gauge gauge = 5;
      {PROTOBUF_FIELD_OFFSET(Metric, _impl_.data_.gauge_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .opentelemetry.proto.metrics.v1.Sum sum = 7;
      {PROTOBUF_FIELD_OFFSET(Metric, _impl_.data_.sum_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .opentelemetry.proto.metrics.v1.Histogram histogram = 9;
      {PROTOBUF_FIELD_OFFSET(Metric, _impl_.data_.histogram_), _Internal::kOneofCaseOffset + 0, 2, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .opentelemetry.proto.metrics.v1.ExponentialHistogram exponential_histogram = 10;
      {PROTOBUF_FIELD_OFFSET(Metric, _impl_.data_.exponential_histogram_), _Internal::kOneofCaseOffset + 0, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
      // .opentelemetry.proto.metrics.v1.Summary summary = 11;
      {PROTOBUF_FIELD_OFFSET(Metric, _impl_.data_.summary_), _Internal::kOneofCaseOffset + 0, 4, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Gauge>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::Gauge_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Sum>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::Sum_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Histogram>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::Histogram_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::ExponentialHistogram>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::ExponentialHistogram_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Summary>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::Summary_globals_},
        #endif
    }},
    {{
      "\45\4\13\4\0\0\0\0\0\0\0\0\0\0\0\0"
      "opentelemetry.proto.metrics.v1.Metric"
      "name"
      "description"
      "unit"
    }},
  };
}


inline constexpr Metric::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        description_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        unit_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        data_{},
        _oneof_case_{} {}

template <typename>
constexpr Metric::Metric(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Metric::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Metric(arena);
}
constexpr auto Metric::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Metric), alignof(Metric));
}
constexpr auto Metric::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Metric::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Metric>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Metric::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Metric>(), &Metric::ByteSizeLong,
              &Metric::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Metric, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[3],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MetricGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MetricGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Metric_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Metric::InternalGenerateClassData_(
            _default, &Metric_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Metric>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MetricGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Metric _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Metric>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MetricGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST MetricGlobalsTypeInternal Metric_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Metric_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Metric_globals_.GetClassData();
#else
  return Metric_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ScopeMetrics::_Internal {
 public:
  using HasBits = decltype(::std::declval<ScopeMetrics>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ScopeMetrics, _impl_._has_bits_);
};

constexpr ScopeMetrics::ParseTableT_ ScopeMetrics::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ScopeMetrics, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::ScopeMetrics>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .opentelemetry.proto.common.v1.InstrumentationScope scope = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 2, 0,
        PROTOBUF_FIELD_OFFSET(ScopeMetrics, _impl_.scope_)}},
      // repeated .opentelemetry.proto.metrics.v1.Metric metrics = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 1,
        PROTOBUF_FIELD_OFFSET(ScopeMetrics, _impl_.metrics_)}},
      // string schema_url = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 1, 0,
        PROTOBUF_FIELD_OFFSET(ScopeMetrics, _impl_.schema_url_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .opentelemetry.proto.common.v1.InstrumentationScope scope = 1;
      {PROTOBUF_FIELD_OFFSET(ScopeMetrics, _impl_.scope_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .opentelemetry.proto.metrics.v1.Metric metrics = 2;
      {PROTOBUF_FIELD_OFFSET(ScopeMetrics, _impl_.metrics_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // string schema_url = 3;
      {PROTOBUF_FIELD_OFFSET(ScopeMetrics, _impl_.schema_url_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::common::v1::InstrumentationScope>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::common::v1::InstrumentationScope_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::Metric>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::Metric_globals_},
        #endif
    }},
    {{
      "\53\0\0\12\0\0\0\0"
      "opentelemetry.proto.metrics.v1.ScopeMetrics"
      "schema_url"
    }},
  };
}


inline constexpr ScopeMetrics::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        metrics_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::ScopeMetrics,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ScopeMetrics, _impl_.metrics_)>()
         }
        ,
        schema_url_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        scope_{nullptr} {}

template <typename>
constexpr ScopeMetrics::ScopeMetrics(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ScopeMetrics::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ScopeMetrics(arena);
}
constexpr auto ScopeMetrics::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ScopeMetrics), alignof(ScopeMetrics));
}
constexpr auto ScopeMetrics::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ScopeMetrics::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ScopeMetrics>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ScopeMetrics::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ScopeMetrics>(), &ScopeMetrics::ByteSizeLong,
              &ScopeMetrics::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ScopeMetrics, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[2],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ScopeMetricsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ScopeMetricsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ScopeMetrics_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ScopeMetrics::InternalGenerateClassData_(
            _default, &ScopeMetrics_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ScopeMetrics>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ScopeMetricsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ScopeMetrics _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ScopeMetrics>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ScopeMetricsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ScopeMetricsGlobalsTypeInternal ScopeMetrics_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ScopeMetrics_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ScopeMetrics_globals_.GetClassData();
#else
  return ScopeMetrics_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ResourceMetrics::_Internal {
 public:
  using HasBits = decltype(::std::declval<ResourceMetrics>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ResourceMetrics, _impl_._has_bits_);
};

constexpr ResourceMetrics::ParseTableT_ ResourceMetrics::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ResourceMetrics, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::ResourceMetrics>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // .opentelemetry.proto.resource.v1.Resource resource = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 2, 0,
        PROTOBUF_FIELD_OFFSET(ResourceMetrics, _impl_.resource_)}},
      // repeated .opentelemetry.proto.metrics.v1.ScopeMetrics scope_metrics = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 1,
        PROTOBUF_FIELD_OFFSET(ResourceMetrics, _impl_.scope_metrics_)}},
      // string schema_url = 3;
      {::_pbi::TcParser::FastUS1,
       {26, 1, 0,
        PROTOBUF_FIELD_OFFSET(ResourceMetrics, _impl_.schema_url_)}},
    }}, {{
      65535, 65535
    }}, {{
      // .opentelemetry.proto.resource.v1.Resource resource = 1;
      {PROTOBUF_FIELD_OFFSET(ResourceMetrics, _impl_.resource_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .opentelemetry.proto.metrics.v1.ScopeMetrics scope_metrics = 2;
      {PROTOBUF_FIELD_OFFSET(ResourceMetrics, _impl_.scope_metrics_), _Internal::kHasBitsOffset + 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // string schema_url = 3;
      {PROTOBUF_FIELD_OFFSET(ResourceMetrics, _impl_.schema_url_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUtf8String | ::_fl::kRepAString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::resource::v1::Resource>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::resource::v1::Resource_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::ScopeMetrics>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::ScopeMetrics_globals_},
        #endif
    }},
    {{
      "\56\0\0\12\0\0\0\0"
      "opentelemetry.proto.metrics.v1.ResourceMetrics"
      "schema_url"
    }},
  };
}


inline constexpr ResourceMetrics::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        scope_metrics_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::ResourceMetrics,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ResourceMetrics, _impl_.scope_metrics_)>()
         }
        ,
        schema_url_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        resource_{nullptr} {}

template <typename>
constexpr ResourceMetrics::ResourceMetrics(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ResourceMetrics::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ResourceMetrics(arena);
}
constexpr auto ResourceMetrics::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ResourceMetrics), alignof(ResourceMetrics));
}
constexpr auto ResourceMetrics::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ResourceMetrics::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ResourceMetrics>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ResourceMetrics::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ResourceMetrics>(), &ResourceMetrics::ByteSizeLong,
              &ResourceMetrics::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ResourceMetrics, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[1],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct ResourceMetricsGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ResourceMetricsGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ResourceMetrics_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ResourceMetrics::InternalGenerateClassData_(
            _default, &ResourceMetrics_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ResourceMetrics>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ResourceMetricsGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ResourceMetrics _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ResourceMetrics>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ResourceMetricsGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ResourceMetricsGlobalsTypeInternal ResourceMetrics_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ResourceMetrics_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ResourceMetrics_globals_.GetClassData();
#else
  return ResourceMetrics_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class MetricsData::_Internal {
 public:
  using HasBits = decltype(::std::declval<MetricsData>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(MetricsData, _impl_._has_bits_);
};

constexpr MetricsData::ParseTableT_ MetricsData::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(MetricsData, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallback,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::MetricsData>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated .opentelemetry.proto.metrics.v1.ResourceMetrics resource_metrics = 1;
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(MetricsData, _impl_.resource_metrics_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .opentelemetry.proto.metrics.v1.ResourceMetrics resource_metrics = 1;
      {PROTOBUF_FIELD_OFFSET(MetricsData, _impl_.resource_metrics_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::opentelemetry::proto::metrics::v1::ResourceMetrics>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::opentelemetry::proto::metrics::v1::ResourceMetrics_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr MetricsData::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        resource_metrics_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::MetricsData,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::MetricsData, _impl_.resource_metrics_)>()
         }
     {}

template <typename>
constexpr MetricsData::MetricsData(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::Message(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL MetricsData::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MetricsData(arena);
}
constexpr auto MetricsData::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(MetricsData), alignof(MetricsData));
}
constexpr auto MetricsData::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &MetricsData::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MetricsData>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MetricsData::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MetricsData>(), &MetricsData::ByteSizeLong,
              &MetricsData::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MetricsData, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[0],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct MetricsDataGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr MetricsDataGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 MetricsData_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(MetricsData::InternalGenerateClassData_(
            _default, &MetricsData_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<MetricsData>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~MetricsDataGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) MetricsData _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<MetricsData>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(MetricsDataGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST MetricsDataGlobalsTypeInternal MetricsData_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* MetricsData_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return MetricsData_globals_.GetClassData();
#else
  return MetricsData_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace v1
}  // namespace metrics
}  // namespace proto
}  // namespace opentelemetry
static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
    file_level_enum_descriptors_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto[2];
static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
    file_level_service_descriptors_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto = nullptr;
const ::uint32_t
    TableStruct_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
        protodesc_cold) = {
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::MetricsData, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::MetricsData, _impl_.resource_metrics_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ResourceMetrics, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ResourceMetrics, _impl_.resource_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ResourceMetrics, _impl_.scope_metrics_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ResourceMetrics, _impl_.schema_url_),
        2,
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ScopeMetrics, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ScopeMetrics, _impl_.scope_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ScopeMetrics, _impl_.metrics_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ScopeMetrics, _impl_.schema_url_),
        2,
        0,
        1,
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Metric, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Metric, _impl_._oneof_case_[0]),
        13, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Metric, _impl_.name_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Metric, _impl_.description_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Metric, _impl_.unit_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Metric, _impl_.data_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Metric, _impl_.data_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Metric, _impl_.data_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Metric, _impl_.data_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Metric, _impl_.data_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Metric, _impl_.data_),
        0,
        1,
        2,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Gauge, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Gauge, _impl_.data_points_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Sum, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Sum, _impl_.data_points_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Sum, _impl_.aggregation_temporality_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Sum, _impl_.is_monotonic_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Histogram, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Histogram, _impl_.data_points_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Histogram, _impl_.aggregation_temporality_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogram, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogram, _impl_.data_points_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogram, _impl_.aggregation_temporality_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Summary, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Summary, _impl_.data_points_),
        0,
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_._oneof_case_[0]),
        12, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.attributes_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.start_time_unix_nano_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.time_unix_nano_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.value_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.value_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.exemplars_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.flags_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.value_),
        1,
        2,
        3,
        ~0u,
        ~0u,
        0,
        4,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_._has_bits_),
        14, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.attributes_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.start_time_unix_nano_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.time_unix_nano_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.count_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.sum_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.bucket_counts_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.explicit_bounds_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.exemplars_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.flags_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.min_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.max_),
        3,
        4,
        5,
        6,
        7,
        0,
        1,
        2,
        10,
        8,
        9,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets, _impl_.offset_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets, _impl_.bucket_counts_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_._has_bits_),
        17, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.attributes_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.start_time_unix_nano_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.time_unix_nano_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.count_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.sum_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.scale_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.zero_count_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.positive_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.negative_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.flags_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.exemplars_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.min_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.max_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.zero_threshold_),
        0,
        4,
        5,
        6,
        7,
        9,
        8,
        2,
        3,
        10,
        1,
        11,
        12,
        13,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint_ValueAtQuantile, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint_ValueAtQuantile, _impl_.quantile_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint_ValueAtQuantile, _impl_.value_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_._has_bits_),
        10, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_.attributes_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_.start_time_unix_nano_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_.time_unix_nano_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_.count_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_.sum_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_.quantile_values_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_.flags_),
        1,
        2,
        3,
        4,
        5,
        0,
        6,
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Exemplar, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Exemplar, _impl_._oneof_case_[0]),
        11, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Exemplar, _impl_.filtered_attributes_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Exemplar, _impl_.time_unix_nano_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Exemplar, _impl_.value_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Exemplar, _impl_.value_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Exemplar, _impl_.span_id_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Exemplar, _impl_.trace_id_),
        PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Exemplar, _impl_.value_),
        0,
        3,
        ~0u,
        ~0u,
        1,
        2,
};

static const ::_pbi::MigrationSchema
    schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
        {0, sizeof(::opentelemetry::proto::metrics::v1::MetricsData)},
        {5, sizeof(::opentelemetry::proto::metrics::v1::ResourceMetrics)},
        {14, sizeof(::opentelemetry::proto::metrics::v1::ScopeMetrics)},
        {23, sizeof(::opentelemetry::proto::metrics::v1::Metric)},
        {44, sizeof(::opentelemetry::proto::metrics::v1::Gauge)},
        {49, sizeof(::opentelemetry::proto::metrics::v1::Sum)},
        {58, sizeof(::opentelemetry::proto::metrics::v1::Histogram)},
        {65, sizeof(::opentelemetry::proto::metrics::v1::ExponentialHistogram)},
        {72, sizeof(::opentelemetry::proto::metrics::v1::Summary)},
        {77, sizeof(::opentelemetry::proto::metrics::v1::NumberDataPoint)},
        {96, sizeof(::opentelemetry::proto::metrics::v1::HistogramDataPoint)},
        {121, sizeof(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets)},
        {128, sizeof(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint)},
        {159, sizeof(::opentelemetry::proto::metrics::v1::SummaryDataPoint_ValueAtQuantile)},
        {166, sizeof(::opentelemetry::proto::metrics::v1::SummaryDataPoint)},
        {183, sizeof(::opentelemetry::proto::metrics::v1::Exemplar)},
};
static const ::_pbi::MessageGlobalsBase* PROTOBUF_NONNULL const
    file_message_globals[] = {
        &::opentelemetry::proto::metrics::v1::MetricsData_globals_,
        &::opentelemetry::proto::metrics::v1::ResourceMetrics_globals_,
        &::opentelemetry::proto::metrics::v1::ScopeMetrics_globals_,
        &::opentelemetry::proto::metrics::v1::Metric_globals_,
        &::opentelemetry::proto::metrics::v1::Gauge_globals_,
        &::opentelemetry::proto::metrics::v1::Sum_globals_,
        &::opentelemetry::proto::metrics::v1::Histogram_globals_,
        &::opentelemetry::proto::metrics::v1::ExponentialHistogram_globals_,
        &::opentelemetry::proto::metrics::v1::Summary_globals_,
        &::opentelemetry::proto::metrics::v1::NumberDataPoint_globals_,
        &::opentelemetry::proto::metrics::v1::HistogramDataPoint_globals_,
        &::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets_globals_,
        &::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_globals_,
        &::opentelemetry::proto::metrics::v1::SummaryDataPoint_ValueAtQuantile_globals_,
        &::opentelemetry::proto::metrics::v1::SummaryDataPoint_globals_,
        &::opentelemetry::proto::metrics::v1::Exemplar_globals_,
};
const char descriptor_table_protodef_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
    protodesc_cold) = {
    "\n,opentelemetry/proto/metrics/v1/metrics"
    ".proto\022\036opentelemetry.proto.metrics.v1\032*"
    "opentelemetry/proto/common/v1/common.pro"
    "to\032.opentelemetry/proto/resource/v1/reso"
    "urce.proto\"X\n\013MetricsData\022I\n\020resource_me"
    "trics\030\001 \003(\0132/.opentelemetry.proto.metric"
    "s.v1.ResourceMetrics\"\257\001\n\017ResourceMetrics"
    "\022;\n\010resource\030\001 \001(\0132).opentelemetry.proto"
    ".resource.v1.Resource\022C\n\rscope_metrics\030\002"
    " \003(\0132,.opentelemetry.proto.metrics.v1.Sc"
    "opeMetrics\022\022\n\nschema_url\030\003 \001(\tJ\006\010\350\007\020\351\007\"\237"
    "\001\n\014ScopeMetrics\022B\n\005scope\030\001 \001(\01323.opentel"
    "emetry.proto.common.v1.InstrumentationSc"
    "ope\0227\n\007metrics\030\002 \003(\0132&.opentelemetry.pro"
    "to.metrics.v1.Metric\022\022\n\nschema_url\030\003 \001(\t"
    "\"\222\003\n\006Metric\022\014\n\004name\030\001 \001(\t\022\023\n\013description"
    "\030\002 \001(\t\022\014\n\004unit\030\003 \001(\t\0226\n\005gauge\030\005 \001(\0132%.op"
    "entelemetry.proto.metrics.v1.GaugeH\000\0222\n\003"
    "sum\030\007 \001(\0132#.opentelemetry.proto.metrics."
    "v1.SumH\000\022>\n\thistogram\030\t \001(\0132).openteleme"
    "try.proto.metrics.v1.HistogramH\000\022U\n\025expo"
    "nential_histogram\030\n \001(\01324.opentelemetry."
    "proto.metrics.v1.ExponentialHistogramH\000\022"
    ":\n\007summary\030\013 \001(\0132\'.opentelemetry.proto.m"
    "etrics.v1.SummaryH\000B\006\n\004dataJ\004\010\004\020\005J\004\010\006\020\007J"
    "\004\010\010\020\t\"M\n\005Gauge\022D\n\013data_points\030\001 \003(\0132/.op"
    "entelemetry.proto.metrics.v1.NumberDataP"
    "oint\"\272\001\n\003Sum\022D\n\013data_points\030\001 \003(\0132/.open"
    "telemetry.proto.metrics.v1.NumberDataPoi"
    "nt\022W\n\027aggregation_temporality\030\002 \001(\01626.op"
    "entelemetry.proto.metrics.v1.Aggregation"
    "Temporality\022\024\n\014is_monotonic\030\003 \001(\010\"\255\001\n\tHi"
    "stogram\022G\n\013data_points\030\001 \003(\01322.opentelem"
    "etry.proto.metrics.v1.HistogramDataPoint"
    "\022W\n\027aggregation_temporality\030\002 \001(\01626.open"
    "telemetry.proto.metrics.v1.AggregationTe"
    "mporality\"\303\001\n\024ExponentialHistogram\022R\n\013da"
    "ta_points\030\001 \003(\0132=.opentelemetry.proto.me"
    "trics.v1.ExponentialHistogramDataPoint\022W"
    "\n\027aggregation_temporality\030\002 \001(\01626.opente"
    "lemetry.proto.metrics.v1.AggregationTemp"
    "orality\"P\n\007Summary\022E\n\013data_points\030\001 \003(\0132"
    "0.opentelemetry.proto.metrics.v1.Summary"
    "DataPoint\"\206\002\n\017NumberDataPoint\022;\n\nattribu"
    "tes\030\007 \003(\0132\'.opentelemetry.proto.common.v"
    "1.KeyValue\022\034\n\024start_time_unix_nano\030\002 \001(\006"
    "\022\026\n\016time_unix_nano\030\003 \001(\006\022\023\n\tas_double\030\004 "
    "\001(\001H\000\022\020\n\006as_int\030\006 \001(\020H\000\022;\n\texemplars\030\005 \003"
    "(\0132(.opentelemetry.proto.metrics.v1.Exem"
    "plar\022\r\n\005flags\030\010 \001(\rB\007\n\005valueJ\004\010\001\020\002\"\346\002\n\022H"
    "istogramDataPoint\022;\n\nattributes\030\t \003(\0132\'."
    "opentelemetry.proto.common.v1.KeyValue\022\034"
    "\n\024start_time_unix_nano\030\002 \001(\006\022\026\n\016time_uni"
    "x_nano\030\003 \001(\006\022\r\n\005count\030\004 \001(\006\022\020\n\003sum\030\005 \001(\001"
    "H\000\210\001\001\022\025\n\rbucket_counts\030\006 \003(\006\022\027\n\017explicit"
    "_bounds\030\007 \003(\001\022;\n\texemplars\030\010 \003(\0132(.opent"
    "elemetry.proto.metrics.v1.Exemplar\022\r\n\005fl"
    "ags\030\n \001(\r\022\020\n\003min\030\013 \001(\001H\001\210\001\001\022\020\n\003max\030\014 \001(\001"
    "H\002\210\001\001B\006\n\004_sumB\006\n\004_minB\006\n\004_maxJ\004\010\001\020\002\"\332\004\n\035"
    "ExponentialHistogramDataPoint\022;\n\nattribu"
    "tes\030\001 \003(\0132\'.opentelemetry.proto.common.v"
    "1.KeyValue\022\034\n\024start_time_unix_nano\030\002 \001(\006"
    "\022\026\n\016time_unix_nano\030\003 \001(\006\022\r\n\005count\030\004 \001(\006\022"
    "\020\n\003sum\030\005 \001(\001H\000\210\001\001\022\r\n\005scale\030\006 \001(\021\022\022\n\nzero"
    "_count\030\007 \001(\006\022W\n\010positive\030\010 \001(\0132E.opentel"
    "emetry.proto.metrics.v1.ExponentialHisto"
    "gramDataPoint.Buckets\022W\n\010negative\030\t \001(\0132"
    "E.opentelemetry.proto.metrics.v1.Exponen"
    "tialHistogramDataPoint.Buckets\022\r\n\005flags\030"
    "\n \001(\r\022;\n\texemplars\030\013 \003(\0132(.opentelemetry"
    ".proto.metrics.v1.Exemplar\022\020\n\003min\030\014 \001(\001H"
    "\001\210\001\001\022\020\n\003max\030\r \001(\001H\002\210\001\001\022\026\n\016zero_threshold"
    "\030\016 \001(\001\0320\n\007Buckets\022\016\n\006offset\030\001 \001(\021\022\025\n\rbuc"
    "ket_counts\030\002 \003(\004B\006\n\004_sumB\006\n\004_minB\006\n\004_max"
    "\"\305\002\n\020SummaryDataPoint\022;\n\nattributes\030\007 \003("
    "\0132\'.opentelemetry.proto.common.v1.KeyVal"
    "ue\022\034\n\024start_time_unix_nano\030\002 \001(\006\022\026\n\016time"
    "_unix_nano\030\003 \001(\006\022\r\n\005count\030\004 \001(\006\022\013\n\003sum\030\005"
    " \001(\001\022Y\n\017quantile_values\030\006 \003(\0132@.opentele"
    "metry.proto.metrics.v1.SummaryDataPoint."
    "ValueAtQuantile\022\r\n\005flags\030\010 \001(\r\0322\n\017ValueA"
    "tQuantile\022\020\n\010quantile\030\001 \001(\001\022\r\n\005value\030\002 \001"
    "(\001J\004\010\001\020\002\"\301\001\n\010Exemplar\022D\n\023filtered_attrib"
    "utes\030\007 \003(\0132\'.opentelemetry.proto.common."
    "v1.KeyValue\022\026\n\016time_unix_nano\030\002 \001(\006\022\023\n\ta"
    "s_double\030\003 \001(\001H\000\022\020\n\006as_int\030\006 \001(\020H\000\022\017\n\007sp"
    "an_id\030\004 \001(\014\022\020\n\010trace_id\030\005 \001(\014B\007\n\005valueJ\004"
    "\010\001\020\002*\214\001\n\026AggregationTemporality\022\'\n#AGGRE"
    "GATION_TEMPORALITY_UNSPECIFIED\020\000\022!\n\035AGGR"
    "EGATION_TEMPORALITY_DELTA\020\001\022&\n\"AGGREGATI"
    "ON_TEMPORALITY_CUMULATIVE\020\002*^\n\016DataPoint"
    "Flags\022\037\n\033DATA_POINT_FLAGS_DO_NOT_USE\020\000\022+"
    "\n\'DATA_POINT_FLAGS_NO_RECORDED_VALUE_MAS"
    "K\020\001B\177\n!io.opentelemetry.proto.metrics.v1"
    "B\014MetricsProtoP\001Z)go.opentelemetry.io/pr"
    "oto/otlp/metrics/v1\252\002\036OpenTelemetry.Prot"
    "o.Metrics.V1b\006proto3"
};
static const ::_pbi::DescriptorTable* PROTOBUF_NONNULL const
    descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto_deps[2] = {
        &::descriptor_table_opentelemetry_2fproto_2fcommon_2fv1_2fcommon_2eproto,
        &::descriptor_table_opentelemetry_2fproto_2fresource_2fv1_2fresource_2eproto,
};
static ::absl::once_flag descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto_once;
PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto = {
    false,
    false,
    3860,
    descriptor_table_protodef_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
    "opentelemetry/proto/metrics/v1/metrics.proto",
    &descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto_once,
    descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto_deps,
    2,
    16,
    schemas,
    file_message_globals,
    TableStruct_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto::offsets,
    file_level_enum_descriptors_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
    file_level_service_descriptors_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto,
};
namespace opentelemetry {
namespace proto {
namespace metrics {
namespace v1 {
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
AggregationTemporality_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto);
  return file_level_enum_descriptors_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto[0];
}
PROTOBUF_CONSTINIT const uint32_t AggregationTemporality_internal_data_[] = {
    196608u, 0u, };
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
DataPointFlags_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto);
  return file_level_enum_descriptors_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto[1];
}
PROTOBUF_CONSTINIT const uint32_t DataPointFlags_internal_data_[] = {
    131072u, 0u, };
// ===================================================================

MetricsData::MetricsData(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MetricsData_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.MetricsData)
}
PROTOBUF_NDEBUG_INLINE MetricsData::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::MetricsData& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        resource_metrics_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::MetricsData,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::MetricsData, _impl_.resource_metrics_)>()
          , from.resource_metrics_
        }
     {}

MetricsData::MetricsData(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const MetricsData& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MetricsData_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  MetricsData* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.MetricsData)
}
PROTOBUF_NDEBUG_INLINE MetricsData::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        resource_metrics_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::MetricsData,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::MetricsData, _impl_.resource_metrics_)>()
         }
     {}

inline void MetricsData::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
MetricsData::~MetricsData() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.MetricsData)
  SharedDtor(*this);
}
inline void MetricsData::SharedDtor(MessageLite& self) {
  MetricsData& this_ = static_cast<MetricsData&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MetricsData_class_data_ =
        MetricsData::InternalGenerateClassData_(MetricsData_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MetricsData::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MetricsData_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MetricsData_class_data_.tc_table);
  return MetricsData_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MetricsData::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MetricsData_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&MetricsData_globals_));
  return MetricsData_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const MetricsData::ParseTableT_
    MetricsData::_table_ =
        MetricsData::InternalGenerateParseTable_(MetricsData_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void MetricsData::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.MetricsData)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.resource_metrics_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL MetricsData::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const MetricsData& this_ = static_cast<const MetricsData&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL MetricsData::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const MetricsData& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.MetricsData)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .opentelemetry.proto.metrics.v1.ResourceMetrics resource_metrics = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_resource_metrics_size());
         i < n; i++) {
      const auto& repfield = this_._internal_resource_metrics().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.MetricsData)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t MetricsData::ByteSizeLong(const MessageLite& base) {
  const MetricsData& this_ = static_cast<const MetricsData&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t MetricsData::ByteSizeLong() const {
  const MetricsData& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.MetricsData)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .opentelemetry.proto.metrics.v1.ResourceMetrics resource_metrics = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_resource_metrics_size();
      for (const auto& msg : this_._internal_resource_metrics()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void MetricsData::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<MetricsData*>(&to_msg);
  auto& from = static_cast<const MetricsData&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.MetricsData)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_resource_metrics()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_resource_metrics());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void MetricsData::CopyFrom(const MetricsData& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.MetricsData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void MetricsData::InternalSwap(MetricsData* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.resource_metrics_.InternalSwap(&other->_impl_.resource_metrics_);
}

::google::protobuf::Metadata MetricsData::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void ResourceMetrics::clear_resource() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.resource_ != nullptr) _impl_.resource_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
ResourceMetrics::ResourceMetrics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ResourceMetrics_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.ResourceMetrics)
}
PROTOBUF_NDEBUG_INLINE ResourceMetrics::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::ResourceMetrics& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        scope_metrics_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::ResourceMetrics,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ResourceMetrics, _impl_.scope_metrics_)>()
          , from.scope_metrics_
        }
        ,
        schema_url_(arena, from.schema_url_) {}

ResourceMetrics::ResourceMetrics(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ResourceMetrics& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ResourceMetrics_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ResourceMetrics* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.resource_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.resource_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.ResourceMetrics)
}
PROTOBUF_NDEBUG_INLINE ResourceMetrics::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        scope_metrics_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::ResourceMetrics,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ResourceMetrics, _impl_.scope_metrics_)>()
         }
        ,
        schema_url_(arena) {}

inline void ResourceMetrics::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.resource_ = {};
}
ResourceMetrics::~ResourceMetrics() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.ResourceMetrics)
  SharedDtor(*this);
}
inline void ResourceMetrics::SharedDtor(MessageLite& self) {
  ResourceMetrics& this_ = static_cast<ResourceMetrics&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.schema_url_.Destroy();
  delete this_._impl_.resource_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ResourceMetrics_class_data_ =
        ResourceMetrics::InternalGenerateClassData_(ResourceMetrics_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ResourceMetrics::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ResourceMetrics_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ResourceMetrics_class_data_.tc_table);
  return ResourceMetrics_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ResourceMetrics::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ResourceMetrics_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ResourceMetrics_globals_));
  return ResourceMetrics_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ResourceMetrics::ParseTableT_
    ResourceMetrics::_table_ =
        ResourceMetrics::InternalGenerateParseTable_(ResourceMetrics_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ResourceMetrics::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.ResourceMetrics)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.scope_metrics_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.schema_url_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.resource_ != nullptr);
      _impl_.resource_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ResourceMetrics::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ResourceMetrics& this_ = static_cast<const ResourceMetrics&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ResourceMetrics::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ResourceMetrics& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.ResourceMetrics)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // .opentelemetry.proto.resource.v1.Resource resource = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.resource_, this_._impl_.resource_->GetCachedSize(), target,
        stream);
  }

  // repeated .opentelemetry.proto.metrics.v1.ScopeMetrics scope_metrics = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_scope_metrics_size());
         i < n; i++) {
      const auto& repfield = this_._internal_scope_metrics().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // string schema_url = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_schema_url().empty()) {
      const ::std::string& _s = this_._internal_schema_url();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "opentelemetry.proto.metrics.v1.ResourceMetrics.schema_url");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.ResourceMetrics)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ResourceMetrics::ByteSizeLong(const MessageLite& base) {
  const ResourceMetrics& this_ = static_cast<const ResourceMetrics&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ResourceMetrics::ByteSizeLong() const {
  const ResourceMetrics& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.ResourceMetrics)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // repeated .opentelemetry.proto.metrics.v1.ScopeMetrics scope_metrics = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_scope_metrics_size();
      for (const auto& msg : this_._internal_scope_metrics()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // string schema_url = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_schema_url().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_schema_url());
      }
    }
    // .opentelemetry.proto.resource.v1.Resource resource = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.resource_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ResourceMetrics::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ResourceMetrics*>(&to_msg);
  auto& from = static_cast<const ResourceMetrics&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.ResourceMetrics)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_scope_metrics()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_scope_metrics());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_schema_url().empty()) {
        _this->_internal_set_schema_url(from._internal_schema_url());
      } else {
        if (_this->_impl_.schema_url_.IsDefault()) {
          _this->_internal_set_schema_url("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.resource_ != nullptr);
      if (_this->_impl_.resource_ == nullptr) {
        _this->_impl_.resource_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.resource_);
      } else {
        _this->_impl_.resource_->MergeFrom(*from._impl_.resource_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void ResourceMetrics::CopyFrom(const ResourceMetrics& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.ResourceMetrics)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ResourceMetrics::InternalSwap(ResourceMetrics* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.scope_metrics_.InternalSwap(&other->_impl_.scope_metrics_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.schema_url_, &other->_impl_.schema_url_, arena);
  swap(_impl_.resource_, other->_impl_.resource_);
}

::google::protobuf::Metadata ResourceMetrics::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void ScopeMetrics::clear_scope() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.scope_ != nullptr) _impl_.scope_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
ScopeMetrics::ScopeMetrics(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ScopeMetrics_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.ScopeMetrics)
}
PROTOBUF_NDEBUG_INLINE ScopeMetrics::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::ScopeMetrics& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        metrics_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::ScopeMetrics,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ScopeMetrics, _impl_.metrics_)>()
          , from.metrics_
        }
        ,
        schema_url_(arena, from.schema_url_) {}

ScopeMetrics::ScopeMetrics(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ScopeMetrics& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ScopeMetrics_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ScopeMetrics* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.scope_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.scope_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.ScopeMetrics)
}
PROTOBUF_NDEBUG_INLINE ScopeMetrics::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        metrics_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::ScopeMetrics,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ScopeMetrics, _impl_.metrics_)>()
         }
        ,
        schema_url_(arena) {}

inline void ScopeMetrics::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.scope_ = {};
}
ScopeMetrics::~ScopeMetrics() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.ScopeMetrics)
  SharedDtor(*this);
}
inline void ScopeMetrics::SharedDtor(MessageLite& self) {
  ScopeMetrics& this_ = static_cast<ScopeMetrics&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.schema_url_.Destroy();
  delete this_._impl_.scope_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ScopeMetrics_class_data_ =
        ScopeMetrics::InternalGenerateClassData_(ScopeMetrics_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ScopeMetrics::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ScopeMetrics_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ScopeMetrics_class_data_.tc_table);
  return ScopeMetrics_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ScopeMetrics::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ScopeMetrics_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ScopeMetrics_globals_));
  return ScopeMetrics_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ScopeMetrics::ParseTableT_
    ScopeMetrics::_table_ =
        ScopeMetrics::InternalGenerateParseTable_(ScopeMetrics_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ScopeMetrics::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.ScopeMetrics)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.metrics_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.schema_url_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.scope_ != nullptr);
      _impl_.scope_->Clear();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ScopeMetrics::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ScopeMetrics& this_ = static_cast<const ScopeMetrics&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ScopeMetrics::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ScopeMetrics& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.ScopeMetrics)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // .opentelemetry.proto.common.v1.InstrumentationScope scope = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.scope_, this_._impl_.scope_->GetCachedSize(), target,
        stream);
  }

  // repeated .opentelemetry.proto.metrics.v1.Metric metrics = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_metrics_size());
         i < n; i++) {
      const auto& repfield = this_._internal_metrics().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // string schema_url = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_schema_url().empty()) {
      const ::std::string& _s = this_._internal_schema_url();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "opentelemetry.proto.metrics.v1.ScopeMetrics.schema_url");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.ScopeMetrics)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ScopeMetrics::ByteSizeLong(const MessageLite& base) {
  const ScopeMetrics& this_ = static_cast<const ScopeMetrics&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ScopeMetrics::ByteSizeLong() const {
  const ScopeMetrics& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.ScopeMetrics)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // repeated .opentelemetry.proto.metrics.v1.Metric metrics = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_metrics_size();
      for (const auto& msg : this_._internal_metrics()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // string schema_url = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_schema_url().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_schema_url());
      }
    }
    // .opentelemetry.proto.common.v1.InstrumentationScope scope = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.scope_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ScopeMetrics::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ScopeMetrics*>(&to_msg);
  auto& from = static_cast<const ScopeMetrics&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.ScopeMetrics)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_metrics()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_metrics());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_schema_url().empty()) {
        _this->_internal_set_schema_url(from._internal_schema_url());
      } else {
        if (_this->_impl_.schema_url_.IsDefault()) {
          _this->_internal_set_schema_url("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.scope_ != nullptr);
      if (_this->_impl_.scope_ == nullptr) {
        _this->_impl_.scope_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.scope_);
      } else {
        _this->_impl_.scope_->MergeFrom(*from._impl_.scope_);
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void ScopeMetrics::CopyFrom(const ScopeMetrics& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.ScopeMetrics)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ScopeMetrics::InternalSwap(ScopeMetrics* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.metrics_.InternalSwap(&other->_impl_.metrics_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.schema_url_, &other->_impl_.schema_url_, arena);
  swap(_impl_.scope_, other->_impl_.scope_);
}

::google::protobuf::Metadata ScopeMetrics::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void Metric::set_allocated_gauge(::opentelemetry::proto::metrics::v1::Gauge* PROTOBUF_NULLABLE gauge) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_data();
  if (gauge) {
    ::google::protobuf::Arena* submessage_arena = gauge->GetArena();
    if (message_arena != submessage_arena) {
      gauge = ::google::protobuf::internal::GetOwnedMessage(message_arena, gauge, submessage_arena);
    }
    set_has_gauge();
    _impl_.data_.gauge_ = gauge;
  }
  // @@protoc_insertion_point(field_set_allocated:opentelemetry.proto.metrics.v1.Metric.gauge)
}
void Metric::set_allocated_sum(::opentelemetry::proto::metrics::v1::Sum* PROTOBUF_NULLABLE sum) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_data();
  if (sum) {
    ::google::protobuf::Arena* submessage_arena = sum->GetArena();
    if (message_arena != submessage_arena) {
      sum = ::google::protobuf::internal::GetOwnedMessage(message_arena, sum, submessage_arena);
    }
    set_has_sum();
    _impl_.data_.sum_ = sum;
  }
  // @@protoc_insertion_point(field_set_allocated:opentelemetry.proto.metrics.v1.Metric.sum)
}
void Metric::set_allocated_histogram(::opentelemetry::proto::metrics::v1::Histogram* PROTOBUF_NULLABLE histogram) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_data();
  if (histogram) {
    ::google::protobuf::Arena* submessage_arena = histogram->GetArena();
    if (message_arena != submessage_arena) {
      histogram = ::google::protobuf::internal::GetOwnedMessage(message_arena, histogram, submessage_arena);
    }
    set_has_histogram();
    _impl_.data_.histogram_ = histogram;
  }
  // @@protoc_insertion_point(field_set_allocated:opentelemetry.proto.metrics.v1.Metric.histogram)
}
void Metric::set_allocated_exponential_histogram(::opentelemetry::proto::metrics::v1::ExponentialHistogram* PROTOBUF_NULLABLE exponential_histogram) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_data();
  if (exponential_histogram) {
    ::google::protobuf::Arena* submessage_arena = exponential_histogram->GetArena();
    if (message_arena != submessage_arena) {
      exponential_histogram = ::google::protobuf::internal::GetOwnedMessage(message_arena, exponential_histogram, submessage_arena);
    }
    set_has_exponential_histogram();
    _impl_.data_.exponential_histogram_ = exponential_histogram;
  }
  // @@protoc_insertion_point(field_set_allocated:opentelemetry.proto.metrics.v1.Metric.exponential_histogram)
}
void Metric::set_allocated_summary(::opentelemetry::proto::metrics::v1::Summary* PROTOBUF_NULLABLE summary) {
  ::google::protobuf::Arena* message_arena = GetArena();
  clear_data();
  if (summary) {
    ::google::protobuf::Arena* submessage_arena = summary->GetArena();
    if (message_arena != submessage_arena) {
      summary = ::google::protobuf::internal::GetOwnedMessage(message_arena, summary, submessage_arena);
    }
    set_has_summary();
    _impl_.data_.summary_ = summary;
  }
  // @@protoc_insertion_point(field_set_allocated:opentelemetry.proto.metrics.v1.Metric.summary)
}
Metric::Metric(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Metric_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.Metric)
}
PROTOBUF_NDEBUG_INLINE Metric::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::Metric& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        name_(arena, from.name_),
        description_(arena, from.description_),
        unit_(arena, from.unit_),
        data_{},
        _oneof_case_{from._oneof_case_[0]} {}

Metric::Metric(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Metric& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Metric_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Metric* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  switch (data_case()) {
    case DATA_NOT_SET:
      break;
      case kGauge:
        _impl_.data_.gauge_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_.gauge_);
        break;
      case kSum:
        _impl_.data_.sum_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_.sum_);
        break;
      case kHistogram:
        _impl_.data_.histogram_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_.histogram_);
        break;
      case kExponentialHistogram:
        _impl_.data_.exponential_histogram_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_.exponential_histogram_);
        break;
      case kSummary:
        _impl_.data_.summary_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_.summary_);
        break;
  }

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.Metric)
}
PROTOBUF_NDEBUG_INLINE Metric::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        name_(arena),
        description_(arena),
        unit_(arena),
        data_{},
        _oneof_case_{} {}

inline void Metric::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Metric::~Metric() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.Metric)
  SharedDtor(*this);
}
inline void Metric::SharedDtor(MessageLite& self) {
  Metric& this_ = static_cast<Metric&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.name_.Destroy();
  this_._impl_.description_.Destroy();
  this_._impl_.unit_.Destroy();
  if (this_.has_data()) {
    this_.clear_data();
  }
  this_._impl_.~Impl_();
}

void Metric::clear_data() {
// @@protoc_insertion_point(one_of_clear_start:opentelemetry.proto.metrics.v1.Metric)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (data_case()) {
    case kGauge: {
      if (GetArena() == nullptr) {
        delete _impl_.data_.gauge_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.data_.gauge_);
      }
      break;
    }
    case kSum: {
      if (GetArena() == nullptr) {
        delete _impl_.data_.sum_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.data_.sum_);
      }
      break;
    }
    case kHistogram: {
      if (GetArena() == nullptr) {
        delete _impl_.data_.histogram_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.data_.histogram_);
      }
      break;
    }
    case kExponentialHistogram: {
      if (GetArena() == nullptr) {
        delete _impl_.data_.exponential_histogram_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.data_.exponential_histogram_);
      }
      break;
    }
    case kSummary: {
      if (GetArena() == nullptr) {
        delete _impl_.data_.summary_;
      } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
        ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.data_.summary_);
      }
      break;
    }
    case DATA_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = DATA_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Metric_class_data_ =
        Metric::InternalGenerateClassData_(Metric_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Metric::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Metric_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Metric_class_data_.tc_table);
  return Metric_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Metric::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Metric_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Metric_globals_));
  return Metric_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Metric::ParseTableT_
    Metric::_table_ =
        Metric::InternalGenerateParseTable_(Metric_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Metric::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.Metric)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.name_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.description_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.unit_.ClearNonDefaultToEmpty();
    }
  }
  clear_data();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Metric::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Metric& this_ = static_cast<const Metric&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Metric::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Metric& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.Metric)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // string name = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (!this_._internal_name().empty()) {
      const ::std::string& _s = this_._internal_name();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "opentelemetry.proto.metrics.v1.Metric.name");
      target = stream->WriteStringMaybeAliased(1, _s, target);
    }
  }

  // string description = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_description().empty()) {
      const ::std::string& _s = this_._internal_description();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "opentelemetry.proto.metrics.v1.Metric.description");
      target = stream->WriteStringMaybeAliased(2, _s, target);
    }
  }

  // string unit = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (!this_._internal_unit().empty()) {
      const ::std::string& _s = this_._internal_unit();
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          _s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormatLite::SERIALIZE, "opentelemetry.proto.metrics.v1.Metric.unit");
      target = stream->WriteStringMaybeAliased(3, _s, target);
    }
  }

  switch (this_.data_case()) {
    case kGauge: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          5, *this_._impl_.data_.gauge_, this_._impl_.data_.gauge_->GetCachedSize(), target,
          stream);
      break;
    }
    case kSum: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          7, *this_._impl_.data_.sum_, this_._impl_.data_.sum_->GetCachedSize(), target,
          stream);
      break;
    }
    case kHistogram: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          9, *this_._impl_.data_.histogram_, this_._impl_.data_.histogram_->GetCachedSize(), target,
          stream);
      break;
    }
    case kExponentialHistogram: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          10, *this_._impl_.data_.exponential_histogram_, this_._impl_.data_.exponential_histogram_->GetCachedSize(), target,
          stream);
      break;
    }
    case kSummary: {
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          11, *this_._impl_.data_.summary_, this_._impl_.data_.summary_->GetCachedSize(), target,
          stream);
      break;
    }
    default:
      break;
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.Metric)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Metric::ByteSizeLong(const MessageLite& base) {
  const Metric& this_ = static_cast<const Metric&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Metric::ByteSizeLong() const {
  const Metric& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.Metric)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // string name = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!this_._internal_name().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_name());
      }
    }
    // string description = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_description().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_description());
      }
    }
    // string unit = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!this_._internal_unit().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                        this_._internal_unit());
      }
    }
  }
  switch (this_.data_case()) {
    // .opentelemetry.proto.metrics.v1.Gauge gauge = 5;
    case kGauge: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.data_.gauge_);
      break;
    }
    // .opentelemetry.proto.metrics.v1.Sum sum = 7;
    case kSum: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.data_.sum_);
      break;
    }
    // .opentelemetry.proto.metrics.v1.Histogram histogram = 9;
    case kHistogram: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.data_.histogram_);
      break;
    }
    // .opentelemetry.proto.metrics.v1.ExponentialHistogram exponential_histogram = 10;
    case kExponentialHistogram: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.data_.exponential_histogram_);
      break;
    }
    // .opentelemetry.proto.metrics.v1.Summary summary = 11;
    case kSummary: {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.data_.summary_);
      break;
    }
    case DATA_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Metric::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Metric*>(&to_msg);
  auto& from = static_cast<const Metric&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.Metric)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (!from._internal_name().empty()) {
        _this->_internal_set_name(from._internal_name());
      } else {
        if (_this->_impl_.name_.IsDefault()) {
          _this->_internal_set_name("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_description().empty()) {
        _this->_internal_set_description(from._internal_description());
      } else {
        if (_this->_impl_.description_.IsDefault()) {
          _this->_internal_set_description("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!from._internal_unit().empty()) {
        _this->_internal_set_unit(from._internal_unit());
      } else {
        if (_this->_impl_.unit_.IsDefault()) {
          _this->_internal_set_unit("");
        }
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  if (const uint32_t oneof_from_case =
          from._impl_._oneof_case_[0]) {
    const uint32_t oneof_to_case = _this->_impl_._oneof_case_[0];
    const bool oneof_needs_init = oneof_to_case != oneof_from_case;
    if (oneof_needs_init) {
      if (oneof_to_case != 0) {
        _this->clear_data();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kGauge: {
        if (oneof_needs_init) {
          _this->_impl_.data_.gauge_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_.gauge_);
        } else {
          _this->_impl_.data_.gauge_->MergeFrom(*from._impl_.data_.gauge_);
        }
        break;
      }
      case kSum: {
        if (oneof_needs_init) {
          _this->_impl_.data_.sum_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_.sum_);
        } else {
          _this->_impl_.data_.sum_->MergeFrom(*from._impl_.data_.sum_);
        }
        break;
      }
      case kHistogram: {
        if (oneof_needs_init) {
          _this->_impl_.data_.histogram_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_.histogram_);
        } else {
          _this->_impl_.data_.histogram_->MergeFrom(*from._impl_.data_.histogram_);
        }
        break;
      }
      case kExponentialHistogram: {
        if (oneof_needs_init) {
          _this->_impl_.data_.exponential_histogram_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_.exponential_histogram_);
        } else {
          _this->_impl_.data_.exponential_histogram_->MergeFrom(*from._impl_.data_.exponential_histogram_);
        }
        break;
      }
      case kSummary: {
        if (oneof_needs_init) {
          _this->_impl_.data_.summary_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_.summary_);
        } else {
          _this->_impl_.data_.summary_->MergeFrom(*from._impl_.data_.summary_);
        }
        break;
      }
      case DATA_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Metric::CopyFrom(const Metric& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.Metric)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Metric::InternalSwap(Metric* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.description_, &other->_impl_.description_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.unit_, &other->_impl_.unit_, arena);
  swap(_impl_.data_, other->_impl_.data_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::google::protobuf::Metadata Metric::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Gauge::Gauge(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Gauge_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.Gauge)
}
PROTOBUF_NDEBUG_INLINE Gauge::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::Gauge& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        data_points_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::Gauge,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Gauge, _impl_.data_points_)>()
          , from.data_points_
        }
     {}

Gauge::Gauge(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Gauge& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Gauge_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Gauge* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.Gauge)
}
PROTOBUF_NDEBUG_INLINE Gauge::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        data_points_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::Gauge,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Gauge, _impl_.data_points_)>()
         }
     {}

inline void Gauge::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Gauge::~Gauge() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.Gauge)
  SharedDtor(*this);
}
inline void Gauge::SharedDtor(MessageLite& self) {
  Gauge& this_ = static_cast<Gauge&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Gauge_class_data_ =
        Gauge::InternalGenerateClassData_(Gauge_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Gauge::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Gauge_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Gauge_class_data_.tc_table);
  return Gauge_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Gauge::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Gauge_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Gauge_globals_));
  return Gauge_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Gauge::ParseTableT_
    Gauge::_table_ =
        Gauge::InternalGenerateParseTable_(Gauge_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Gauge::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.Gauge)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.data_points_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Gauge::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Gauge& this_ = static_cast<const Gauge&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Gauge::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Gauge& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.Gauge)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .opentelemetry.proto.metrics.v1.NumberDataPoint data_points = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_data_points_size());
         i < n; i++) {
      const auto& repfield = this_._internal_data_points().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.Gauge)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Gauge::ByteSizeLong(const MessageLite& base) {
  const Gauge& this_ = static_cast<const Gauge&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Gauge::ByteSizeLong() const {
  const Gauge& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.Gauge)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .opentelemetry.proto.metrics.v1.NumberDataPoint data_points = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_data_points_size();
      for (const auto& msg : this_._internal_data_points()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Gauge::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Gauge*>(&to_msg);
  auto& from = static_cast<const Gauge&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.Gauge)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_data_points()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_data_points());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Gauge::CopyFrom(const Gauge& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.Gauge)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Gauge::InternalSwap(Gauge* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.data_points_.InternalSwap(&other->_impl_.data_points_);
}

::google::protobuf::Metadata Gauge::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Sum::Sum(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Sum_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.Sum)
}
PROTOBUF_NDEBUG_INLINE Sum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::Sum& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        data_points_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::Sum,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Sum, _impl_.data_points_)>()
          , from.data_points_
        }
     {}

Sum::Sum(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Sum& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Sum_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Sum* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, aggregation_temporality_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, aggregation_temporality_),
           offsetof(Impl_, is_monotonic_) -
               offsetof(Impl_, aggregation_temporality_) +
               sizeof(Impl_::is_monotonic_));

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.Sum)
}
PROTOBUF_NDEBUG_INLINE Sum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        data_points_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::Sum,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Sum, _impl_.data_points_)>()
         }
     {}

inline void Sum::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, aggregation_temporality_),
           0,
           offsetof(Impl_, is_monotonic_) -
               offsetof(Impl_, aggregation_temporality_) +
               sizeof(Impl_::is_monotonic_));
}
Sum::~Sum() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.Sum)
  SharedDtor(*this);
}
inline void Sum::SharedDtor(MessageLite& self) {
  Sum& this_ = static_cast<Sum&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Sum_class_data_ =
        Sum::InternalGenerateClassData_(Sum_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Sum::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Sum_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Sum_class_data_.tc_table);
  return Sum_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Sum::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Sum_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Sum_globals_));
  return Sum_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Sum::ParseTableT_
    Sum::_table_ =
        Sum::InternalGenerateParseTable_(Sum_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Sum::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.Sum)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.data_points_.Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {
    ::memset(&_impl_.aggregation_temporality_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.is_monotonic_) -
        reinterpret_cast<char*>(&_impl_.aggregation_temporality_)) + sizeof(_impl_.is_monotonic_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Sum::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Sum& this_ = static_cast<const Sum&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Sum::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Sum& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.Sum)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .opentelemetry.proto.metrics.v1.NumberDataPoint data_points = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_data_points_size());
         i < n; i++) {
      const auto& repfield = this_._internal_data_points().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .opentelemetry.proto.metrics.v1.AggregationTemporality aggregation_temporality = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_aggregation_temporality() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_aggregation_temporality(), target);
    }
  }

  // bool is_monotonic = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_is_monotonic() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          3, this_._internal_is_monotonic(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.Sum)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Sum::ByteSizeLong(const MessageLite& base) {
  const Sum& this_ = static_cast<const Sum&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Sum::ByteSizeLong() const {
  const Sum& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.Sum)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    // repeated .opentelemetry.proto.metrics.v1.NumberDataPoint data_points = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_data_points_size();
      for (const auto& msg : this_._internal_data_points()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .opentelemetry.proto.metrics.v1.AggregationTemporality aggregation_temporality = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_aggregation_temporality() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_aggregation_temporality());
      }
    }
    // bool is_monotonic = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_is_monotonic() != 0) {
        total_size += 2;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Sum::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Sum*>(&to_msg);
  auto& from = static_cast<const Sum&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.Sum)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_data_points()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_data_points());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_aggregation_temporality() != 0) {
        _this->_impl_.aggregation_temporality_ = from._impl_.aggregation_temporality_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_is_monotonic() != 0) {
        _this->_impl_.is_monotonic_ = from._impl_.is_monotonic_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Sum::CopyFrom(const Sum& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.Sum)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Sum::InternalSwap(Sum* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.data_points_.InternalSwap(&other->_impl_.data_points_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Sum, _impl_.is_monotonic_)
      + sizeof(Sum::_impl_.is_monotonic_)
      - PROTOBUF_FIELD_OFFSET(Sum, _impl_.aggregation_temporality_)>(
          reinterpret_cast<char*>(&_impl_.aggregation_temporality_),
          reinterpret_cast<char*>(&other->_impl_.aggregation_temporality_));
}

::google::protobuf::Metadata Sum::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Histogram::Histogram(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Histogram_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.Histogram)
}
PROTOBUF_NDEBUG_INLINE Histogram::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::Histogram& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        data_points_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::Histogram,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Histogram, _impl_.data_points_)>()
          , from.data_points_
        }
     {}

Histogram::Histogram(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Histogram& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Histogram_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Histogram* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.aggregation_temporality_ = from._impl_.aggregation_temporality_;

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.Histogram)
}
PROTOBUF_NDEBUG_INLINE Histogram::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        data_points_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::Histogram,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Histogram, _impl_.data_points_)>()
         }
     {}

inline void Histogram::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.aggregation_temporality_ = {};
}
Histogram::~Histogram() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.Histogram)
  SharedDtor(*this);
}
inline void Histogram::SharedDtor(MessageLite& self) {
  Histogram& this_ = static_cast<Histogram&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Histogram_class_data_ =
        Histogram::InternalGenerateClassData_(Histogram_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Histogram::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Histogram_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Histogram_class_data_.tc_table);
  return Histogram_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Histogram::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Histogram_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Histogram_globals_));
  return Histogram_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Histogram::ParseTableT_
    Histogram::_table_ =
        Histogram::InternalGenerateParseTable_(Histogram_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Histogram::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.Histogram)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.data_points_.Clear();
  }
  _impl_.aggregation_temporality_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Histogram::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Histogram& this_ = static_cast<const Histogram&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Histogram::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Histogram& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.Histogram)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .opentelemetry.proto.metrics.v1.HistogramDataPoint data_points = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_data_points_size());
         i < n; i++) {
      const auto& repfield = this_._internal_data_points().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .opentelemetry.proto.metrics.v1.AggregationTemporality aggregation_temporality = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_aggregation_temporality() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_aggregation_temporality(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.Histogram)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Histogram::ByteSizeLong(const MessageLite& base) {
  const Histogram& this_ = static_cast<const Histogram&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Histogram::ByteSizeLong() const {
  const Histogram& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.Histogram)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated .opentelemetry.proto.metrics.v1.HistogramDataPoint data_points = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_data_points_size();
      for (const auto& msg : this_._internal_data_points()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .opentelemetry.proto.metrics.v1.AggregationTemporality aggregation_temporality = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_aggregation_temporality() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_aggregation_temporality());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Histogram::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Histogram*>(&to_msg);
  auto& from = static_cast<const Histogram&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.Histogram)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_data_points()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_data_points());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_aggregation_temporality() != 0) {
        _this->_impl_.aggregation_temporality_ = from._impl_.aggregation_temporality_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Histogram::CopyFrom(const Histogram& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.Histogram)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Histogram::InternalSwap(Histogram* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.data_points_.InternalSwap(&other->_impl_.data_points_);
  swap(_impl_.aggregation_temporality_, other->_impl_.aggregation_temporality_);
}

::google::protobuf::Metadata Histogram::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

ExponentialHistogram::ExponentialHistogram(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExponentialHistogram_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.ExponentialHistogram)
}
PROTOBUF_NDEBUG_INLINE ExponentialHistogram::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::ExponentialHistogram& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        data_points_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::ExponentialHistogram,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogram, _impl_.data_points_)>()
          , from.data_points_
        }
     {}

ExponentialHistogram::ExponentialHistogram(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ExponentialHistogram& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExponentialHistogram_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExponentialHistogram* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.aggregation_temporality_ = from._impl_.aggregation_temporality_;

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.ExponentialHistogram)
}
PROTOBUF_NDEBUG_INLINE ExponentialHistogram::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        data_points_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::ExponentialHistogram,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogram, _impl_.data_points_)>()
         }
     {}

inline void ExponentialHistogram::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.aggregation_temporality_ = {};
}
ExponentialHistogram::~ExponentialHistogram() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.ExponentialHistogram)
  SharedDtor(*this);
}
inline void ExponentialHistogram::SharedDtor(MessageLite& self) {
  ExponentialHistogram& this_ = static_cast<ExponentialHistogram&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExponentialHistogram_class_data_ =
        ExponentialHistogram::InternalGenerateClassData_(ExponentialHistogram_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExponentialHistogram::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExponentialHistogram_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExponentialHistogram_class_data_.tc_table);
  return ExponentialHistogram_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExponentialHistogram::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExponentialHistogram_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExponentialHistogram_globals_));
  return ExponentialHistogram_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExponentialHistogram::ParseTableT_
    ExponentialHistogram::_table_ =
        ExponentialHistogram::InternalGenerateParseTable_(ExponentialHistogram_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExponentialHistogram::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.ExponentialHistogram)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.data_points_.Clear();
  }
  _impl_.aggregation_temporality_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ExponentialHistogram::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ExponentialHistogram& this_ = static_cast<const ExponentialHistogram&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ExponentialHistogram::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ExponentialHistogram& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.ExponentialHistogram)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint data_points = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_data_points_size());
         i < n; i++) {
      const auto& repfield = this_._internal_data_points().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // .opentelemetry.proto.metrics.v1.AggregationTemporality aggregation_temporality = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_aggregation_temporality() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteEnumToArray(
          2, this_._internal_aggregation_temporality(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.ExponentialHistogram)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExponentialHistogram::ByteSizeLong(const MessageLite& base) {
  const ExponentialHistogram& this_ = static_cast<const ExponentialHistogram&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExponentialHistogram::ByteSizeLong() const {
  const ExponentialHistogram& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.ExponentialHistogram)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated .opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint data_points = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_data_points_size();
      for (const auto& msg : this_._internal_data_points()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .opentelemetry.proto.metrics.v1.AggregationTemporality aggregation_temporality = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_aggregation_temporality() != 0) {
        total_size += 1 +
                      ::_pbi::WireFormatLite::EnumSize(this_._internal_aggregation_temporality());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ExponentialHistogram::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ExponentialHistogram*>(&to_msg);
  auto& from = static_cast<const ExponentialHistogram&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.ExponentialHistogram)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_data_points()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_data_points());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_aggregation_temporality() != 0) {
        _this->_impl_.aggregation_temporality_ = from._impl_.aggregation_temporality_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void ExponentialHistogram::CopyFrom(const ExponentialHistogram& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.ExponentialHistogram)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ExponentialHistogram::InternalSwap(ExponentialHistogram* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.data_points_.InternalSwap(&other->_impl_.data_points_);
  swap(_impl_.aggregation_temporality_, other->_impl_.aggregation_temporality_);
}

::google::protobuf::Metadata ExponentialHistogram::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

Summary::Summary(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Summary_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.Summary)
}
PROTOBUF_NDEBUG_INLINE Summary::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::Summary& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        data_points_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::Summary,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Summary, _impl_.data_points_)>()
          , from.data_points_
        }
     {}

Summary::Summary(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Summary& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Summary_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Summary* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.Summary)
}
PROTOBUF_NDEBUG_INLINE Summary::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        data_points_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::Summary,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Summary, _impl_.data_points_)>()
         }
     {}

inline void Summary::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
Summary::~Summary() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.Summary)
  SharedDtor(*this);
}
inline void Summary::SharedDtor(MessageLite& self) {
  Summary& this_ = static_cast<Summary&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Summary_class_data_ =
        Summary::InternalGenerateClassData_(Summary_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Summary::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Summary_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Summary_class_data_.tc_table);
  return Summary_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Summary::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Summary_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Summary_globals_));
  return Summary_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Summary::ParseTableT_
    Summary::_table_ =
        Summary::InternalGenerateParseTable_(Summary_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Summary::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.Summary)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.data_points_.Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Summary::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Summary& this_ = static_cast<const Summary&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Summary::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Summary& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.Summary)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .opentelemetry.proto.metrics.v1.SummaryDataPoint data_points = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_data_points_size());
         i < n; i++) {
      const auto& repfield = this_._internal_data_points().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.Summary)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Summary::ByteSizeLong(const MessageLite& base) {
  const Summary& this_ = static_cast<const Summary&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Summary::ByteSizeLong() const {
  const Summary& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.Summary)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .opentelemetry.proto.metrics.v1.SummaryDataPoint data_points = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_data_points_size();
      for (const auto& msg : this_._internal_data_points()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Summary::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Summary*>(&to_msg);
  auto& from = static_cast<const Summary&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.Summary)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _this->_internal_mutable_data_points()->InternalMergeFromWithArena(
        ::google::protobuf::MessageLite::internal_visibility(), arena,
        from._internal_data_points());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Summary::CopyFrom(const Summary& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.Summary)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Summary::InternalSwap(Summary* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.data_points_.InternalSwap(&other->_impl_.data_points_);
}

::google::protobuf::Metadata Summary::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void NumberDataPoint::clear_attributes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.attributes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
NumberDataPoint::NumberDataPoint(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NumberDataPoint_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.NumberDataPoint)
}
PROTOBUF_NDEBUG_INLINE NumberDataPoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::NumberDataPoint& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        exemplars_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::NumberDataPoint,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.exemplars_)>()
          , from.exemplars_
        }
        ,
        attributes_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::NumberDataPoint,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.attributes_)>()
          , from.attributes_
        }
        ,
        value_{},
        _oneof_case_{from._oneof_case_[0]} {}

NumberDataPoint::NumberDataPoint(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const NumberDataPoint& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NumberDataPoint_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NumberDataPoint* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, start_time_unix_nano_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, start_time_unix_nano_),
           offsetof(Impl_, flags_) -
               offsetof(Impl_, start_time_unix_nano_) +
               sizeof(Impl_::flags_));
  switch (value_case()) {
    case VALUE_NOT_SET:
      break;
      case kAsDouble:
        _impl_.value_.as_double_ = from._impl_.value_.as_double_;
        break;
      case kAsInt:
        _impl_.value_.as_int_ = from._impl_.value_.as_int_;
        break;
  }

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.NumberDataPoint)
}
PROTOBUF_NDEBUG_INLINE NumberDataPoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        exemplars_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::NumberDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.exemplars_)>()
         }
        ,
        attributes_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::NumberDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::NumberDataPoint, _impl_.attributes_)>()
         }
        ,
        value_{},
        _oneof_case_{} {}

inline void NumberDataPoint::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, start_time_unix_nano_),
           0,
           offsetof(Impl_, flags_) -
               offsetof(Impl_, start_time_unix_nano_) +
               sizeof(Impl_::flags_));
}
NumberDataPoint::~NumberDataPoint() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.NumberDataPoint)
  SharedDtor(*this);
}
inline void NumberDataPoint::SharedDtor(MessageLite& self) {
  NumberDataPoint& this_ = static_cast<NumberDataPoint&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  if (this_.has_value()) {
    this_.clear_value();
  }
  this_._impl_.~Impl_();
}

void NumberDataPoint::clear_value() {
// @@protoc_insertion_point(one_of_clear_start:opentelemetry.proto.metrics.v1.NumberDataPoint)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (value_case()) {
    case kAsDouble: {
      // No need to clear
      break;
    }
    case kAsInt: {
      // No need to clear
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = VALUE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NumberDataPoint_class_data_ =
        NumberDataPoint::InternalGenerateClassData_(NumberDataPoint_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NumberDataPoint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NumberDataPoint_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NumberDataPoint_class_data_.tc_table);
  return NumberDataPoint_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NumberDataPoint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NumberDataPoint_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&NumberDataPoint_globals_));
  return NumberDataPoint_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const NumberDataPoint::ParseTableT_
    NumberDataPoint::_table_ =
        NumberDataPoint::InternalGenerateParseTable_(NumberDataPoint_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void NumberDataPoint::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.NumberDataPoint)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.exemplars_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.attributes_.Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000001cU)) {
    ::memset(&_impl_.start_time_unix_nano_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.flags_) -
        reinterpret_cast<char*>(&_impl_.start_time_unix_nano_)) + sizeof(_impl_.flags_));
  }
  clear_value();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL NumberDataPoint::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const NumberDataPoint& this_ = static_cast<const NumberDataPoint&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL NumberDataPoint::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const NumberDataPoint& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.NumberDataPoint)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // fixed64 start_time_unix_nano = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_start_time_unix_nano() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
          2, this_._internal_start_time_unix_nano(), target);
    }
  }

  // fixed64 time_unix_nano = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_time_unix_nano() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
          3, this_._internal_time_unix_nano(), target);
    }
  }

  // double as_double = 4;
  if (this_.value_case() == kAsDouble) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(
        4, this_._internal_as_double(), target);
  }

  // repeated .opentelemetry.proto.metrics.v1.Exemplar exemplars = 5;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_exemplars_size());
         i < n; i++) {
      const auto& repfield = this_._internal_exemplars().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              5, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // sfixed64 as_int = 6;
  if (this_.value_case() == kAsInt) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSFixed64ToArray(
        6, this_._internal_as_int(), target);
  }

  // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 7;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_attributes_size());
         i < n; i++) {
      const auto& repfield = this_._internal_attributes().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              7, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // uint32 flags = 8;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_flags() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          8, this_._internal_flags(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.NumberDataPoint)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NumberDataPoint::ByteSizeLong(const MessageLite& base) {
  const NumberDataPoint& this_ = static_cast<const NumberDataPoint&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NumberDataPoint::ByteSizeLong() const {
  const NumberDataPoint& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.NumberDataPoint)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    // repeated .opentelemetry.proto.metrics.v1.Exemplar exemplars = 5;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_exemplars_size();
      for (const auto& msg : this_._internal_exemplars()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 7;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_attributes_size();
      for (const auto& msg : this_._internal_attributes()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // fixed64 start_time_unix_nano = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_start_time_unix_nano() != 0) {
        total_size += 9;
      }
    }
    // fixed64 time_unix_nano = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_time_unix_nano() != 0) {
        total_size += 9;
      }
    }
    // uint32 flags = 8;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_flags() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_flags());
      }
    }
  }
  switch (this_.value_case()) {
    // double as_double = 4;
    case kAsDouble: {
      total_size += 9;
      break;
    }
    // sfixed64 as_int = 6;
    case kAsInt: {
      total_size += 9;
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void NumberDataPoint::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<NumberDataPoint*>(&to_msg);
  auto& from = static_cast<const NumberDataPoint&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.NumberDataPoint)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_exemplars()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_exemplars());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_attributes()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_attributes());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_start_time_unix_nano() != 0) {
        _this->_impl_.start_time_unix_nano_ = from._impl_.start_time_unix_nano_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_time_unix_nano() != 0) {
        _this->_impl_.time_unix_nano_ = from._impl_.time_unix_nano_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_flags() != 0) {
        _this->_impl_.flags_ = from._impl_.flags_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  if (const uint32_t oneof_from_case =
          from._impl_._oneof_case_[0]) {
    const uint32_t oneof_to_case = _this->_impl_._oneof_case_[0];
    const bool oneof_needs_init = oneof_to_case != oneof_from_case;
    if (oneof_needs_init) {
      if (oneof_to_case != 0) {
        _this->clear_value();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kAsDouble: {
        _this->_impl_.value_.as_double_ = from._impl_.value_.as_double_;
        break;
      }
      case kAsInt: {
        _this->_impl_.value_.as_int_ = from._impl_.value_.as_int_;
        break;
      }
      case VALUE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void NumberDataPoint::CopyFrom(const NumberDataPoint& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.NumberDataPoint)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void NumberDataPoint::InternalSwap(NumberDataPoint* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.exemplars_.InternalSwap(&other->_impl_.exemplars_);
  _impl_.attributes_.InternalSwap(&other->_impl_.attributes_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.flags_)
      + sizeof(NumberDataPoint::_impl_.flags_)
      - PROTOBUF_FIELD_OFFSET(NumberDataPoint, _impl_.start_time_unix_nano_)>(
          reinterpret_cast<char*>(&_impl_.start_time_unix_nano_),
          reinterpret_cast<char*>(&other->_impl_.start_time_unix_nano_));
  swap(_impl_.value_, other->_impl_.value_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::google::protobuf::Metadata NumberDataPoint::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void HistogramDataPoint::clear_attributes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.attributes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
HistogramDataPoint::HistogramDataPoint(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, HistogramDataPoint_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.HistogramDataPoint)
}
PROTOBUF_NDEBUG_INLINE HistogramDataPoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::HistogramDataPoint& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        bucket_counts_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::HistogramDataPoint,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.bucket_counts_)>()
          , from.bucket_counts_
        }
        ,
        explicit_bounds_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::HistogramDataPoint,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.explicit_bounds_)>()
          , from.explicit_bounds_
        }
        ,
        exemplars_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::HistogramDataPoint,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.exemplars_)>()
          , from.exemplars_
        }
        ,
        attributes_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::HistogramDataPoint,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.attributes_)>()
          , from.attributes_
        }
     {}

HistogramDataPoint::HistogramDataPoint(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const HistogramDataPoint& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, HistogramDataPoint_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  HistogramDataPoint* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, start_time_unix_nano_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, start_time_unix_nano_),
           offsetof(Impl_, flags_) -
               offsetof(Impl_, start_time_unix_nano_) +
               sizeof(Impl_::flags_));

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.HistogramDataPoint)
}
PROTOBUF_NDEBUG_INLINE HistogramDataPoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        bucket_counts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::HistogramDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.bucket_counts_)>()
         }
        ,
        explicit_bounds_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::HistogramDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.explicit_bounds_)>()
         }
        ,
        exemplars_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::HistogramDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.exemplars_)>()
         }
        ,
        attributes_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::HistogramDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::HistogramDataPoint, _impl_.attributes_)>()
         }
     {}

inline void HistogramDataPoint::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, start_time_unix_nano_),
           0,
           offsetof(Impl_, flags_) -
               offsetof(Impl_, start_time_unix_nano_) +
               sizeof(Impl_::flags_));
}
HistogramDataPoint::~HistogramDataPoint() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.HistogramDataPoint)
  SharedDtor(*this);
}
inline void HistogramDataPoint::SharedDtor(MessageLite& self) {
  HistogramDataPoint& this_ = static_cast<HistogramDataPoint&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull HistogramDataPoint_class_data_ =
        HistogramDataPoint::InternalGenerateClassData_(HistogramDataPoint_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HistogramDataPoint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&HistogramDataPoint_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(HistogramDataPoint_class_data_.tc_table);
  return HistogramDataPoint_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HistogramDataPoint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&HistogramDataPoint_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&HistogramDataPoint_globals_));
  return HistogramDataPoint_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const HistogramDataPoint::ParseTableT_
    HistogramDataPoint::_table_ =
        HistogramDataPoint::InternalGenerateParseTable_(HistogramDataPoint_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void HistogramDataPoint::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.HistogramDataPoint)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.bucket_counts_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.explicit_bounds_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.exemplars_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.attributes_.Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000f0U)) {
    ::memset(&_impl_.start_time_unix_nano_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.sum_) -
        reinterpret_cast<char*>(&_impl_.start_time_unix_nano_)) + sizeof(_impl_.sum_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000700U)) {
    ::memset(&_impl_.min_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.flags_) -
        reinterpret_cast<char*>(&_impl_.min_)) + sizeof(_impl_.flags_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL HistogramDataPoint::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const HistogramDataPoint& this_ = static_cast<const HistogramDataPoint&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL HistogramDataPoint::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const HistogramDataPoint& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.HistogramDataPoint)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // fixed64 start_time_unix_nano = 2;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_start_time_unix_nano() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
          2, this_._internal_start_time_unix_nano(), target);
    }
  }

  // fixed64 time_unix_nano = 3;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_time_unix_nano() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
          3, this_._internal_time_unix_nano(), target);
    }
  }

  // fixed64 count = 4;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (this_._internal_count() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
          4, this_._internal_count(), target);
    }
  }

  // optional double sum = 5;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(
        5, this_._internal_sum(), target);
  }

  // repeated fixed64 bucket_counts = 6;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_bucket_counts_size() > 0) {
      target = stream->WriteFixedPacked(6, this_._internal_bucket_counts(), target);
    }
  }

  // repeated double explicit_bounds = 7;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_explicit_bounds_size() > 0) {
      target = stream->WriteFixedPacked(7, this_._internal_explicit_bounds(), target);
    }
  }

  // repeated .opentelemetry.proto.metrics.v1.Exemplar exemplars = 8;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_exemplars_size());
         i < n; i++) {
      const auto& repfield = this_._internal_exemplars().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              8, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 9;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_attributes_size());
         i < n; i++) {
      const auto& repfield = this_._internal_attributes().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              9, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // uint32 flags = 10;
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    if (this_._internal_flags() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          10, this_._internal_flags(), target);
    }
  }

  // optional double min = 11;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(
        11, this_._internal_min(), target);
  }

  // optional double max = 12;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(
        12, this_._internal_max(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.HistogramDataPoint)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t HistogramDataPoint::ByteSizeLong(const MessageLite& base) {
  const HistogramDataPoint& this_ = static_cast<const HistogramDataPoint&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t HistogramDataPoint::ByteSizeLong() const {
  const HistogramDataPoint& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.HistogramDataPoint)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x00000380U & cached_has_bits) * 9;
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    // repeated fixed64 bucket_counts = 6;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ::size_t data_size = ::size_t{8} *
          ::_pbi::FromIntSize(this_._internal_bucket_counts_size());
      ::size_t tag_size = data_size == 0
          ? 0
          : 1 + ::_pbi::WireFormatLite::Int32Size(
                              static_cast<::int32_t>(data_size));
      total_size += tag_size + data_size;
    }
    // repeated double explicit_bounds = 7;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ::size_t data_size = ::size_t{8} *
          ::_pbi::FromIntSize(this_._internal_explicit_bounds_size());
      ::size_t tag_size = data_size == 0
          ? 0
          : 1 + ::_pbi::WireFormatLite::Int32Size(
                              static_cast<::int32_t>(data_size));
      total_size += tag_size + data_size;
    }
    // repeated .opentelemetry.proto.metrics.v1.Exemplar exemplars = 8;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_exemplars_size();
      for (const auto& msg : this_._internal_exemplars()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 9;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1UL * this_._internal_attributes_size();
      for (const auto& msg : this_._internal_attributes()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // fixed64 start_time_unix_nano = 2;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_start_time_unix_nano() != 0) {
        total_size += 9;
      }
    }
    // fixed64 time_unix_nano = 3;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_time_unix_nano() != 0) {
        total_size += 9;
      }
    }
    // fixed64 count = 4;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (this_._internal_count() != 0) {
        total_size += 9;
      }
    }
  }
   {
    // uint32 flags = 10;
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      if (this_._internal_flags() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_flags());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void HistogramDataPoint::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<HistogramDataPoint*>(&to_msg);
  auto& from = static_cast<const HistogramDataPoint&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.HistogramDataPoint)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_bucket_counts()->MergeFrom(from._internal_bucket_counts());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_explicit_bounds()->MergeFrom(from._internal_explicit_bounds());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_exemplars()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_exemplars());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_mutable_attributes()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_attributes());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_start_time_unix_nano() != 0) {
        _this->_impl_.start_time_unix_nano_ = from._impl_.start_time_unix_nano_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_time_unix_nano() != 0) {
        _this->_impl_.time_unix_nano_ = from._impl_.time_unix_nano_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (from._internal_count() != 0) {
        _this->_impl_.count_ = from._impl_.count_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.sum_ = from._impl_.sum_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000700U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _this->_impl_.min_ = from._impl_.min_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _this->_impl_.max_ = from._impl_.max_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      if (from._internal_flags() != 0) {
        _this->_impl_.flags_ = from._impl_.flags_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void HistogramDataPoint::CopyFrom(const HistogramDataPoint& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.HistogramDataPoint)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void HistogramDataPoint::InternalSwap(HistogramDataPoint* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.bucket_counts_.InternalSwap(&other->_impl_.bucket_counts_);
  _impl_.explicit_bounds_.InternalSwap(&other->_impl_.explicit_bounds_);
  _impl_.exemplars_.InternalSwap(&other->_impl_.exemplars_);
  _impl_.attributes_.InternalSwap(&other->_impl_.attributes_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.flags_)
      + sizeof(HistogramDataPoint::_impl_.flags_)
      - PROTOBUF_FIELD_OFFSET(HistogramDataPoint, _impl_.start_time_unix_nano_)>(
          reinterpret_cast<char*>(&_impl_.start_time_unix_nano_),
          reinterpret_cast<char*>(&other->_impl_.start_time_unix_nano_));
}

::google::protobuf::Metadata HistogramDataPoint::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

ExponentialHistogramDataPoint_Buckets::ExponentialHistogramDataPoint_Buckets(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExponentialHistogramDataPoint_Buckets_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets)
}
PROTOBUF_NDEBUG_INLINE ExponentialHistogramDataPoint_Buckets::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        bucket_counts_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets, _impl_.bucket_counts_)>()
          , from.bucket_counts_
        }
        ,
        _bucket_counts_cached_byte_size_{0} {}

ExponentialHistogramDataPoint_Buckets::ExponentialHistogramDataPoint_Buckets(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ExponentialHistogramDataPoint_Buckets& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExponentialHistogramDataPoint_Buckets_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExponentialHistogramDataPoint_Buckets* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.offset_ = from._impl_.offset_;

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets)
}
PROTOBUF_NDEBUG_INLINE ExponentialHistogramDataPoint_Buckets::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        bucket_counts_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint_Buckets, _impl_.bucket_counts_)>()
         }
        ,
        _bucket_counts_cached_byte_size_{0} {}

inline void ExponentialHistogramDataPoint_Buckets::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.offset_ = {};
}
ExponentialHistogramDataPoint_Buckets::~ExponentialHistogramDataPoint_Buckets() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets)
  SharedDtor(*this);
}
inline void ExponentialHistogramDataPoint_Buckets::SharedDtor(MessageLite& self) {
  ExponentialHistogramDataPoint_Buckets& this_ = static_cast<ExponentialHistogramDataPoint_Buckets&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExponentialHistogramDataPoint_Buckets_class_data_ =
        ExponentialHistogramDataPoint_Buckets::InternalGenerateClassData_(ExponentialHistogramDataPoint_Buckets_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExponentialHistogramDataPoint_Buckets::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExponentialHistogramDataPoint_Buckets_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExponentialHistogramDataPoint_Buckets_class_data_.tc_table);
  return ExponentialHistogramDataPoint_Buckets_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExponentialHistogramDataPoint_Buckets::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExponentialHistogramDataPoint_Buckets_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExponentialHistogramDataPoint_Buckets_globals_));
  return ExponentialHistogramDataPoint_Buckets_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExponentialHistogramDataPoint_Buckets::ParseTableT_
    ExponentialHistogramDataPoint_Buckets::_table_ =
        ExponentialHistogramDataPoint_Buckets::InternalGenerateParseTable_(ExponentialHistogramDataPoint_Buckets_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExponentialHistogramDataPoint_Buckets::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.bucket_counts_.Clear();
  }
  _impl_.offset_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ExponentialHistogramDataPoint_Buckets::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ExponentialHistogramDataPoint_Buckets& this_ = static_cast<const ExponentialHistogramDataPoint_Buckets&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ExponentialHistogramDataPoint_Buckets::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ExponentialHistogramDataPoint_Buckets& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // sint32 offset = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_offset() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteSInt32ToArray(
          1, this_._internal_offset(), target);
    }
  }

  // repeated uint64 bucket_counts = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    {
      int byte_size = this_._impl_._bucket_counts_cached_byte_size_.Get();
      if (byte_size > 0) {
        target = stream->WriteUInt64Packed(
            2, this_._internal_bucket_counts(), byte_size, target);
      }
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExponentialHistogramDataPoint_Buckets::ByteSizeLong(const MessageLite& base) {
  const ExponentialHistogramDataPoint_Buckets& this_ = static_cast<const ExponentialHistogramDataPoint_Buckets&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExponentialHistogramDataPoint_Buckets::ByteSizeLong() const {
  const ExponentialHistogramDataPoint_Buckets& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated uint64 bucket_counts = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          ::_pbi::WireFormatLite::UInt64SizeWithPackedTagSize(
              this_._internal_bucket_counts(), 1,
              this_._impl_._bucket_counts_cached_byte_size_);
    }
    // sint32 offset = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_offset() != 0) {
        total_size += ::_pbi::WireFormatLite::SInt32SizePlusOne(
            this_._internal_offset());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ExponentialHistogramDataPoint_Buckets::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ExponentialHistogramDataPoint_Buckets*>(&to_msg);
  auto& from = static_cast<const ExponentialHistogramDataPoint_Buckets&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_bucket_counts()->MergeFrom(from._internal_bucket_counts());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_offset() != 0) {
        _this->_impl_.offset_ = from._impl_.offset_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void ExponentialHistogramDataPoint_Buckets::CopyFrom(const ExponentialHistogramDataPoint_Buckets& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ExponentialHistogramDataPoint_Buckets::InternalSwap(ExponentialHistogramDataPoint_Buckets* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.bucket_counts_.InternalSwap(&other->_impl_.bucket_counts_);
  swap(_impl_.offset_, other->_impl_.offset_);
}

::google::protobuf::Metadata ExponentialHistogramDataPoint_Buckets::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void ExponentialHistogramDataPoint::clear_attributes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.attributes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
ExponentialHistogramDataPoint::ExponentialHistogramDataPoint(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExponentialHistogramDataPoint_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint)
}
PROTOBUF_NDEBUG_INLINE ExponentialHistogramDataPoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        attributes_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.attributes_)>()
          , from.attributes_
        }
        ,
        exemplars_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.exemplars_)>()
          , from.exemplars_
        }
     {}

ExponentialHistogramDataPoint::ExponentialHistogramDataPoint(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ExponentialHistogramDataPoint& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExponentialHistogramDataPoint_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ExponentialHistogramDataPoint* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.positive_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.positive_)
                : nullptr;
  _impl_.negative_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.negative_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, start_time_unix_nano_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, start_time_unix_nano_),
           offsetof(Impl_, zero_threshold_) -
               offsetof(Impl_, start_time_unix_nano_) +
               sizeof(Impl_::zero_threshold_));

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint)
}
PROTOBUF_NDEBUG_INLINE ExponentialHistogramDataPoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        attributes_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.attributes_)>()
         }
        ,
        exemplars_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::ExponentialHistogramDataPoint, _impl_.exemplars_)>()
         }
     {}

inline void ExponentialHistogramDataPoint::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, positive_),
           0,
           offsetof(Impl_, zero_threshold_) -
               offsetof(Impl_, positive_) +
               sizeof(Impl_::zero_threshold_));
}
ExponentialHistogramDataPoint::~ExponentialHistogramDataPoint() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint)
  SharedDtor(*this);
}
inline void ExponentialHistogramDataPoint::SharedDtor(MessageLite& self) {
  ExponentialHistogramDataPoint& this_ = static_cast<ExponentialHistogramDataPoint&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.positive_;
  delete this_._impl_.negative_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExponentialHistogramDataPoint_class_data_ =
        ExponentialHistogramDataPoint::InternalGenerateClassData_(ExponentialHistogramDataPoint_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExponentialHistogramDataPoint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExponentialHistogramDataPoint_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExponentialHistogramDataPoint_class_data_.tc_table);
  return ExponentialHistogramDataPoint_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExponentialHistogramDataPoint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExponentialHistogramDataPoint_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&ExponentialHistogramDataPoint_globals_));
  return ExponentialHistogramDataPoint_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ExponentialHistogramDataPoint::ParseTableT_
    ExponentialHistogramDataPoint::_table_ =
        ExponentialHistogramDataPoint::InternalGenerateParseTable_(ExponentialHistogramDataPoint_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ExponentialHistogramDataPoint::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.attributes_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.exemplars_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.positive_ != nullptr);
      _impl_.positive_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.negative_ != nullptr);
      _impl_.negative_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000f0U)) {
    ::memset(&_impl_.start_time_unix_nano_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.sum_) -
        reinterpret_cast<char*>(&_impl_.start_time_unix_nano_)) + sizeof(_impl_.sum_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00003f00U)) {
    ::memset(&_impl_.zero_count_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.zero_threshold_) -
        reinterpret_cast<char*>(&_impl_.zero_count_)) + sizeof(_impl_.zero_threshold_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ExponentialHistogramDataPoint::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ExponentialHistogramDataPoint& this_ = static_cast<const ExponentialHistogramDataPoint&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ExponentialHistogramDataPoint::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ExponentialHistogramDataPoint& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_attributes_size());
         i < n; i++) {
      const auto& repfield = this_._internal_attributes().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              1, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // fixed64 start_time_unix_nano = 2;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_start_time_unix_nano() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
          2, this_._internal_start_time_unix_nano(), target);
    }
  }

  // fixed64 time_unix_nano = 3;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_time_unix_nano() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
          3, this_._internal_time_unix_nano(), target);
    }
  }

  // fixed64 count = 4;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (this_._internal_count() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
          4, this_._internal_count(), target);
    }
  }

  // optional double sum = 5;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(
        5, this_._internal_sum(), target);
  }

  // sint32 scale = 6;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    if (this_._internal_scale() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteSInt32ToArray(
          6, this_._internal_scale(), target);
    }
  }

  // fixed64 zero_count = 7;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    if (this_._internal_zero_count() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
          7, this_._internal_zero_count(), target);
    }
  }

  // .opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets positive = 8;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        8, *this_._impl_.positive_, this_._impl_.positive_->GetCachedSize(), target,
        stream);
  }

  // .opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets negative = 9;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        9, *this_._impl_.negative_, this_._impl_.negative_->GetCachedSize(), target,
        stream);
  }

  // uint32 flags = 10;
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    if (this_._internal_flags() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          10, this_._internal_flags(), target);
    }
  }

  // repeated .opentelemetry.proto.metrics.v1.Exemplar exemplars = 11;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_exemplars_size());
         i < n; i++) {
      const auto& repfield = this_._internal_exemplars().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              11, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // optional double min = 12;
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(
        12, this_._internal_min(), target);
  }

  // optional double max = 13;
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(
        13, this_._internal_max(), target);
  }

  // double zero_threshold = 14;
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    if (::absl::bit_cast<::uint64_t>(this_._internal_zero_threshold()) != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteDoubleToArray(
          14, this_._internal_zero_threshold(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExponentialHistogramDataPoint::ByteSizeLong(const MessageLite& base) {
  const ExponentialHistogramDataPoint& this_ = static_cast<const ExponentialHistogramDataPoint&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExponentialHistogramDataPoint::ByteSizeLong() const {
  const ExponentialHistogramDataPoint& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x00001880U & cached_has_bits) * 9;
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_attributes_size();
      for (const auto& msg : this_._internal_attributes()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .opentelemetry.proto.metrics.v1.Exemplar exemplars = 11;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_exemplars_size();
      for (const auto& msg : this_._internal_exemplars()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // .opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets positive = 8;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.positive_);
    }
    // .opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint.Buckets negative = 9;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.negative_);
    }
    // fixed64 start_time_unix_nano = 2;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_start_time_unix_nano() != 0) {
        total_size += 9;
      }
    }
    // fixed64 time_unix_nano = 3;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_time_unix_nano() != 0) {
        total_size += 9;
      }
    }
    // fixed64 count = 4;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (this_._internal_count() != 0) {
        total_size += 9;
      }
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00002700U)) {
    // fixed64 zero_count = 7;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      if (this_._internal_zero_count() != 0) {
        total_size += 9;
      }
    }
    // sint32 scale = 6;
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      if (this_._internal_scale() != 0) {
        total_size += ::_pbi::WireFormatLite::SInt32SizePlusOne(
            this_._internal_scale());
      }
    }
    // uint32 flags = 10;
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      if (this_._internal_flags() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_flags());
      }
    }
    // double zero_threshold = 14;
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      if (::absl::bit_cast<::uint64_t>(this_._internal_zero_threshold()) != 0) {
        total_size += 9;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ExponentialHistogramDataPoint::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ExponentialHistogramDataPoint*>(&to_msg);
  auto& from = static_cast<const ExponentialHistogramDataPoint&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_attributes()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_attributes());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_exemplars()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_exemplars());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.positive_ != nullptr);
      if (_this->_impl_.positive_ == nullptr) {
        _this->_impl_.positive_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.positive_);
      } else {
        _this->_impl_.positive_->MergeFrom(*from._impl_.positive_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.negative_ != nullptr);
      if (_this->_impl_.negative_ == nullptr) {
        _this->_impl_.negative_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.negative_);
      } else {
        _this->_impl_.negative_->MergeFrom(*from._impl_.negative_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_start_time_unix_nano() != 0) {
        _this->_impl_.start_time_unix_nano_ = from._impl_.start_time_unix_nano_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_time_unix_nano() != 0) {
        _this->_impl_.time_unix_nano_ = from._impl_.time_unix_nano_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (from._internal_count() != 0) {
        _this->_impl_.count_ = from._impl_.count_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.sum_ = from._impl_.sum_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00003f00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      if (from._internal_zero_count() != 0) {
        _this->_impl_.zero_count_ = from._impl_.zero_count_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      if (from._internal_scale() != 0) {
        _this->_impl_.scale_ = from._impl_.scale_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      if (from._internal_flags() != 0) {
        _this->_impl_.flags_ = from._impl_.flags_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      _this->_impl_.min_ = from._impl_.min_;
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      _this->_impl_.max_ = from._impl_.max_;
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      if (::absl::bit_cast<::uint64_t>(from._internal_zero_threshold()) != 0) {
        _this->_impl_.zero_threshold_ = from._impl_.zero_threshold_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void ExponentialHistogramDataPoint::CopyFrom(const ExponentialHistogramDataPoint& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.ExponentialHistogramDataPoint)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ExponentialHistogramDataPoint::InternalSwap(ExponentialHistogramDataPoint* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.attributes_.InternalSwap(&other->_impl_.attributes_);
  _impl_.exemplars_.InternalSwap(&other->_impl_.exemplars_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.zero_threshold_)
      + sizeof(ExponentialHistogramDataPoint::_impl_.zero_threshold_)
      - PROTOBUF_FIELD_OFFSET(ExponentialHistogramDataPoint, _impl_.positive_)>(
          reinterpret_cast<char*>(&_impl_.positive_),
          reinterpret_cast<char*>(&other->_impl_.positive_));
}

::google::protobuf::Metadata ExponentialHistogramDataPoint::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

SummaryDataPoint_ValueAtQuantile::SummaryDataPoint_ValueAtQuantile(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SummaryDataPoint_ValueAtQuantile_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile)
}
SummaryDataPoint_ValueAtQuantile::SummaryDataPoint_ValueAtQuantile(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SummaryDataPoint_ValueAtQuantile& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SummaryDataPoint_ValueAtQuantile_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE SummaryDataPoint_ValueAtQuantile::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void SummaryDataPoint_ValueAtQuantile::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, quantile_),
           0,
           offsetof(Impl_, value_) -
               offsetof(Impl_, quantile_) +
               sizeof(Impl_::value_));
}
SummaryDataPoint_ValueAtQuantile::~SummaryDataPoint_ValueAtQuantile() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile)
  SharedDtor(*this);
}
inline void SummaryDataPoint_ValueAtQuantile::SharedDtor(MessageLite& self) {
  SummaryDataPoint_ValueAtQuantile& this_ = static_cast<SummaryDataPoint_ValueAtQuantile&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SummaryDataPoint_ValueAtQuantile_class_data_ =
        SummaryDataPoint_ValueAtQuantile::InternalGenerateClassData_(SummaryDataPoint_ValueAtQuantile_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SummaryDataPoint_ValueAtQuantile::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SummaryDataPoint_ValueAtQuantile_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SummaryDataPoint_ValueAtQuantile_class_data_.tc_table);
  return SummaryDataPoint_ValueAtQuantile_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SummaryDataPoint_ValueAtQuantile::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SummaryDataPoint_ValueAtQuantile_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SummaryDataPoint_ValueAtQuantile_globals_));
  return SummaryDataPoint_ValueAtQuantile_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SummaryDataPoint_ValueAtQuantile::ParseTableT_
    SummaryDataPoint_ValueAtQuantile::_table_ =
        SummaryDataPoint_ValueAtQuantile::InternalGenerateParseTable_(SummaryDataPoint_ValueAtQuantile_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SummaryDataPoint_ValueAtQuantile::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.quantile_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.value_) -
        reinterpret_cast<char*>(&_impl_.quantile_)) + sizeof(_impl_.value_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL SummaryDataPoint_ValueAtQuantile::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const SummaryDataPoint_ValueAtQuantile& this_ = static_cast<const SummaryDataPoint_ValueAtQuantile&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL SummaryDataPoint_ValueAtQuantile::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const SummaryDataPoint_ValueAtQuantile& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // double quantile = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (::absl::bit_cast<::uint64_t>(this_._internal_quantile()) != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteDoubleToArray(
          1, this_._internal_quantile(), target);
    }
  }

  // double value = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (::absl::bit_cast<::uint64_t>(this_._internal_value()) != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteDoubleToArray(
          2, this_._internal_value(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SummaryDataPoint_ValueAtQuantile::ByteSizeLong(const MessageLite& base) {
  const SummaryDataPoint_ValueAtQuantile& this_ = static_cast<const SummaryDataPoint_ValueAtQuantile&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SummaryDataPoint_ValueAtQuantile::ByteSizeLong() const {
  const SummaryDataPoint_ValueAtQuantile& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // double quantile = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (::absl::bit_cast<::uint64_t>(this_._internal_quantile()) != 0) {
        total_size += 9;
      }
    }
    // double value = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (::absl::bit_cast<::uint64_t>(this_._internal_value()) != 0) {
        total_size += 9;
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void SummaryDataPoint_ValueAtQuantile::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<SummaryDataPoint_ValueAtQuantile*>(&to_msg);
  auto& from = static_cast<const SummaryDataPoint_ValueAtQuantile&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (::absl::bit_cast<::uint64_t>(from._internal_quantile()) != 0) {
        _this->_impl_.quantile_ = from._impl_.quantile_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (::absl::bit_cast<::uint64_t>(from._internal_value()) != 0) {
        _this->_impl_.value_ = from._impl_.value_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void SummaryDataPoint_ValueAtQuantile::CopyFrom(const SummaryDataPoint_ValueAtQuantile& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void SummaryDataPoint_ValueAtQuantile::InternalSwap(SummaryDataPoint_ValueAtQuantile* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SummaryDataPoint_ValueAtQuantile, _impl_.value_)
      + sizeof(SummaryDataPoint_ValueAtQuantile::_impl_.value_)
      - PROTOBUF_FIELD_OFFSET(SummaryDataPoint_ValueAtQuantile, _impl_.quantile_)>(
          reinterpret_cast<char*>(&_impl_.quantile_),
          reinterpret_cast<char*>(&other->_impl_.quantile_));
}

::google::protobuf::Metadata SummaryDataPoint_ValueAtQuantile::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void SummaryDataPoint::clear_attributes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.attributes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
SummaryDataPoint::SummaryDataPoint(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SummaryDataPoint_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.SummaryDataPoint)
}
PROTOBUF_NDEBUG_INLINE SummaryDataPoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::SummaryDataPoint& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        quantile_values_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::SummaryDataPoint,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_.quantile_values_)>()
          , from.quantile_values_
        }
        ,
        attributes_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::SummaryDataPoint,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_.attributes_)>()
          , from.attributes_
        }
     {}

SummaryDataPoint::SummaryDataPoint(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SummaryDataPoint& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SummaryDataPoint_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SummaryDataPoint* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, start_time_unix_nano_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, start_time_unix_nano_),
           offsetof(Impl_, flags_) -
               offsetof(Impl_, start_time_unix_nano_) +
               sizeof(Impl_::flags_));

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.SummaryDataPoint)
}
PROTOBUF_NDEBUG_INLINE SummaryDataPoint::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        quantile_values_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::SummaryDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_.quantile_values_)>()
         }
        ,
        attributes_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::SummaryDataPoint,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::SummaryDataPoint, _impl_.attributes_)>()
         }
     {}

inline void SummaryDataPoint::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, start_time_unix_nano_),
           0,
           offsetof(Impl_, flags_) -
               offsetof(Impl_, start_time_unix_nano_) +
               sizeof(Impl_::flags_));
}
SummaryDataPoint::~SummaryDataPoint() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.SummaryDataPoint)
  SharedDtor(*this);
}
inline void SummaryDataPoint::SharedDtor(MessageLite& self) {
  SummaryDataPoint& this_ = static_cast<SummaryDataPoint&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SummaryDataPoint_class_data_ =
        SummaryDataPoint::InternalGenerateClassData_(SummaryDataPoint_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SummaryDataPoint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SummaryDataPoint_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SummaryDataPoint_class_data_.tc_table);
  return SummaryDataPoint_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SummaryDataPoint::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SummaryDataPoint_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SummaryDataPoint_globals_));
  return SummaryDataPoint_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SummaryDataPoint::ParseTableT_
    SummaryDataPoint::_table_ =
        SummaryDataPoint::InternalGenerateParseTable_(SummaryDataPoint_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SummaryDataPoint::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.SummaryDataPoint)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.quantile_values_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.attributes_.Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000007cU)) {
    ::memset(&_impl_.start_time_unix_nano_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.flags_) -
        reinterpret_cast<char*>(&_impl_.start_time_unix_nano_)) + sizeof(_impl_.flags_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL SummaryDataPoint::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const SummaryDataPoint& this_ = static_cast<const SummaryDataPoint&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL SummaryDataPoint::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const SummaryDataPoint& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.SummaryDataPoint)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // fixed64 start_time_unix_nano = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_start_time_unix_nano() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
          2, this_._internal_start_time_unix_nano(), target);
    }
  }

  // fixed64 time_unix_nano = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_time_unix_nano() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
          3, this_._internal_time_unix_nano(), target);
    }
  }

  // fixed64 count = 4;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_count() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
          4, this_._internal_count(), target);
    }
  }

  // double sum = 5;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (::absl::bit_cast<::uint64_t>(this_._internal_sum()) != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteDoubleToArray(
          5, this_._internal_sum(), target);
    }
  }

  // repeated .opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile quantile_values = 6;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_quantile_values_size());
         i < n; i++) {
      const auto& repfield = this_._internal_quantile_values().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              6, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 7;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_attributes_size());
         i < n; i++) {
      const auto& repfield = this_._internal_attributes().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              7, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // uint32 flags = 8;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    if (this_._internal_flags() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          8, this_._internal_flags(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.SummaryDataPoint)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SummaryDataPoint::ByteSizeLong(const MessageLite& base) {
  const SummaryDataPoint& this_ = static_cast<const SummaryDataPoint&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SummaryDataPoint::ByteSizeLong() const {
  const SummaryDataPoint& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.SummaryDataPoint)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    // repeated .opentelemetry.proto.metrics.v1.SummaryDataPoint.ValueAtQuantile quantile_values = 6;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_quantile_values_size();
      for (const auto& msg : this_._internal_quantile_values()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .opentelemetry.proto.common.v1.KeyValue attributes = 7;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_attributes_size();
      for (const auto& msg : this_._internal_attributes()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // fixed64 start_time_unix_nano = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_start_time_unix_nano() != 0) {
        total_size += 9;
      }
    }
    // fixed64 time_unix_nano = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_time_unix_nano() != 0) {
        total_size += 9;
      }
    }
    // fixed64 count = 4;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_count() != 0) {
        total_size += 9;
      }
    }
    // double sum = 5;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (::absl::bit_cast<::uint64_t>(this_._internal_sum()) != 0) {
        total_size += 9;
      }
    }
    // uint32 flags = 8;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (this_._internal_flags() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_flags());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void SummaryDataPoint::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<SummaryDataPoint*>(&to_msg);
  auto& from = static_cast<const SummaryDataPoint&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.SummaryDataPoint)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_quantile_values()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_quantile_values());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_attributes()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_attributes());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_start_time_unix_nano() != 0) {
        _this->_impl_.start_time_unix_nano_ = from._impl_.start_time_unix_nano_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_time_unix_nano() != 0) {
        _this->_impl_.time_unix_nano_ = from._impl_.time_unix_nano_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_count() != 0) {
        _this->_impl_.count_ = from._impl_.count_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (::absl::bit_cast<::uint64_t>(from._internal_sum()) != 0) {
        _this->_impl_.sum_ = from._impl_.sum_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      if (from._internal_flags() != 0) {
        _this->_impl_.flags_ = from._impl_.flags_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void SummaryDataPoint::CopyFrom(const SummaryDataPoint& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.SummaryDataPoint)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void SummaryDataPoint::InternalSwap(SummaryDataPoint* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.quantile_values_.InternalSwap(&other->_impl_.quantile_values_);
  _impl_.attributes_.InternalSwap(&other->_impl_.attributes_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.flags_)
      + sizeof(SummaryDataPoint::_impl_.flags_)
      - PROTOBUF_FIELD_OFFSET(SummaryDataPoint, _impl_.start_time_unix_nano_)>(
          reinterpret_cast<char*>(&_impl_.start_time_unix_nano_),
          reinterpret_cast<char*>(&other->_impl_.start_time_unix_nano_));
}

::google::protobuf::Metadata SummaryDataPoint::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

void Exemplar::clear_filtered_attributes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filtered_attributes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
Exemplar::Exemplar(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Exemplar_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opentelemetry.proto.metrics.v1.Exemplar)
}
PROTOBUF_NDEBUG_INLINE Exemplar::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opentelemetry::proto::metrics::v1::Exemplar& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        filtered_attributes_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::opentelemetry::proto::metrics::v1::Exemplar,
              PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Exemplar, _impl_.filtered_attributes_)>()
          , from.filtered_attributes_
        }
        ,
        span_id_(arena, from.span_id_),
        trace_id_(arena, from.trace_id_),
        value_{},
        _oneof_case_{from._oneof_case_[0]} {}

Exemplar::Exemplar(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Exemplar& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Exemplar_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Exemplar* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.time_unix_nano_ = from._impl_.time_unix_nano_;
  switch (value_case()) {
    case VALUE_NOT_SET:
      break;
      case kAsDouble:
        _impl_.value_.as_double_ = from._impl_.value_.as_double_;
        break;
      case kAsInt:
        _impl_.value_.as_int_ = from._impl_.value_.as_int_;
        break;
  }

  // @@protoc_insertion_point(copy_constructor:opentelemetry.proto.metrics.v1.Exemplar)
}
PROTOBUF_NDEBUG_INLINE Exemplar::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        filtered_attributes_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::opentelemetry::proto::metrics::v1::Exemplar,
            PROTOBUF_FIELD_OFFSET(::opentelemetry::proto::metrics::v1::Exemplar, _impl_.filtered_attributes_)>()
         }
        ,
        span_id_(arena),
        trace_id_(arena),
        value_{},
        _oneof_case_{} {}

inline void Exemplar::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.time_unix_nano_ = {};
}
Exemplar::~Exemplar() {
  // @@protoc_insertion_point(destructor:opentelemetry.proto.metrics.v1.Exemplar)
  SharedDtor(*this);
}
inline void Exemplar::SharedDtor(MessageLite& self) {
  Exemplar& this_ = static_cast<Exemplar&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.span_id_.Destroy();
  this_._impl_.trace_id_.Destroy();
  if (this_.has_value()) {
    this_.clear_value();
  }
  this_._impl_.~Impl_();
}

void Exemplar::clear_value() {
// @@protoc_insertion_point(one_of_clear_start:opentelemetry.proto.metrics.v1.Exemplar)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (value_case()) {
    case kAsDouble: {
      // No need to clear
      break;
    }
    case kAsInt: {
      // No need to clear
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = VALUE_NOT_SET;
}


#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Exemplar_class_data_ =
        Exemplar::InternalGenerateClassData_(Exemplar_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Exemplar::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Exemplar_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Exemplar_class_data_.tc_table);
  return Exemplar_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Exemplar::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Exemplar_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&Exemplar_globals_));
  return Exemplar_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Exemplar::ParseTableT_
    Exemplar::_table_ =
        Exemplar::InternalGenerateParseTable_(Exemplar_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Exemplar::Clear() {
// @@protoc_insertion_point(message_clear_start:opentelemetry.proto.metrics.v1.Exemplar)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.filtered_attributes_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.span_id_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.trace_id_.ClearNonDefaultToEmpty();
    }
  }
  _impl_.time_unix_nano_ = ::uint64_t{0u};
  clear_value();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Exemplar::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Exemplar& this_ = static_cast<const Exemplar&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Exemplar::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Exemplar& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opentelemetry.proto.metrics.v1.Exemplar)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // fixed64 time_unix_nano = 2;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_time_unix_nano() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFixed64ToArray(
          2, this_._internal_time_unix_nano(), target);
    }
  }

  // double as_double = 3;
  if (this_.value_case() == kAsDouble) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(
        3, this_._internal_as_double(), target);
  }

  // bytes span_id = 4;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_span_id().empty()) {
      const ::std::string& _s = this_._internal_span_id();
      target = stream->WriteBytesMaybeAliased(4, _s, target);
    }
  }

  // bytes trace_id = 5;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (!this_._internal_trace_id().empty()) {
      const ::std::string& _s = this_._internal_trace_id();
      target = stream->WriteBytesMaybeAliased(5, _s, target);
    }
  }

  // sfixed64 as_int = 6;
  if (this_.value_case() == kAsInt) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSFixed64ToArray(
        6, this_._internal_as_int(), target);
  }

  // repeated .opentelemetry.proto.common.v1.KeyValue filtered_attributes = 7;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_filtered_attributes_size());
         i < n; i++) {
      const auto& repfield = this_._internal_filtered_attributes().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              7, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opentelemetry.proto.metrics.v1.Exemplar)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Exemplar::ByteSizeLong(const MessageLite& base) {
  const Exemplar& this_ = static_cast<const Exemplar&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Exemplar::ByteSizeLong() const {
  const Exemplar& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opentelemetry.proto.metrics.v1.Exemplar)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // repeated .opentelemetry.proto.common.v1.KeyValue filtered_attributes = 7;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_filtered_attributes_size();
      for (const auto& msg : this_._internal_filtered_attributes()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // bytes span_id = 4;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_span_id().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_span_id());
      }
    }
    // bytes trace_id = 5;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!this_._internal_trace_id().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_trace_id());
      }
    }
    // fixed64 time_unix_nano = 2;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_time_unix_nano() != 0) {
        total_size += 9;
      }
    }
  }
  switch (this_.value_case()) {
    // double as_double = 3;
    case kAsDouble: {
      total_size += 9;
      break;
    }
    // sfixed64 as_int = 6;
    case kAsInt: {
      total_size += 9;
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Exemplar::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Exemplar*>(&to_msg);
  auto& from = static_cast<const Exemplar&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opentelemetry.proto.metrics.v1.Exemplar)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_filtered_attributes()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_filtered_attributes());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_span_id().empty()) {
        _this->_internal_set_span_id(from._internal_span_id());
      } else {
        if (_this->_impl_.span_id_.IsDefault()) {
          _this->_internal_set_span_id("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (!from._internal_trace_id().empty()) {
        _this->_internal_set_trace_id(from._internal_trace_id());
      } else {
        if (_this->_impl_.trace_id_.IsDefault()) {
          _this->_internal_set_trace_id("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_time_unix_nano() != 0) {
        _this->_impl_.time_unix_nano_ = from._impl_.time_unix_nano_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  if (const uint32_t oneof_from_case =
          from._impl_._oneof_case_[0]) {
    const uint32_t oneof_to_case = _this->_impl_._oneof_case_[0];
    const bool oneof_needs_init = oneof_to_case != oneof_from_case;
    if (oneof_needs_init) {
      if (oneof_to_case != 0) {
        _this->clear_value();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kAsDouble: {
        _this->_impl_.value_.as_double_ = from._impl_.value_.as_double_;
        break;
      }
      case kAsInt: {
        _this->_impl_.value_.as_int_ = from._impl_.value_.as_int_;
        break;
      }
      case VALUE_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Exemplar::CopyFrom(const Exemplar& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:opentelemetry.proto.metrics.v1.Exemplar)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Exemplar::InternalSwap(Exemplar* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.filtered_attributes_.InternalSwap(&other->_impl_.filtered_attributes_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.span_id_, &other->_impl_.span_id_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.trace_id_, &other->_impl_.trace_id_, arena);
  swap(_impl_.time_unix_nano_, other->_impl_.time_unix_nano_);
  swap(_impl_.value_, other->_impl_.value_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::google::protobuf::Metadata Exemplar::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace metrics
}  // namespace proto
}  // namespace opentelemetry
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
    _static_init2_ [[maybe_unused]] =
        (::_pbi::AddDescriptors(&descriptor_table_opentelemetry_2fproto_2fmetrics_2fv1_2fmetrics_2eproto),
         ::std::false_type{});
#include "google/protobuf/port_undef.inc"
