@@ -17,24 +17,22 @@ extension RUMViewEvent {
1717 /// - Fields equal between `self` and `event` are set to `nil` (meaning "unchanged").
1818 /// `self.dd.documentVersion` is incremented by one.
1919 ///
20- /// Fields containing `[String: Encodable]` (account, context, featureFlags, usr)
21- /// cannot be cheaply compared and are always forwarded from `event`.
2220 func update( from event: RUMViewEvent ) -> RUMViewUpdateEvent {
2321 RUMViewUpdateEvent (
2422 dd: . init( documentVersion: dd. documentVersion + 1 , from: event. dd) ,
25- account: event. account,
23+ account: diff ( account , event. account) ,
2624 application: . init( event. application) ,
2725 buildId: diff ( buildId, event. buildId) ,
2826 buildVersion: diff ( buildVersion, event. buildVersion) ,
2927 ciTest: diff ( ciTest, event. ciTest) ,
3028 connectivity: diff ( connectivity, event. connectivity) ,
3129 container: diffMap ( container, event. container, RUMViewUpdateEvent . Container. init) ,
32- context: event. context,
30+ context: diff ( context , event. context) ,
3331 date: event. date,
3432 ddtags: diff ( ddtags, event. ddtags) ,
3533 device: diff ( device, event. device) ,
3634 display: diffMap ( display, event. display, RUMViewUpdateEvent . Display. init) ,
37- featureFlags: event. featureFlags. map { . init( $0 ) } ,
35+ featureFlags: diffMap ( featureFlags , event. featureFlags, RUMViewUpdateEvent . FeatureFlags . init) ,
3836 os: diff ( os, event. os) ,
3937 privacy: diffMap ( privacy, event. privacy, RUMViewUpdateEvent . Privacy. init) ,
4038 service: diff ( service, event. service) ,
@@ -43,7 +41,7 @@ extension RUMViewEvent {
4341 stream: diffMap ( stream, event. stream, RUMViewUpdateEvent . Stream. init) ,
4442 synthetics: diff ( synthetics, event. synthetics) ,
4543 tab: diffMap ( tab, event. tab, RUMViewUpdateEvent . TAB. init) ,
46- usr: event. usr,
44+ usr: diff ( usr , event. usr) ,
4745 version: diff ( version, event. version) ,
4846 view: . init( old: view, new: event. view)
4947 )
0 commit comments