Coverage Report

Created: 2026-02-14 06:29

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/perfetto/include/perfetto/protozero/field_writer.h
Line
Count
Source
1
/*
2
 * Copyright (C) 2021 The Android Open Source Project
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *      http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
17
#include "perfetto/protozero/message.h"
18
#include "perfetto/protozero/proto_utils.h"
19
20
#ifndef INCLUDE_PERFETTO_PROTOZERO_FIELD_WRITER_H_
21
#define INCLUDE_PERFETTO_PROTOZERO_FIELD_WRITER_H_
22
23
namespace protozero {
24
namespace internal {
25
26
template <proto_utils::ProtoSchemaType proto_schema_type>
27
struct FieldWriter {
28
  static_assert(proto_schema_type != proto_utils::ProtoSchemaType::kMessage,
29
                "FieldWriter can't be used with nested messages");
30
};
31
32
template <>
33
struct FieldWriter<proto_utils::ProtoSchemaType::kDouble> {
34
0
  inline static void Append(Message& message, uint32_t field_id, double value) {
35
0
    message.AppendFixed(field_id, value);
36
0
  }
37
};
38
39
template <>
40
struct FieldWriter<proto_utils::ProtoSchemaType::kFloat> {
41
0
  inline static void Append(Message& message, uint32_t field_id, float value) {
42
0
    message.AppendFixed(field_id, value);
43
0
  }
44
};
45
46
template <>
47
struct FieldWriter<proto_utils::ProtoSchemaType::kBool> {
48
1.54k
  inline static void Append(Message& message, uint32_t field_id, bool value) {
49
1.54k
    message.AppendTinyVarInt(field_id, value);
50
1.54k
  }
51
};
52
53
template <>
54
struct FieldWriter<proto_utils::ProtoSchemaType::kInt32> {
55
  inline static void Append(Message& message,
56
                            uint32_t field_id,
57
6.04k
                            int32_t value) {
58
6.04k
    message.AppendVarInt(field_id, value);
59
6.04k
  }
60
};
61
62
template <>
63
struct FieldWriter<proto_utils::ProtoSchemaType::kInt64> {
64
  inline static void Append(Message& message,
65
                            uint32_t field_id,
66
902
                            int64_t value) {
67
902
    message.AppendVarInt(field_id, value);
68
902
  }
69
};
70
71
template <>
72
struct FieldWriter<proto_utils::ProtoSchemaType::kUint32> {
73
  inline static void Append(Message& message,
74
                            uint32_t field_id,
75
13.5k
                            uint32_t value) {
76
13.5k
    message.AppendVarInt(field_id, value);
77
13.5k
  }
78
};
79
80
template <>
81
struct FieldWriter<proto_utils::ProtoSchemaType::kUint64> {
82
  inline static void Append(Message& message,
83
                            uint32_t field_id,
84
16.9k
                            uint64_t value) {
85
16.9k
    message.AppendVarInt(field_id, value);
86
16.9k
  }
87
};
88
89
template <>
90
struct FieldWriter<proto_utils::ProtoSchemaType::kSint32> {
91
  inline static void Append(Message& message,
92
                            uint32_t field_id,
93
0
                            int32_t value) {
94
0
    message.AppendSignedVarInt(field_id, value);
95
0
  }
96
};
97
98
template <>
99
struct FieldWriter<proto_utils::ProtoSchemaType::kSint64> {
100
  inline static void Append(Message& message,
101
                            uint32_t field_id,
102
0
                            int64_t value) {
103
0
    message.AppendSignedVarInt(field_id, value);
104
0
  }
105
};
106
107
template <>
108
struct FieldWriter<proto_utils::ProtoSchemaType::kFixed32> {
109
  inline static void Append(Message& message,
110
                            uint32_t field_id,
111
0
                            uint32_t value) {
112
0
    message.AppendFixed(field_id, value);
113
0
  }
114
};
115
116
template <>
117
struct FieldWriter<proto_utils::ProtoSchemaType::kFixed64> {
118
  inline static void Append(Message& message,
119
                            uint32_t field_id,
120
0
                            uint64_t value) {
121
0
    message.AppendFixed(field_id, value);
122
0
  }
123
};
124
125
template <>
126
struct FieldWriter<proto_utils::ProtoSchemaType::kSfixed32> {
127
  inline static void Append(Message& message,
128
                            uint32_t field_id,
129
0
                            int32_t value) {
130
0
    message.AppendFixed(field_id, value);
131
0
  }
132
};
133
134
template <>
135
struct FieldWriter<proto_utils::ProtoSchemaType::kSfixed64> {
136
  inline static void Append(Message& message,
137
                            uint32_t field_id,
138
0
                            int64_t value) {
139
0
    message.AppendFixed(field_id, value);
140
0
  }
141
};
142
143
template <>
144
struct FieldWriter<proto_utils::ProtoSchemaType::kEnum> {
145
  template <typename EnumType>
146
  inline static void Append(Message& message,
147
                            uint32_t field_id,
148
1.99k
                            EnumType value) {
149
1.99k
    message.AppendVarInt(field_id, value);
150
1.99k
  }
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::FtraceClock>(protozero::Message&, unsigned int, perfetto::protos::pbzero::FtraceClock)
void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::FtraceParseStatus>(protozero::Message&, unsigned int, perfetto::protos::pbzero::FtraceParseStatus)
Line
Count
Source
148
1.09k
                            EnumType value) {
149
1.09k
    message.AppendVarInt(field_id, value);
150
1.09k
  }
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_KprobeEvent::KprobeType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_KprobeEvent::KprobeType)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_FtraceStats::Phase>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_FtraceStats::Phase)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_InodeFileMap_Entry::Type>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_InodeFileMap_Entry::Type)
void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::BuiltinClock>(protozero::Message&, unsigned int, perfetto::protos::pbzero::BuiltinClock)
Line
Count
Source
148
902
                            EnumType value) {
149
902
    message.AppendVarInt(field_id, value);
150
902
  }
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceStats::FinalFlushOutcome>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceStats::FinalFlushOutcome)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig::LockdownModeOperation>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig::LockdownModeOperation)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig::CompressionType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig::CompressionType)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig::StatsdLogging>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig::StatsdLogging)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig_TraceFilter::StringFilterPolicy>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig_TraceFilter::StringFilterPolicy)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig_TriggerConfig::TriggerMode>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig_TriggerConfig::TriggerMode)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig_BufferConfig::FillPolicy>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceConfig_BufferConfig::FillPolicy)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_SysStats_PsiSample::PsiResource>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_SysStats_PsiSample::PsiResource)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::VmstatCounters>(protozero::Message&, unsigned int, perfetto::protos::pbzero::VmstatCounters)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::MeminfoCounters>(protozero::Message&, unsigned int, perfetto::protos::pbzero::MeminfoCounters)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_KernelWakelockData_Wakelock::Type>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_KernelWakelockData_Wakelock::Type)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::AndroidLogId>(protozero::Message&, unsigned int, perfetto::protos::pbzero::AndroidLogId)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::AndroidLogPriority>(protozero::Message&, unsigned int, perfetto::protos::pbzero::AndroidLogPriority)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_AndroidPowerConfig::BatteryCounters>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_AndroidPowerConfig::BatteryCounters)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ProcessStatsConfig::Quirks>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ProcessStatsConfig::Quirks)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::AtomId>(protozero::Message&, unsigned int, perfetto::protos::pbzero::AtomId)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_SysStatsConfig::StatCounters>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_SysStatsConfig::StatCounters)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_Profiling::CpuMode>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_Profiling::CpuMode)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_Profiling::StackUnwindError>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_Profiling::StackUnwindError)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_PerfSample::SampleSkipReason>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_PerfSample::SampleSkipReason)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_PerfSample_ProducerEvent::DataSourceStopReason>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_PerfSample_ProducerEvent::DataSourceStopReason)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ProfilePacket_ProcessHeapSamples::ClientError>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ProfilePacket_ProcessHeapSamples::ClientError)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ThreadDescriptor::ChromeThreadType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ThreadDescriptor::ChromeThreadType)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TrackEvent::Type>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TrackEvent::Type)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TrackEvent_LegacyEvent::FlowDirection>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TrackEvent_LegacyEvent::FlowDirection)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TrackEvent_LegacyEvent::InstantEventScope>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TrackEvent_LegacyEvent::InstantEventScope)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_DebugAnnotation_NestedValue::NestedType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_DebugAnnotation_NestedValue::NestedType)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_FieldDescriptorProto::Label>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_FieldDescriptorProto::Label)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_FieldDescriptorProto::Type>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_FieldDescriptorProto::Type)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ResetTraceProcessorArgs::DropTrackEventDataBefore>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ResetTraceProcessorArgs::DropTrackEventDataBefore)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ResetTraceProcessorArgs::ParsingMode>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ResetTraceProcessorArgs::ParsingMode)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::MetatraceCategories>(protozero::Message&, unsigned int, perfetto::protos::pbzero::MetatraceCategories)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ComputeMetricArgs::ResultFormat>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ComputeMetricArgs::ResultFormat)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TraceProcessorRpc::TraceProcessorMethod>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TraceProcessorRpc::TraceProcessorMethod)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeLegacyIpc::MessageClass>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeLegacyIpc::MessageClass)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeProcessDescriptor::ProcessType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeProcessDescriptor::ProcessType)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeThreadDescriptor::ThreadType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeThreadDescriptor::ThreadType)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_MemoryTrackerSnapshot::LevelOfDetail>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_MemoryTrackerSnapshot::LevelOfDetail)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_MemoryTrackerSnapshot_ProcessSnapshot_MemoryNode_MemoryNodeEntry::Units>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_MemoryTrackerSnapshot_ProcessSnapshot_MemoryNode_MemoryNodeEntry::Units)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_BackgroundTracingMetadata_TriggerRule::TriggerType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_BackgroundTracingMetadata_TriggerRule::TriggerType)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_BackgroundTracingMetadata_TriggerRule_NamedRule::EventType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_BackgroundTracingMetadata_TriggerRule_NamedRule::EventType)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::TrafficDirection>(protozero::Message&, unsigned int, perfetto::protos::pbzero::TrafficDirection)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_PerfEvents::Counter>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_PerfEvents::Counter)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_PerfEvents::PerfClock>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_PerfEvents::PerfClock)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeLegacyJsonTrace::TraceType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeLegacyJsonTrace::TraceType)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeTracedValue::NestedType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeTracedValue::NestedType)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_CounterDescriptor::BuiltinCounterType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_CounterDescriptor::BuiltinCounterType)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_CounterDescriptor::Unit>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_CounterDescriptor::Unit)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_BeginImplFrameArgs::State>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_BeginImplFrameArgs::State)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_BeginFrameArgs::BeginFrameArgsType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_BeginFrameArgs::BeginFrameArgsType)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MinorState::TreePriority>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MinorState::TreePriority)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MinorState::ScrollHandlerState>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MinorState::ScrollHandlerState)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::ChromeCompositorSchedulerAction>(protozero::Message&, unsigned int, perfetto::protos::pbzero::ChromeCompositorSchedulerAction)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::BeginImplFrameState>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::BeginImplFrameState)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::BeginMainFrameState>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::BeginMainFrameState)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::LayerTreeFrameSinkState>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::LayerTreeFrameSinkState)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::ForcedRedrawOnTimeoutState>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorStateMachine_MajorState::ForcedRedrawOnTimeoutState)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorSchedulerState::BeginImplFrameDeadlineMode>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ChromeCompositorSchedulerState::BeginImplFrameDeadlineMode)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_LogMessage::Priority>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_LogMessage::Priority)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_ProcessDescriptor::ChromeProcessType>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_ProcessDescriptor::ChromeProcessType)
Unexecuted instantiation: void protozero::internal::FieldWriter<(protozero::proto_utils::ProtoSchemaType)14>::Append<perfetto::protos::pbzero::perfetto_pbzero_enum_TrackDescriptor::ChildTracksOrdering>(protozero::Message&, unsigned int, perfetto::protos::pbzero::perfetto_pbzero_enum_TrackDescriptor::ChildTracksOrdering)
151
};
152
153
template <>
154
struct FieldWriter<proto_utils::ProtoSchemaType::kString> {
155
  inline static void Append(Message& message,
156
                            uint32_t field_id,
157
                            const char* data,
158
0
                            size_t size) {
159
0
    message.AppendBytes(field_id, data, size);
160
0
  }
161
162
  inline static void Append(Message& message,
163
                            uint32_t field_id,
164
2.70k
                            const std::string& value) {
165
2.70k
    message.AppendBytes(field_id, value.data(), value.size());
166
2.70k
  }
167
};
168
169
template <>
170
struct FieldWriter<proto_utils::ProtoSchemaType::kBytes> {
171
  inline static void Append(Message& message,
172
                            uint32_t field_id,
173
                            const uint8_t* data,
174
0
                            size_t size) {
175
0
    message.AppendBytes(field_id, data, size);
176
0
  }
177
178
  inline static void Append(Message& message,
179
                            uint32_t field_id,
180
0
                            const std::string& value) {
181
0
    message.AppendBytes(field_id, value.data(), value.size());
182
0
  }
183
};
184
185
}  // namespace internal
186
}  // namespace protozero
187
188
#endif  // INCLUDE_PERFETTO_PROTOZERO_FIELD_WRITER_H_