Add static constexpr type to RTC event log events.

This allows (among other things) type-checked down-casts (similar to dynamic_cast) This will be used in a follow-up CL.

This CL also moves some one-liner functions from the .cc file to the .h file.

Bug: webrtc:11933
Change-Id: Ic89de8fa6c445ecbe108f2fbf68b44b655f819f5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/199970
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32905}
diff --git a/logging/rtc_event_log/events/rtc_event_alr_state.cc b/logging/rtc_event_log/events/rtc_event_alr_state.cc
index 8ab7f79..3c307b9 100644
--- a/logging/rtc_event_log/events/rtc_event_alr_state.cc
+++ b/logging/rtc_event_log/events/rtc_event_alr_state.cc
@@ -21,14 +21,6 @@
 
 RtcEventAlrState::~RtcEventAlrState() = default;
 
-RtcEvent::Type RtcEventAlrState::GetType() const {
-  return RtcEvent::Type::AlrStateEvent;
-}
-
-bool RtcEventAlrState::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventAlrState> RtcEventAlrState::Copy() const {
   return absl::WrapUnique<RtcEventAlrState>(new RtcEventAlrState(*this));
 }
diff --git a/logging/rtc_event_log/events/rtc_event_alr_state.h b/logging/rtc_event_log/events/rtc_event_alr_state.h
index 0869aa4..2e265d7 100644
--- a/logging/rtc_event_log/events/rtc_event_alr_state.h
+++ b/logging/rtc_event_log/events/rtc_event_alr_state.h
@@ -19,12 +19,13 @@
 
 class RtcEventAlrState final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::AlrStateEvent;
+
   explicit RtcEventAlrState(bool in_alr);
   ~RtcEventAlrState() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventAlrState> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.cc b/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.cc
index 7378316..5f2d55c 100644
--- a/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.cc
+++ b/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.cc
@@ -31,14 +31,6 @@
 
 RtcEventAudioNetworkAdaptation::~RtcEventAudioNetworkAdaptation() = default;
 
-RtcEvent::Type RtcEventAudioNetworkAdaptation::GetType() const {
-  return RtcEvent::Type::AudioNetworkAdaptation;
-}
-
-bool RtcEventAudioNetworkAdaptation::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventAudioNetworkAdaptation>
 RtcEventAudioNetworkAdaptation::Copy() const {
   return absl::WrapUnique(new RtcEventAudioNetworkAdaptation(*this));
diff --git a/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h b/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h
index 7c50054..3fbfa81 100644
--- a/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h
+++ b/logging/rtc_event_log/events/rtc_event_audio_network_adaptation.h
@@ -21,13 +21,14 @@
 
 class RtcEventAudioNetworkAdaptation final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::AudioNetworkAdaptation;
+
   explicit RtcEventAudioNetworkAdaptation(
       std::unique_ptr<AudioEncoderRuntimeConfig> config);
   ~RtcEventAudioNetworkAdaptation() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventAudioNetworkAdaptation> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_audio_playout.cc b/logging/rtc_event_log/events/rtc_event_audio_playout.cc
index 6c4aa98..dae61c4 100644
--- a/logging/rtc_event_log/events/rtc_event_audio_playout.cc
+++ b/logging/rtc_event_log/events/rtc_event_audio_playout.cc
@@ -19,14 +19,6 @@
 RtcEventAudioPlayout::RtcEventAudioPlayout(const RtcEventAudioPlayout& other)
     : RtcEvent(other.timestamp_us_), ssrc_(other.ssrc_) {}
 
-RtcEvent::Type RtcEventAudioPlayout::GetType() const {
-  return RtcEvent::Type::AudioPlayout;
-}
-
-bool RtcEventAudioPlayout::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventAudioPlayout> RtcEventAudioPlayout::Copy() const {
   return absl::WrapUnique<RtcEventAudioPlayout>(
       new RtcEventAudioPlayout(*this));
diff --git a/logging/rtc_event_log/events/rtc_event_audio_playout.h b/logging/rtc_event_log/events/rtc_event_audio_playout.h
index 45836b7..ab7f7a8 100644
--- a/logging/rtc_event_log/events/rtc_event_audio_playout.h
+++ b/logging/rtc_event_log/events/rtc_event_audio_playout.h
@@ -21,12 +21,13 @@
 
 class RtcEventAudioPlayout final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::AudioPlayout;
+
   explicit RtcEventAudioPlayout(uint32_t ssrc);
   ~RtcEventAudioPlayout() override = default;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventAudioPlayout> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.cc b/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.cc
index 5cdfb47..87caaff 100644
--- a/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.cc
+++ b/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.cc
@@ -31,14 +31,6 @@
 
 RtcEventAudioReceiveStreamConfig::~RtcEventAudioReceiveStreamConfig() = default;
 
-RtcEvent::Type RtcEventAudioReceiveStreamConfig::GetType() const {
-  return RtcEvent::Type::AudioReceiveStreamConfig;
-}
-
-bool RtcEventAudioReceiveStreamConfig::IsConfigEvent() const {
-  return true;
-}
-
 std::unique_ptr<RtcEventAudioReceiveStreamConfig>
 RtcEventAudioReceiveStreamConfig::Copy() const {
   return absl::WrapUnique<RtcEventAudioReceiveStreamConfig>(
diff --git a/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h b/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h
index 67f2860..8204024 100644
--- a/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h
+++ b/logging/rtc_event_log/events/rtc_event_audio_receive_stream_config.h
@@ -23,13 +23,14 @@
 
 class RtcEventAudioReceiveStreamConfig final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::AudioReceiveStreamConfig;
+
   explicit RtcEventAudioReceiveStreamConfig(
       std::unique_ptr<rtclog::StreamConfig> config);
   ~RtcEventAudioReceiveStreamConfig() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return true; }
 
   std::unique_ptr<RtcEventAudioReceiveStreamConfig> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.cc b/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.cc
index f4403af..681ae11 100644
--- a/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.cc
+++ b/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.cc
@@ -31,14 +31,6 @@
 
 RtcEventAudioSendStreamConfig::~RtcEventAudioSendStreamConfig() = default;
 
-RtcEvent::Type RtcEventAudioSendStreamConfig::GetType() const {
-  return RtcEvent::Type::AudioSendStreamConfig;
-}
-
-bool RtcEventAudioSendStreamConfig::IsConfigEvent() const {
-  return true;
-}
-
 std::unique_ptr<RtcEventAudioSendStreamConfig>
 RtcEventAudioSendStreamConfig::Copy() const {
   return absl::WrapUnique<RtcEventAudioSendStreamConfig>(
diff --git a/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h b/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h
index 8617b95..477ebaa 100644
--- a/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h
+++ b/logging/rtc_event_log/events/rtc_event_audio_send_stream_config.h
@@ -23,13 +23,14 @@
 
 class RtcEventAudioSendStreamConfig final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::AudioSendStreamConfig;
+
   explicit RtcEventAudioSendStreamConfig(
       std::unique_ptr<rtclog::StreamConfig> config);
   ~RtcEventAudioSendStreamConfig() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return true; }
 
   std::unique_ptr<RtcEventAudioSendStreamConfig> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc
index 94d9ece..f3f1219 100644
--- a/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc
+++ b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.cc
@@ -28,14 +28,6 @@
 
 RtcEventBweUpdateDelayBased::~RtcEventBweUpdateDelayBased() = default;
 
-RtcEvent::Type RtcEventBweUpdateDelayBased::GetType() const {
-  return RtcEvent::Type::BweUpdateDelayBased;
-}
-
-bool RtcEventBweUpdateDelayBased::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventBweUpdateDelayBased> RtcEventBweUpdateDelayBased::Copy()
     const {
   return absl::WrapUnique<RtcEventBweUpdateDelayBased>(
diff --git a/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h
index 8908ce2..a0a407a 100644
--- a/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h
+++ b/logging/rtc_event_log/events/rtc_event_bwe_update_delay_based.h
@@ -23,13 +23,14 @@
 
 class RtcEventBweUpdateDelayBased final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::BweUpdateDelayBased;
+
   RtcEventBweUpdateDelayBased(int32_t bitrate_bps,
                               BandwidthUsage detector_state);
   ~RtcEventBweUpdateDelayBased() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventBweUpdateDelayBased> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.cc b/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.cc
index 8453238..44524ab 100644
--- a/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.cc
+++ b/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.cc
@@ -30,14 +30,6 @@
 
 RtcEventBweUpdateLossBased::~RtcEventBweUpdateLossBased() = default;
 
-RtcEvent::Type RtcEventBweUpdateLossBased::GetType() const {
-  return RtcEvent::Type::BweUpdateLossBased;
-}
-
-bool RtcEventBweUpdateLossBased::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventBweUpdateLossBased> RtcEventBweUpdateLossBased::Copy()
     const {
   return absl::WrapUnique<RtcEventBweUpdateLossBased>(
diff --git a/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h b/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h
index 78829a9..039de71 100644
--- a/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h
+++ b/logging/rtc_event_log/events/rtc_event_bwe_update_loss_based.h
@@ -21,14 +21,15 @@
 
 class RtcEventBweUpdateLossBased final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::BweUpdateLossBased;
+
   RtcEventBweUpdateLossBased(int32_t bitrate_bps_,
                              uint8_t fraction_loss_,
                              int32_t total_packets_);
   ~RtcEventBweUpdateLossBased() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventBweUpdateLossBased> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_dtls_transport_state.cc b/logging/rtc_event_log/events/rtc_event_dtls_transport_state.cc
index ac8e642..f00342d 100644
--- a/logging/rtc_event_log/events/rtc_event_dtls_transport_state.cc
+++ b/logging/rtc_event_log/events/rtc_event_dtls_transport_state.cc
@@ -24,14 +24,6 @@
 
 RtcEventDtlsTransportState::~RtcEventDtlsTransportState() = default;
 
-RtcEvent::Type RtcEventDtlsTransportState::GetType() const {
-  return RtcEvent::Type::DtlsTransportState;
-}
-
-bool RtcEventDtlsTransportState::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventDtlsTransportState> RtcEventDtlsTransportState::Copy()
     const {
   return absl::WrapUnique<RtcEventDtlsTransportState>(
diff --git a/logging/rtc_event_log/events/rtc_event_dtls_transport_state.h b/logging/rtc_event_log/events/rtc_event_dtls_transport_state.h
index 4fbe5a7..d660de2 100644
--- a/logging/rtc_event_log/events/rtc_event_dtls_transport_state.h
+++ b/logging/rtc_event_log/events/rtc_event_dtls_transport_state.h
@@ -20,11 +20,13 @@
 
 class RtcEventDtlsTransportState : public RtcEvent {
  public:
+  static constexpr Type kType = Type::DtlsTransportState;
+
   explicit RtcEventDtlsTransportState(DtlsTransportState state);
   ~RtcEventDtlsTransportState() override;
 
-  Type GetType() const override;
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventDtlsTransportState> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_dtls_writable_state.cc b/logging/rtc_event_log/events/rtc_event_dtls_writable_state.cc
index 16c1e7b..d4cb093 100644
--- a/logging/rtc_event_log/events/rtc_event_dtls_writable_state.cc
+++ b/logging/rtc_event_log/events/rtc_event_dtls_writable_state.cc
@@ -23,14 +23,6 @@
 
 RtcEventDtlsWritableState::~RtcEventDtlsWritableState() = default;
 
-RtcEvent::Type RtcEventDtlsWritableState::GetType() const {
-  return RtcEvent::Type::DtlsWritableState;
-}
-
-bool RtcEventDtlsWritableState::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventDtlsWritableState> RtcEventDtlsWritableState::Copy()
     const {
   return absl::WrapUnique<RtcEventDtlsWritableState>(
diff --git a/logging/rtc_event_log/events/rtc_event_dtls_writable_state.h b/logging/rtc_event_log/events/rtc_event_dtls_writable_state.h
index 06a7f9d..0423df8 100644
--- a/logging/rtc_event_log/events/rtc_event_dtls_writable_state.h
+++ b/logging/rtc_event_log/events/rtc_event_dtls_writable_state.h
@@ -19,11 +19,13 @@
 
 class RtcEventDtlsWritableState : public RtcEvent {
  public:
+  static constexpr Type kType = Type::DtlsWritableState;
+
   explicit RtcEventDtlsWritableState(bool writable);
   ~RtcEventDtlsWritableState() override;
 
-  Type GetType() const override;
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventDtlsWritableState> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_frame_decoded.cc b/logging/rtc_event_log/events/rtc_event_frame_decoded.cc
index 19929e7..cde412e 100644
--- a/logging/rtc_event_log/events/rtc_event_frame_decoded.cc
+++ b/logging/rtc_event_log/events/rtc_event_frame_decoded.cc
@@ -36,14 +36,6 @@
       codec_(other.codec_),
       qp_(other.qp_) {}
 
-RtcEvent::Type RtcEventFrameDecoded::GetType() const {
-  return RtcEvent::Type::FrameDecoded;
-}
-
-bool RtcEventFrameDecoded::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventFrameDecoded> RtcEventFrameDecoded::Copy() const {
   return absl::WrapUnique<RtcEventFrameDecoded>(
       new RtcEventFrameDecoded(*this));
diff --git a/logging/rtc_event_log/events/rtc_event_frame_decoded.h b/logging/rtc_event_log/events/rtc_event_frame_decoded.h
index ebc0522..67e9c57 100644
--- a/logging/rtc_event_log/events/rtc_event_frame_decoded.h
+++ b/logging/rtc_event_log/events/rtc_event_frame_decoded.h
@@ -22,6 +22,8 @@
 
 class RtcEventFrameDecoded final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::FrameDecoded;
+
   RtcEventFrameDecoded(int64_t render_time_ms,
                        uint32_t ssrc,
                        int width,
@@ -30,9 +32,8 @@
                        uint8_t qp);
   ~RtcEventFrameDecoded() override = default;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventFrameDecoded> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_generic_ack_received.cc b/logging/rtc_event_log/events/rtc_event_generic_ack_received.cc
index 0ffe622..2da2de6 100644
--- a/logging/rtc_event_log/events/rtc_event_generic_ack_received.cc
+++ b/logging/rtc_event_log/events/rtc_event_generic_ack_received.cc
@@ -51,12 +51,4 @@
 
 RtcEventGenericAckReceived::~RtcEventGenericAckReceived() = default;
 
-RtcEvent::Type RtcEventGenericAckReceived::GetType() const {
-  return RtcEvent::Type::GenericAckReceived;
-}
-
-bool RtcEventGenericAckReceived::IsConfigEvent() const {
-  return false;
-}
-
 }  // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_generic_ack_received.h b/logging/rtc_event_log/events/rtc_event_generic_ack_received.h
index 689c124..3c5eb15 100644
--- a/logging/rtc_event_log/events/rtc_event_generic_ack_received.h
+++ b/logging/rtc_event_log/events/rtc_event_generic_ack_received.h
@@ -30,6 +30,8 @@
 
 class RtcEventGenericAckReceived final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::GenericAckReceived;
+
   // For a collection of acked packets, it creates a vector of logs to log with
   // the same timestamp.
   static std::vector<std::unique_ptr<RtcEventGenericAckReceived>> CreateLogs(
@@ -40,9 +42,8 @@
 
   std::unique_ptr<RtcEventGenericAckReceived> Copy() const;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   // An identifier of the packet which contained an ack.
   int64_t packet_number() const { return packet_number_; }
diff --git a/logging/rtc_event_log/events/rtc_event_generic_packet_received.cc b/logging/rtc_event_log/events/rtc_event_generic_packet_received.cc
index 92558b2..0bdc4dd 100644
--- a/logging/rtc_event_log/events/rtc_event_generic_packet_received.cc
+++ b/logging/rtc_event_log/events/rtc_event_generic_packet_received.cc
@@ -28,12 +28,5 @@
 RtcEventGenericPacketReceived::Copy() const {
   return absl::WrapUnique(new RtcEventGenericPacketReceived(*this));
 }
-RtcEvent::Type RtcEventGenericPacketReceived::GetType() const {
-  return RtcEvent::Type::GenericPacketReceived;
-}
-
-bool RtcEventGenericPacketReceived::IsConfigEvent() const {
-  return false;
-}
 
 }  // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_generic_packet_received.h b/logging/rtc_event_log/events/rtc_event_generic_packet_received.h
index 1034826..7223313 100644
--- a/logging/rtc_event_log/events/rtc_event_generic_packet_received.h
+++ b/logging/rtc_event_log/events/rtc_event_generic_packet_received.h
@@ -19,14 +19,15 @@
 
 class RtcEventGenericPacketReceived final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::GenericPacketReceived;
+
   RtcEventGenericPacketReceived(int64_t packet_number, size_t packet_length);
   ~RtcEventGenericPacketReceived() override;
 
   std::unique_ptr<RtcEventGenericPacketReceived> Copy() const;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   // An identifier of the packet.
   int64_t packet_number() const { return packet_number_; }
diff --git a/logging/rtc_event_log/events/rtc_event_generic_packet_sent.cc b/logging/rtc_event_log/events/rtc_event_generic_packet_sent.cc
index ef761d5..e833562 100644
--- a/logging/rtc_event_log/events/rtc_event_generic_packet_sent.cc
+++ b/logging/rtc_event_log/events/rtc_event_generic_packet_sent.cc
@@ -33,12 +33,4 @@
   return absl::WrapUnique(new RtcEventGenericPacketSent(*this));
 }
 
-RtcEvent::Type RtcEventGenericPacketSent::GetType() const {
-  return RtcEvent::Type::GenericPacketSent;
-}
-
-bool RtcEventGenericPacketSent::IsConfigEvent() const {
-  return false;
-}
-
 }  // namespace webrtc
diff --git a/logging/rtc_event_log/events/rtc_event_generic_packet_sent.h b/logging/rtc_event_log/events/rtc_event_generic_packet_sent.h
index d87a54c..713a474 100644
--- a/logging/rtc_event_log/events/rtc_event_generic_packet_sent.h
+++ b/logging/rtc_event_log/events/rtc_event_generic_packet_sent.h
@@ -19,6 +19,8 @@
 
 class RtcEventGenericPacketSent final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::GenericPacketSent;
+
   RtcEventGenericPacketSent(int64_t packet_number,
                             size_t overhead_length,
                             size_t payload_length,
@@ -27,9 +29,8 @@
 
   std::unique_ptr<RtcEventGenericPacketSent> Copy() const;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   // An identifier of the packet.
   int64_t packet_number() const { return packet_number_; }
diff --git a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.cc b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.cc
index 225362d..2b4b5ba 100644
--- a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.cc
+++ b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.cc
@@ -31,14 +31,6 @@
 
 RtcEventIceCandidatePair::~RtcEventIceCandidatePair() = default;
 
-RtcEvent::Type RtcEventIceCandidatePair::GetType() const {
-  return RtcEvent::Type::IceCandidatePairEvent;
-}
-
-bool RtcEventIceCandidatePair::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventIceCandidatePair> RtcEventIceCandidatePair::Copy()
     const {
   return absl::WrapUnique<RtcEventIceCandidatePair>(
diff --git a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h
index 88b8c82..5bb3803 100644
--- a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h
+++ b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair.h
@@ -29,15 +29,16 @@
 
 class RtcEventIceCandidatePair final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::IceCandidatePairEvent;
+
   RtcEventIceCandidatePair(IceCandidatePairEventType type,
                            uint32_t candidate_pair_id,
                            uint32_t transaction_id);
 
   ~RtcEventIceCandidatePair() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventIceCandidatePair> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.cc b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.cc
index fbb8a73..eb458c4 100644
--- a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.cc
+++ b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.cc
@@ -54,16 +54,6 @@
 
 RtcEventIceCandidatePairConfig::~RtcEventIceCandidatePairConfig() = default;
 
-RtcEvent::Type RtcEventIceCandidatePairConfig::GetType() const {
-  return RtcEvent::Type::IceCandidatePairConfig;
-}
-
-// The ICE candidate pair config event is not equivalent to a RtcEventLog config
-// event.
-bool RtcEventIceCandidatePairConfig::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventIceCandidatePairConfig>
 RtcEventIceCandidatePairConfig::Copy() const {
   return absl::WrapUnique<RtcEventIceCandidatePairConfig>(
diff --git a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h
index 338942a..c9a8199 100644
--- a/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h
+++ b/logging/rtc_event_log/events/rtc_event_ice_candidate_pair_config.h
@@ -83,6 +83,8 @@
 
 class RtcEventIceCandidatePairConfig final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::IceCandidatePairConfig;
+
   RtcEventIceCandidatePairConfig(
       IceCandidatePairConfigType type,
       uint32_t candidate_pair_id,
@@ -90,9 +92,9 @@
 
   ~RtcEventIceCandidatePairConfig() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  // N.B. An ICE config event is not considered an RtcEventLog config event.
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventIceCandidatePairConfig> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_probe_cluster_created.cc b/logging/rtc_event_log/events/rtc_event_probe_cluster_created.cc
index c11a6ce..c3d9e59 100644
--- a/logging/rtc_event_log/events/rtc_event_probe_cluster_created.cc
+++ b/logging/rtc_event_log/events/rtc_event_probe_cluster_created.cc
@@ -31,14 +31,6 @@
       min_probes_(other.min_probes_),
       min_bytes_(other.min_bytes_) {}
 
-RtcEvent::Type RtcEventProbeClusterCreated::GetType() const {
-  return RtcEvent::Type::ProbeClusterCreated;
-}
-
-bool RtcEventProbeClusterCreated::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventProbeClusterCreated> RtcEventProbeClusterCreated::Copy()
     const {
   return absl::WrapUnique<RtcEventProbeClusterCreated>(
diff --git a/logging/rtc_event_log/events/rtc_event_probe_cluster_created.h b/logging/rtc_event_log/events/rtc_event_probe_cluster_created.h
index 7bfe6a2..2cab9c8 100644
--- a/logging/rtc_event_log/events/rtc_event_probe_cluster_created.h
+++ b/logging/rtc_event_log/events/rtc_event_probe_cluster_created.h
@@ -21,15 +21,16 @@
 
 class RtcEventProbeClusterCreated final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::ProbeClusterCreated;
+
   RtcEventProbeClusterCreated(int32_t id,
                               int32_t bitrate_bps,
                               uint32_t min_probes,
                               uint32_t min_bytes);
   ~RtcEventProbeClusterCreated() override = default;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventProbeClusterCreated> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_probe_result_failure.cc b/logging/rtc_event_log/events/rtc_event_probe_result_failure.cc
index 295003a..a79b0c1 100644
--- a/logging/rtc_event_log/events/rtc_event_probe_result_failure.cc
+++ b/logging/rtc_event_log/events/rtc_event_probe_result_failure.cc
@@ -25,14 +25,6 @@
       id_(other.id_),
       failure_reason_(other.failure_reason_) {}
 
-RtcEvent::Type RtcEventProbeResultFailure::GetType() const {
-  return RtcEvent::Type::ProbeResultFailure;
-}
-
-bool RtcEventProbeResultFailure::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventProbeResultFailure> RtcEventProbeResultFailure::Copy()
     const {
   return absl::WrapUnique<RtcEventProbeResultFailure>(
diff --git a/logging/rtc_event_log/events/rtc_event_probe_result_failure.h b/logging/rtc_event_log/events/rtc_event_probe_result_failure.h
index a493de8..5d24f76 100644
--- a/logging/rtc_event_log/events/rtc_event_probe_result_failure.h
+++ b/logging/rtc_event_log/events/rtc_event_probe_result_failure.h
@@ -28,12 +28,13 @@
 
 class RtcEventProbeResultFailure final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::ProbeResultFailure;
+
   RtcEventProbeResultFailure(int32_t id, ProbeFailureReason failure_reason);
   ~RtcEventProbeResultFailure() override = default;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventProbeResultFailure> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_probe_result_success.cc b/logging/rtc_event_log/events/rtc_event_probe_result_success.cc
index d5f9e2f..e7bc7c2 100644
--- a/logging/rtc_event_log/events/rtc_event_probe_result_success.cc
+++ b/logging/rtc_event_log/events/rtc_event_probe_result_success.cc
@@ -24,14 +24,6 @@
       id_(other.id_),
       bitrate_bps_(other.bitrate_bps_) {}
 
-RtcEvent::Type RtcEventProbeResultSuccess::GetType() const {
-  return RtcEvent::Type::ProbeResultSuccess;
-}
-
-bool RtcEventProbeResultSuccess::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventProbeResultSuccess> RtcEventProbeResultSuccess::Copy()
     const {
   return absl::WrapUnique<RtcEventProbeResultSuccess>(
diff --git a/logging/rtc_event_log/events/rtc_event_probe_result_success.h b/logging/rtc_event_log/events/rtc_event_probe_result_success.h
index e0aba98..c715ca6 100644
--- a/logging/rtc_event_log/events/rtc_event_probe_result_success.h
+++ b/logging/rtc_event_log/events/rtc_event_probe_result_success.h
@@ -21,12 +21,13 @@
 
 class RtcEventProbeResultSuccess final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::ProbeResultSuccess;
+
   RtcEventProbeResultSuccess(int32_t id, int32_t bitrate_bps);
   ~RtcEventProbeResultSuccess() override = default;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventProbeResultSuccess> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_remote_estimate.h b/logging/rtc_event_log/events/rtc_event_remote_estimate.h
index b791948..ea1f752 100644
--- a/logging/rtc_event_log/events/rtc_event_remote_estimate.h
+++ b/logging/rtc_event_log/events/rtc_event_remote_estimate.h
@@ -20,11 +20,14 @@
 
 class RtcEventRemoteEstimate final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::RemoteEstimateEvent;
+
   RtcEventRemoteEstimate(DataRate link_capacity_lower,
                          DataRate link_capacity_upper)
       : link_capacity_lower_(link_capacity_lower),
         link_capacity_upper_(link_capacity_upper) {}
-  Type GetType() const override { return RtcEvent::Type::RemoteEstimateEvent; }
+
+  Type GetType() const override { return kType; }
   bool IsConfigEvent() const override { return false; }
 
   const DataRate link_capacity_lower_;
diff --git a/logging/rtc_event_log/events/rtc_event_route_change.cc b/logging/rtc_event_log/events/rtc_event_route_change.cc
index 1ea63e2..71bd78b 100644
--- a/logging/rtc_event_log/events/rtc_event_route_change.cc
+++ b/logging/rtc_event_log/events/rtc_event_route_change.cc
@@ -24,14 +24,6 @@
 
 RtcEventRouteChange::~RtcEventRouteChange() = default;
 
-RtcEvent::Type RtcEventRouteChange::GetType() const {
-  return RtcEvent::Type::RouteChangeEvent;
-}
-
-bool RtcEventRouteChange::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventRouteChange> RtcEventRouteChange::Copy() const {
   return absl::WrapUnique<RtcEventRouteChange>(new RtcEventRouteChange(*this));
 }
diff --git a/logging/rtc_event_log/events/rtc_event_route_change.h b/logging/rtc_event_log/events/rtc_event_route_change.h
index 09fb31c..a364dd7 100644
--- a/logging/rtc_event_log/events/rtc_event_route_change.h
+++ b/logging/rtc_event_log/events/rtc_event_route_change.h
@@ -19,12 +19,13 @@
 
 class RtcEventRouteChange final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::RouteChangeEvent;
+
   RtcEventRouteChange(bool connected, uint32_t overhead);
   ~RtcEventRouteChange() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventRouteChange> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc b/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc
index 45a418f..0ea700a 100644
--- a/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc
+++ b/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.cc
@@ -25,14 +25,6 @@
 
 RtcEventRtcpPacketIncoming::~RtcEventRtcpPacketIncoming() = default;
 
-RtcEvent::Type RtcEventRtcpPacketIncoming::GetType() const {
-  return RtcEvent::Type::RtcpPacketIncoming;
-}
-
-bool RtcEventRtcpPacketIncoming::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventRtcpPacketIncoming> RtcEventRtcpPacketIncoming::Copy()
     const {
   return absl::WrapUnique<RtcEventRtcpPacketIncoming>(
diff --git a/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h b/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h
index 8237afe..1cbac77 100644
--- a/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h
+++ b/logging/rtc_event_log/events/rtc_event_rtcp_packet_incoming.h
@@ -23,12 +23,13 @@
 
 class RtcEventRtcpPacketIncoming final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::RtcpPacketIncoming;
+
   explicit RtcEventRtcpPacketIncoming(rtc::ArrayView<const uint8_t> packet);
   ~RtcEventRtcpPacketIncoming() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventRtcpPacketIncoming> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc b/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc
index b583e56..b6a41ac 100644
--- a/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc
+++ b/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.cc
@@ -25,14 +25,6 @@
 
 RtcEventRtcpPacketOutgoing::~RtcEventRtcpPacketOutgoing() = default;
 
-RtcEvent::Type RtcEventRtcpPacketOutgoing::GetType() const {
-  return RtcEvent::Type::RtcpPacketOutgoing;
-}
-
-bool RtcEventRtcpPacketOutgoing::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventRtcpPacketOutgoing> RtcEventRtcpPacketOutgoing::Copy()
     const {
   return absl::WrapUnique<RtcEventRtcpPacketOutgoing>(
diff --git a/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h b/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h
index f451c73..0ecccbe 100644
--- a/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h
+++ b/logging/rtc_event_log/events/rtc_event_rtcp_packet_outgoing.h
@@ -23,12 +23,13 @@
 
 class RtcEventRtcpPacketOutgoing final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::RtcpPacketOutgoing;
+
   explicit RtcEventRtcpPacketOutgoing(rtc::ArrayView<const uint8_t> packet);
   ~RtcEventRtcpPacketOutgoing() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventRtcpPacketOutgoing> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.cc b/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.cc
index 898c0aa..4e505bd 100644
--- a/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.cc
+++ b/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.cc
@@ -37,14 +37,6 @@
 
 RtcEventRtpPacketIncoming::~RtcEventRtpPacketIncoming() = default;
 
-RtcEvent::Type RtcEventRtpPacketIncoming::GetType() const {
-  return RtcEvent::Type::RtpPacketIncoming;
-}
-
-bool RtcEventRtpPacketIncoming::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventRtpPacketIncoming> RtcEventRtpPacketIncoming::Copy()
     const {
   return absl::WrapUnique<RtcEventRtpPacketIncoming>(
diff --git a/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h b/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h
index 7e30d6d..8d13dc6 100644
--- a/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h
+++ b/logging/rtc_event_log/events/rtc_event_rtp_packet_incoming.h
@@ -22,12 +22,13 @@
 
 class RtcEventRtpPacketIncoming final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::RtpPacketIncoming;
+
   explicit RtcEventRtpPacketIncoming(const RtpPacketReceived& packet);
   ~RtcEventRtpPacketIncoming() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventRtpPacketIncoming> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc b/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc
index 050474e..e5324bf 100644
--- a/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc
+++ b/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.cc
@@ -40,14 +40,6 @@
 
 RtcEventRtpPacketOutgoing::~RtcEventRtpPacketOutgoing() = default;
 
-RtcEvent::Type RtcEventRtpPacketOutgoing::GetType() const {
-  return RtcEvent::Type::RtpPacketOutgoing;
-}
-
-bool RtcEventRtpPacketOutgoing::IsConfigEvent() const {
-  return false;
-}
-
 std::unique_ptr<RtcEventRtpPacketOutgoing> RtcEventRtpPacketOutgoing::Copy()
     const {
   return absl::WrapUnique<RtcEventRtpPacketOutgoing>(
diff --git a/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h b/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h
index 9211367..de4abcc 100644
--- a/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h
+++ b/logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h
@@ -22,13 +22,14 @@
 
 class RtcEventRtpPacketOutgoing final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::RtpPacketOutgoing;
+
   RtcEventRtpPacketOutgoing(const RtpPacketToSend& packet,
                             int probe_cluster_id);
   ~RtcEventRtpPacketOutgoing() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return false; }
 
   std::unique_ptr<RtcEventRtpPacketOutgoing> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.cc b/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.cc
index 8942f8a..90ab818 100644
--- a/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.cc
+++ b/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.cc
@@ -30,14 +30,6 @@
 
 RtcEventVideoReceiveStreamConfig::~RtcEventVideoReceiveStreamConfig() = default;
 
-RtcEvent::Type RtcEventVideoReceiveStreamConfig::GetType() const {
-  return Type::VideoReceiveStreamConfig;
-}
-
-bool RtcEventVideoReceiveStreamConfig::IsConfigEvent() const {
-  return true;
-}
-
 std::unique_ptr<RtcEventVideoReceiveStreamConfig>
 RtcEventVideoReceiveStreamConfig::Copy() const {
   return absl::WrapUnique<RtcEventVideoReceiveStreamConfig>(
diff --git a/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h b/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h
index fe5099d..8e9841f 100644
--- a/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h
+++ b/logging/rtc_event_log/events/rtc_event_video_receive_stream_config.h
@@ -20,13 +20,14 @@
 
 class RtcEventVideoReceiveStreamConfig final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::VideoReceiveStreamConfig;
+
   explicit RtcEventVideoReceiveStreamConfig(
       std::unique_ptr<rtclog::StreamConfig> config);
   ~RtcEventVideoReceiveStreamConfig() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return true; }
 
   std::unique_ptr<RtcEventVideoReceiveStreamConfig> Copy() const;
 
diff --git a/logging/rtc_event_log/events/rtc_event_video_send_stream_config.cc b/logging/rtc_event_log/events/rtc_event_video_send_stream_config.cc
index 2c33466..c28a476 100644
--- a/logging/rtc_event_log/events/rtc_event_video_send_stream_config.cc
+++ b/logging/rtc_event_log/events/rtc_event_video_send_stream_config.cc
@@ -27,14 +27,6 @@
 
 RtcEventVideoSendStreamConfig::~RtcEventVideoSendStreamConfig() = default;
 
-RtcEvent::Type RtcEventVideoSendStreamConfig::GetType() const {
-  return RtcEvent::Type::VideoSendStreamConfig;
-}
-
-bool RtcEventVideoSendStreamConfig::IsConfigEvent() const {
-  return true;
-}
-
 std::unique_ptr<RtcEventVideoSendStreamConfig>
 RtcEventVideoSendStreamConfig::Copy() const {
   return absl::WrapUnique<RtcEventVideoSendStreamConfig>(
diff --git a/logging/rtc_event_log/events/rtc_event_video_send_stream_config.h b/logging/rtc_event_log/events/rtc_event_video_send_stream_config.h
index 11dd148..c06f783 100644
--- a/logging/rtc_event_log/events/rtc_event_video_send_stream_config.h
+++ b/logging/rtc_event_log/events/rtc_event_video_send_stream_config.h
@@ -20,13 +20,14 @@
 
 class RtcEventVideoSendStreamConfig final : public RtcEvent {
  public:
+  static constexpr Type kType = Type::VideoSendStreamConfig;
+
   explicit RtcEventVideoSendStreamConfig(
       std::unique_ptr<rtclog::StreamConfig> config);
   ~RtcEventVideoSendStreamConfig() override;
 
-  Type GetType() const override;
-
-  bool IsConfigEvent() const override;
+  Type GetType() const override { return kType; }
+  bool IsConfigEvent() const override { return true; }
 
   std::unique_ptr<RtcEventVideoSendStreamConfig> Copy() const;