blob: b9cbeea8193fa1c0a833e4476af27cf0b8015dca [file] [log] [blame]
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of reporting;
/// The collection of custom dimensions understood by the analytics backend.
/// When adding to this list, first ensure that the custom dimension is
/// defined in the backend, or will be defined shortly after the relevant PR
/// lands.
@immutable
class CustomDimensions {
const CustomDimensions({
this.sessionHostOsDetails,
this.sessionChannelName,
this.commandRunIsEmulator,
this.commandRunTargetName,
this.hotEventReason,
this.hotEventFinalLibraryCount,
this.hotEventSyncedLibraryCount,
this.hotEventSyncedClassesCount,
this.hotEventSyncedProceduresCount,
this.hotEventSyncedBytes,
this.hotEventInvalidatedSourcesCount,
this.hotEventTransferTimeInMs,
this.hotEventOverallTimeInMs,
this.commandRunProjectType,
this.commandRunProjectHostLanguage,
this.commandCreateAndroidLanguage,
this.commandCreateIosLanguage,
this.commandRunProjectModule,
this.commandCreateProjectType,
this.commandPackagesNumberPlugins,
this.commandPackagesProjectModule,
this.commandRunTargetOsVersion,
this.commandRunModeName,
this.commandBuildBundleTargetPlatform,
this.commandBuildBundleIsModule,
this.commandResult,
this.hotEventTargetPlatform,
this.hotEventSdkName,
this.hotEventEmulator,
this.hotEventFullRestart,
this.commandHasTerminal,
this.enabledFlutterFeatures,
this.localTime,
this.commandBuildAarTargetPlatform,
this.commandBuildAarProjectType,
this.buildEventCommand,
this.buildEventSettings,
this.commandBuildApkTargetPlatform,
this.commandBuildApkBuildMode,
this.commandBuildApkSplitPerAbi,
this.commandBuildAppBundleTargetPlatform,
this.commandBuildAppBundleBuildMode,
this.buildEventError,
this.commandResultEventMaxRss,
this.commandRunAndroidEmbeddingVersion,
this.commandPackagesAndroidEmbeddingVersion,
this.nullSafety,
this.fastReassemble,
this.nullSafeMigratedLibraries,
this.nullSafeTotalLibraries,
this.hotEventCompileTimeInMs,
this.hotEventFindInvalidatedTimeInMs,
this.hotEventScannedSourcesCount,
this.hotEventReassembleTimeInMs,
this.hotEventReloadVMTimeInMs,
this.commandRunEnableImpeller,
});
final String? sessionHostOsDetails; // cd1
final String? sessionChannelName; // cd2
final bool? commandRunIsEmulator; // cd3
final String? commandRunTargetName; // cd4
final String? hotEventReason; // cd5
final int? hotEventFinalLibraryCount; // cd6
final int? hotEventSyncedLibraryCount; // cd7
final int? hotEventSyncedClassesCount; // cd8
final int? hotEventSyncedProceduresCount; // cd9
final int? hotEventSyncedBytes; // cd10
final int? hotEventInvalidatedSourcesCount; // cd11
final int? hotEventTransferTimeInMs; // cd12
final int? hotEventOverallTimeInMs; // cd13
final String? commandRunProjectType; // cd14
final String? commandRunProjectHostLanguage; // cd15
final String? commandCreateAndroidLanguage; // cd16
final String? commandCreateIosLanguage; // cd17
final bool? commandRunProjectModule; // cd18
final String? commandCreateProjectType; // cd19
final int? commandPackagesNumberPlugins; // cd20
final bool? commandPackagesProjectModule; // cd21
final String? commandRunTargetOsVersion; // cd22
final String? commandRunModeName; // cd23
final String? commandBuildBundleTargetPlatform; // cd24
final bool? commandBuildBundleIsModule; // cd25
final String? commandResult; // cd26
final String? hotEventTargetPlatform; // cd27
final String? hotEventSdkName; // cd28
final bool? hotEventEmulator; // cd29
final bool? hotEventFullRestart; // cd30
final bool? commandHasTerminal; // cd31
final String? enabledFlutterFeatures; // cd32
final String? localTime; // cd33
final String? commandBuildAarTargetPlatform; // cd34
final String? commandBuildAarProjectType; // cd35
final String? buildEventCommand; // cd36
final String? buildEventSettings; // cd37
final String? commandBuildApkTargetPlatform; // cd38
final String? commandBuildApkBuildMode; // cd39
final bool? commandBuildApkSplitPerAbi; // cd40
final String? commandBuildAppBundleTargetPlatform; // cd41
final String? commandBuildAppBundleBuildMode; // cd42
final String? buildEventError; // cd43
final int? commandResultEventMaxRss; // cd44
final String? commandRunAndroidEmbeddingVersion; // cd45
final String? commandPackagesAndroidEmbeddingVersion; // cd46
final bool? nullSafety; // cd47
final bool? fastReassemble; // cd48
final int? nullSafeMigratedLibraries; // cd49
final int? nullSafeTotalLibraries; // cd50
final int? hotEventCompileTimeInMs; // cd 51
final int? hotEventFindInvalidatedTimeInMs; // cd 52
final int? hotEventScannedSourcesCount; // cd 53
final int? hotEventReassembleTimeInMs; // cd 54
final int? hotEventReloadVMTimeInMs; // cd 55
final bool? commandRunEnableImpeller; // cd 56
/// Convert to a map that will be used to upload to the analytics backend.
Map<String, String> toMap() => <String, String>{
if (sessionHostOsDetails != null) cdKey(CustomDimensionsEnum.sessionHostOsDetails): sessionHostOsDetails.toString(),
if (sessionChannelName != null) cdKey(CustomDimensionsEnum.sessionChannelName): sessionChannelName.toString(),
if (commandRunIsEmulator != null) cdKey(CustomDimensionsEnum.commandRunIsEmulator): commandRunIsEmulator.toString(),
if (commandRunTargetName != null) cdKey(CustomDimensionsEnum.commandRunTargetName): commandRunTargetName.toString(),
if (hotEventReason != null) cdKey(CustomDimensionsEnum.hotEventReason): hotEventReason.toString(),
if (hotEventFinalLibraryCount != null) cdKey(CustomDimensionsEnum.hotEventFinalLibraryCount): hotEventFinalLibraryCount.toString(),
if (hotEventSyncedLibraryCount != null) cdKey(CustomDimensionsEnum.hotEventSyncedLibraryCount): hotEventSyncedLibraryCount.toString(),
if (hotEventSyncedClassesCount != null) cdKey(CustomDimensionsEnum.hotEventSyncedClassesCount): hotEventSyncedClassesCount.toString(),
if (hotEventSyncedProceduresCount != null) cdKey(CustomDimensionsEnum.hotEventSyncedProceduresCount): hotEventSyncedProceduresCount.toString(),
if (hotEventSyncedBytes != null) cdKey(CustomDimensionsEnum.hotEventSyncedBytes): hotEventSyncedBytes.toString(),
if (hotEventInvalidatedSourcesCount != null) cdKey(CustomDimensionsEnum.hotEventInvalidatedSourcesCount): hotEventInvalidatedSourcesCount.toString(),
if (hotEventTransferTimeInMs != null) cdKey(CustomDimensionsEnum.hotEventTransferTimeInMs): hotEventTransferTimeInMs.toString(),
if (hotEventOverallTimeInMs != null) cdKey(CustomDimensionsEnum.hotEventOverallTimeInMs): hotEventOverallTimeInMs.toString(),
if (commandRunProjectType != null) cdKey(CustomDimensionsEnum.commandRunProjectType): commandRunProjectType.toString(),
if (commandRunProjectHostLanguage != null) cdKey(CustomDimensionsEnum.commandRunProjectHostLanguage): commandRunProjectHostLanguage.toString(),
if (commandCreateAndroidLanguage != null) cdKey(CustomDimensionsEnum.commandCreateAndroidLanguage): commandCreateAndroidLanguage.toString(),
if (commandCreateIosLanguage != null) cdKey(CustomDimensionsEnum.commandCreateIosLanguage): commandCreateIosLanguage.toString(),
if (commandRunProjectModule != null) cdKey(CustomDimensionsEnum.commandRunProjectModule): commandRunProjectModule.toString(),
if (commandCreateProjectType != null) cdKey(CustomDimensionsEnum.commandCreateProjectType): commandCreateProjectType.toString(),
if (commandPackagesNumberPlugins != null) cdKey(CustomDimensionsEnum.commandPackagesNumberPlugins): commandPackagesNumberPlugins.toString(),
if (commandPackagesProjectModule != null) cdKey(CustomDimensionsEnum.commandPackagesProjectModule): commandPackagesProjectModule.toString(),
if (commandRunTargetOsVersion != null) cdKey(CustomDimensionsEnum.commandRunTargetOsVersion): commandRunTargetOsVersion.toString(),
if (commandRunModeName != null) cdKey(CustomDimensionsEnum.commandRunModeName): commandRunModeName.toString(),
if (commandBuildBundleTargetPlatform != null) cdKey(CustomDimensionsEnum.commandBuildBundleTargetPlatform): commandBuildBundleTargetPlatform.toString(),
if (commandBuildBundleIsModule != null) cdKey(CustomDimensionsEnum.commandBuildBundleIsModule): commandBuildBundleIsModule.toString(),
if (commandResult != null) cdKey(CustomDimensionsEnum.commandResult): commandResult.toString(),
if (hotEventTargetPlatform != null) cdKey(CustomDimensionsEnum.hotEventTargetPlatform): hotEventTargetPlatform.toString(),
if (hotEventSdkName != null) cdKey(CustomDimensionsEnum.hotEventSdkName): hotEventSdkName.toString(),
if (hotEventEmulator != null) cdKey(CustomDimensionsEnum.hotEventEmulator): hotEventEmulator.toString(),
if (hotEventFullRestart != null) cdKey(CustomDimensionsEnum.hotEventFullRestart): hotEventFullRestart.toString(),
if (commandHasTerminal != null) cdKey(CustomDimensionsEnum.commandHasTerminal): commandHasTerminal.toString(),
if (enabledFlutterFeatures != null) cdKey(CustomDimensionsEnum.enabledFlutterFeatures): enabledFlutterFeatures.toString(),
if (localTime != null) cdKey(CustomDimensionsEnum.localTime): localTime.toString(),
if (commandBuildAarTargetPlatform != null) cdKey(CustomDimensionsEnum.commandBuildAarTargetPlatform): commandBuildAarTargetPlatform.toString(),
if (commandBuildAarProjectType != null) cdKey(CustomDimensionsEnum.commandBuildAarProjectType): commandBuildAarProjectType.toString(),
if (buildEventCommand != null) cdKey(CustomDimensionsEnum.buildEventCommand): buildEventCommand.toString(),
if (buildEventSettings != null) cdKey(CustomDimensionsEnum.buildEventSettings): buildEventSettings.toString(),
if (commandBuildApkTargetPlatform != null) cdKey(CustomDimensionsEnum.commandBuildApkTargetPlatform): commandBuildApkTargetPlatform.toString(),
if (commandBuildApkBuildMode != null) cdKey(CustomDimensionsEnum.commandBuildApkBuildMode): commandBuildApkBuildMode.toString(),
if (commandBuildApkSplitPerAbi != null) cdKey(CustomDimensionsEnum.commandBuildApkSplitPerAbi): commandBuildApkSplitPerAbi.toString(),
if (commandBuildAppBundleTargetPlatform != null) cdKey(CustomDimensionsEnum.commandBuildAppBundleTargetPlatform): commandBuildAppBundleTargetPlatform.toString(),
if (commandBuildAppBundleBuildMode != null) cdKey(CustomDimensionsEnum.commandBuildAppBundleBuildMode): commandBuildAppBundleBuildMode.toString(),
if (buildEventError != null) cdKey(CustomDimensionsEnum.buildEventError): buildEventError.toString(),
if (commandResultEventMaxRss != null) cdKey(CustomDimensionsEnum.commandResultEventMaxRss): commandResultEventMaxRss.toString(),
if (commandRunAndroidEmbeddingVersion != null) cdKey(CustomDimensionsEnum.commandRunAndroidEmbeddingVersion): commandRunAndroidEmbeddingVersion.toString(),
if (commandPackagesAndroidEmbeddingVersion != null) cdKey(CustomDimensionsEnum.commandPackagesAndroidEmbeddingVersion): commandPackagesAndroidEmbeddingVersion.toString(),
if (nullSafety != null) cdKey(CustomDimensionsEnum.nullSafety): nullSafety.toString(),
if (fastReassemble != null) cdKey(CustomDimensionsEnum.fastReassemble): fastReassemble.toString(),
if (nullSafeMigratedLibraries != null) cdKey(CustomDimensionsEnum.nullSafeMigratedLibraries): nullSafeMigratedLibraries.toString(),
if (nullSafeTotalLibraries != null) cdKey(CustomDimensionsEnum.nullSafeTotalLibraries): nullSafeTotalLibraries.toString(),
if (hotEventCompileTimeInMs != null) cdKey(CustomDimensionsEnum.hotEventCompileTimeInMs): hotEventCompileTimeInMs.toString(),
if (hotEventFindInvalidatedTimeInMs != null) cdKey(CustomDimensionsEnum.hotEventFindInvalidatedTimeInMs): hotEventFindInvalidatedTimeInMs.toString(),
if (hotEventScannedSourcesCount != null) cdKey(CustomDimensionsEnum.hotEventScannedSourcesCount): hotEventScannedSourcesCount.toString(),
if (hotEventReassembleTimeInMs != null) cdKey(CustomDimensionsEnum.hotEventReassembleTimeInMs): hotEventReassembleTimeInMs.toString(),
if (hotEventReloadVMTimeInMs != null) cdKey(CustomDimensionsEnum.hotEventReloadVMTimeInMs): hotEventReloadVMTimeInMs.toString(),
if (commandRunEnableImpeller != null) cdKey(CustomDimensionsEnum.commandRunEnableImpeller): commandRunEnableImpeller.toString(),
};
/// Merge the values of two [CustomDimensions] into one. If a value is defined
/// in both instances, the value in [other] will override the value in this.
CustomDimensions merge(CustomDimensions? other) {
if (other == null) {
return this;
}
return CustomDimensions(
sessionHostOsDetails: other.sessionHostOsDetails ?? sessionHostOsDetails,
sessionChannelName: other.sessionChannelName ?? sessionChannelName,
commandRunIsEmulator: other.commandRunIsEmulator ?? commandRunIsEmulator,
commandRunTargetName: other.commandRunTargetName ?? commandRunTargetName,
hotEventReason: other.hotEventReason ?? hotEventReason,
hotEventFinalLibraryCount: other.hotEventFinalLibraryCount ?? hotEventFinalLibraryCount,
hotEventSyncedLibraryCount: other.hotEventSyncedLibraryCount ?? hotEventSyncedLibraryCount,
hotEventSyncedClassesCount: other.hotEventSyncedClassesCount ?? hotEventSyncedClassesCount,
hotEventSyncedProceduresCount: other.hotEventSyncedProceduresCount ?? hotEventSyncedProceduresCount,
hotEventSyncedBytes: other.hotEventSyncedBytes ?? hotEventSyncedBytes,
hotEventInvalidatedSourcesCount: other.hotEventInvalidatedSourcesCount ?? hotEventInvalidatedSourcesCount,
hotEventTransferTimeInMs: other.hotEventTransferTimeInMs ?? hotEventTransferTimeInMs,
hotEventOverallTimeInMs: other.hotEventOverallTimeInMs ?? hotEventOverallTimeInMs,
commandRunProjectType: other.commandRunProjectType ?? commandRunProjectType,
commandRunProjectHostLanguage: other.commandRunProjectHostLanguage ?? commandRunProjectHostLanguage,
commandCreateAndroidLanguage: other.commandCreateAndroidLanguage ?? commandCreateAndroidLanguage,
commandCreateIosLanguage: other.commandCreateIosLanguage ?? commandCreateIosLanguage,
commandRunProjectModule: other.commandRunProjectModule ?? commandRunProjectModule,
commandCreateProjectType: other.commandCreateProjectType ?? commandCreateProjectType,
commandPackagesNumberPlugins: other.commandPackagesNumberPlugins ?? commandPackagesNumberPlugins,
commandPackagesProjectModule: other.commandPackagesProjectModule ?? commandPackagesProjectModule,
commandRunTargetOsVersion: other.commandRunTargetOsVersion ?? commandRunTargetOsVersion,
commandRunModeName: other.commandRunModeName ?? commandRunModeName,
commandBuildBundleTargetPlatform: other.commandBuildBundleTargetPlatform ?? commandBuildBundleTargetPlatform,
commandBuildBundleIsModule: other.commandBuildBundleIsModule ?? commandBuildBundleIsModule,
commandResult: other.commandResult ?? commandResult,
hotEventTargetPlatform: other.hotEventTargetPlatform ?? hotEventTargetPlatform,
hotEventSdkName: other.hotEventSdkName ?? hotEventSdkName,
hotEventEmulator: other.hotEventEmulator ?? hotEventEmulator,
hotEventFullRestart: other.hotEventFullRestart ?? hotEventFullRestart,
commandHasTerminal: other.commandHasTerminal ?? commandHasTerminal,
enabledFlutterFeatures: other.enabledFlutterFeatures ?? enabledFlutterFeatures,
localTime: other.localTime ?? localTime,
commandBuildAarTargetPlatform: other.commandBuildAarTargetPlatform ?? commandBuildAarTargetPlatform,
commandBuildAarProjectType: other.commandBuildAarProjectType ?? commandBuildAarProjectType,
buildEventCommand: other.buildEventCommand ?? buildEventCommand,
buildEventSettings: other.buildEventSettings ?? buildEventSettings,
commandBuildApkTargetPlatform: other.commandBuildApkTargetPlatform ?? commandBuildApkTargetPlatform,
commandBuildApkBuildMode: other.commandBuildApkBuildMode ?? commandBuildApkBuildMode,
commandBuildApkSplitPerAbi: other.commandBuildApkSplitPerAbi ?? commandBuildApkSplitPerAbi,
commandBuildAppBundleTargetPlatform: other.commandBuildAppBundleTargetPlatform ?? commandBuildAppBundleTargetPlatform,
commandBuildAppBundleBuildMode: other.commandBuildAppBundleBuildMode ?? commandBuildAppBundleBuildMode,
buildEventError: other.buildEventError ?? buildEventError,
commandResultEventMaxRss: other.commandResultEventMaxRss ?? commandResultEventMaxRss,
commandRunAndroidEmbeddingVersion: other.commandRunAndroidEmbeddingVersion ?? commandRunAndroidEmbeddingVersion,
commandPackagesAndroidEmbeddingVersion: other.commandPackagesAndroidEmbeddingVersion ?? commandPackagesAndroidEmbeddingVersion,
nullSafety: other.nullSafety ?? nullSafety,
fastReassemble: other.fastReassemble ?? fastReassemble,
nullSafeMigratedLibraries: other.nullSafeMigratedLibraries ?? nullSafeMigratedLibraries,
nullSafeTotalLibraries: other.nullSafeTotalLibraries ?? nullSafeTotalLibraries,
hotEventCompileTimeInMs: other.hotEventCompileTimeInMs ?? hotEventCompileTimeInMs,
hotEventFindInvalidatedTimeInMs: other.hotEventFindInvalidatedTimeInMs ?? hotEventFindInvalidatedTimeInMs,
hotEventScannedSourcesCount: other.hotEventScannedSourcesCount ?? hotEventScannedSourcesCount,
hotEventReassembleTimeInMs: other.hotEventReassembleTimeInMs ?? hotEventReassembleTimeInMs,
hotEventReloadVMTimeInMs: other.hotEventReloadVMTimeInMs ?? hotEventReloadVMTimeInMs,
commandRunEnableImpeller: other.commandRunEnableImpeller ?? commandRunEnableImpeller,
);
}
static CustomDimensions fromMap(Map<String, String> map) => CustomDimensions(
sessionHostOsDetails: _extractString(map, CustomDimensionsEnum.sessionHostOsDetails),
sessionChannelName: _extractString(map, CustomDimensionsEnum.sessionChannelName),
commandRunIsEmulator: _extractBool(map, CustomDimensionsEnum.commandRunIsEmulator),
commandRunTargetName: _extractString(map, CustomDimensionsEnum.commandRunTargetName),
hotEventReason: _extractString(map, CustomDimensionsEnum.hotEventReason),
hotEventFinalLibraryCount: _extractInt(map, CustomDimensionsEnum.hotEventFinalLibraryCount),
hotEventSyncedLibraryCount: _extractInt(map, CustomDimensionsEnum.hotEventSyncedLibraryCount),
hotEventSyncedClassesCount: _extractInt(map, CustomDimensionsEnum.hotEventSyncedClassesCount),
hotEventSyncedProceduresCount: _extractInt(map, CustomDimensionsEnum.hotEventSyncedProceduresCount),
hotEventSyncedBytes: _extractInt(map, CustomDimensionsEnum.hotEventSyncedBytes),
hotEventInvalidatedSourcesCount: _extractInt(map, CustomDimensionsEnum.hotEventInvalidatedSourcesCount),
hotEventTransferTimeInMs: _extractInt(map, CustomDimensionsEnum.hotEventTransferTimeInMs),
hotEventOverallTimeInMs: _extractInt(map, CustomDimensionsEnum.hotEventOverallTimeInMs),
commandRunProjectType: _extractString(map, CustomDimensionsEnum.commandRunProjectType),
commandRunProjectHostLanguage: _extractString(map, CustomDimensionsEnum.commandRunProjectHostLanguage),
commandCreateAndroidLanguage: _extractString(map, CustomDimensionsEnum.commandCreateAndroidLanguage),
commandCreateIosLanguage: _extractString(map, CustomDimensionsEnum.commandCreateIosLanguage),
commandRunProjectModule: _extractBool(map, CustomDimensionsEnum.commandRunProjectModule),
commandCreateProjectType: _extractString(map, CustomDimensionsEnum.commandCreateProjectType),
commandPackagesNumberPlugins: _extractInt(map, CustomDimensionsEnum.commandPackagesNumberPlugins),
commandPackagesProjectModule: _extractBool(map, CustomDimensionsEnum.commandPackagesProjectModule),
commandRunTargetOsVersion: _extractString(map, CustomDimensionsEnum.commandRunTargetOsVersion),
commandRunModeName: _extractString(map, CustomDimensionsEnum.commandRunModeName),
commandBuildBundleTargetPlatform: _extractString(map, CustomDimensionsEnum.commandBuildBundleTargetPlatform),
commandBuildBundleIsModule: _extractBool(map, CustomDimensionsEnum.commandBuildBundleIsModule),
commandResult: _extractString(map, CustomDimensionsEnum.commandResult),
hotEventTargetPlatform: _extractString(map, CustomDimensionsEnum.hotEventTargetPlatform),
hotEventSdkName: _extractString(map, CustomDimensionsEnum.hotEventSdkName),
hotEventEmulator: _extractBool(map, CustomDimensionsEnum.hotEventEmulator),
hotEventFullRestart: _extractBool(map, CustomDimensionsEnum.hotEventFullRestart),
commandHasTerminal: _extractBool(map, CustomDimensionsEnum.commandHasTerminal),
enabledFlutterFeatures: _extractString(map, CustomDimensionsEnum.enabledFlutterFeatures),
localTime: _extractString(map, CustomDimensionsEnum.localTime),
commandBuildAarTargetPlatform: _extractString(map, CustomDimensionsEnum.commandBuildAarTargetPlatform),
commandBuildAarProjectType: _extractString(map, CustomDimensionsEnum.commandBuildAarProjectType),
buildEventCommand: _extractString(map, CustomDimensionsEnum.buildEventCommand),
buildEventSettings: _extractString(map, CustomDimensionsEnum.buildEventSettings),
commandBuildApkTargetPlatform: _extractString(map, CustomDimensionsEnum.commandBuildApkTargetPlatform),
commandBuildApkBuildMode: _extractString(map, CustomDimensionsEnum.commandBuildApkBuildMode),
commandBuildApkSplitPerAbi: _extractBool(map, CustomDimensionsEnum.commandBuildApkSplitPerAbi),
commandBuildAppBundleTargetPlatform: _extractString(map, CustomDimensionsEnum.commandBuildAppBundleTargetPlatform),
commandBuildAppBundleBuildMode: _extractString(map, CustomDimensionsEnum.commandBuildAppBundleBuildMode),
buildEventError: _extractString(map, CustomDimensionsEnum.buildEventError),
commandResultEventMaxRss: _extractInt(map, CustomDimensionsEnum.commandResultEventMaxRss),
commandRunAndroidEmbeddingVersion: _extractString(map, CustomDimensionsEnum.commandRunAndroidEmbeddingVersion),
commandPackagesAndroidEmbeddingVersion: _extractString(map, CustomDimensionsEnum.commandPackagesAndroidEmbeddingVersion),
nullSafety: _extractBool(map, CustomDimensionsEnum.nullSafety),
fastReassemble: _extractBool(map, CustomDimensionsEnum.fastReassemble),
nullSafeMigratedLibraries: _extractInt(map, CustomDimensionsEnum.nullSafeMigratedLibraries),
nullSafeTotalLibraries: _extractInt(map, CustomDimensionsEnum.nullSafeTotalLibraries),
hotEventCompileTimeInMs: _extractInt(map, CustomDimensionsEnum.hotEventCompileTimeInMs),
hotEventFindInvalidatedTimeInMs: _extractInt(map, CustomDimensionsEnum.hotEventFindInvalidatedTimeInMs),
hotEventScannedSourcesCount: _extractInt(map, CustomDimensionsEnum.hotEventScannedSourcesCount),
hotEventReassembleTimeInMs: _extractInt(map, CustomDimensionsEnum.hotEventReassembleTimeInMs),
hotEventReloadVMTimeInMs: _extractInt(map, CustomDimensionsEnum.hotEventReloadVMTimeInMs),
commandRunEnableImpeller: _extractBool(map, CustomDimensionsEnum.commandRunEnableImpeller),
);
static bool? _extractBool(Map<String, String> map, CustomDimensionsEnum field) =>
map.containsKey(cdKey(field))? map[cdKey(field)] == 'true' : null;
static String? _extractString(Map<String, String> map, CustomDimensionsEnum field) =>
map.containsKey(cdKey(field))? map[cdKey(field)] : null;
static int? _extractInt(Map<String, String> map, CustomDimensionsEnum field) =>
map.containsKey(cdKey(field))? int.parse(map[cdKey(field)]!) : null;
@override
String toString() => toMap().toString();
@override
bool operator ==(Object other) {
return other is CustomDimensions &&
_mapsEqual(other.toMap(), toMap());
}
@override
int get hashCode => Object.hashAll(toMap().values);
}
/// List of all fields used in CustomDimensions.
///
/// The index of this enum is used to calculate the key of the fields. Always
/// append to this list when adding new fields, and do not remove or reorder
/// any elements.
enum CustomDimensionsEnum {
sessionHostOsDetails, // cd1
sessionChannelName, // cd2
commandRunIsEmulator, // cd3
commandRunTargetName, // cd4
hotEventReason, // cd5
hotEventFinalLibraryCount, // cd6
hotEventSyncedLibraryCount, // cd7
hotEventSyncedClassesCount, // cd8
hotEventSyncedProceduresCount, // cd9
hotEventSyncedBytes, // cd10
hotEventInvalidatedSourcesCount, // cd11
hotEventTransferTimeInMs, // cd12
hotEventOverallTimeInMs, // cd13
commandRunProjectType, // cd14
commandRunProjectHostLanguage, // cd15
commandCreateAndroidLanguage, // cd16
commandCreateIosLanguage, // cd17
commandRunProjectModule, // cd18
commandCreateProjectType, // cd19
commandPackagesNumberPlugins, // cd20
commandPackagesProjectModule, // cd21
commandRunTargetOsVersion, // cd22
commandRunModeName, // cd23
commandBuildBundleTargetPlatform, // cd24
commandBuildBundleIsModule, // cd25
commandResult, // cd26
hotEventTargetPlatform, // cd27
hotEventSdkName, // cd28
hotEventEmulator, // cd29
hotEventFullRestart, // cd30
commandHasTerminal, // cd31
enabledFlutterFeatures, // cd32
localTime, // cd33
commandBuildAarTargetPlatform, // cd34
commandBuildAarProjectType, // cd35
buildEventCommand, // cd36
buildEventSettings, // cd37
commandBuildApkTargetPlatform, // cd38
commandBuildApkBuildMode, // cd39
commandBuildApkSplitPerAbi, // cd40
commandBuildAppBundleTargetPlatform, // cd41
commandBuildAppBundleBuildMode, // cd42
buildEventError, // cd43
commandResultEventMaxRss, // cd44
commandRunAndroidEmbeddingVersion, // cd45
commandPackagesAndroidEmbeddingVersion, // cd46
nullSafety, // cd47
fastReassemble, // cd48
nullSafeMigratedLibraries, // cd49
nullSafeTotalLibraries, // cd50
hotEventCompileTimeInMs, // cd51
hotEventFindInvalidatedTimeInMs, // cd52
hotEventScannedSourcesCount, // cd53
hotEventReassembleTimeInMs, // cd54
hotEventReloadVMTimeInMs, // cd55
commandRunEnableImpeller, // cd56
}
String cdKey(CustomDimensionsEnum cd) => 'cd${cd.index + 1}';