Skip to content

Commit d544a5a

Browse files
Metrics: vend counters as strings to avoid making SWBProtocol part of the public interface for SwiftBuild
1 parent 49c22f9 commit d544a5a

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

Sources/SwiftBuild/ConsoleCommands/SWBServiceConsoleBuildCommandProtocol.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
public import Foundation
1616
public import SWBProjectModel
17-
public import SWBProtocol
1817

1918
import SWBUtil
2019

@@ -169,10 +168,10 @@ public enum SwiftBuildMessage {
169168
}
170169

171170
public struct BuildOperationMetrics {
172-
let counters: [SWBProtocol.BuildOperationMetrics.Counter: Int]
171+
public let counters: [String: Int]
173172

174173
/// The key is the first component of task rule info, a.k.a. the rule info type
175-
let taskCounters: [String: [SWBProtocol.BuildOperationMetrics.TaskCounter: Int]]
174+
public let taskCounters: [String: [String: Int]]
176175
}
177176

178177
public struct BuildCompletedInfo {

Sources/SwiftBuild/SWBuildMessage+Protocol.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ extension SwiftBuildMessage {
4848
init(_ message: BuildOperationEnded) {
4949
let metrics: BuildOperationMetrics?
5050
if let messageMetrics = message.metrics, !messageMetrics.counters.isEmpty {
51-
metrics = .init(counters: messageMetrics.counters, taskCounters: messageMetrics.taskCounters)
51+
metrics = .init(
52+
counters: Dictionary(uniqueKeysWithValues: messageMetrics.counters.map { ($0.key.rawValue, $0.value) }),
53+
taskCounters: messageMetrics.taskCounters.mapValues { Dictionary(uniqueKeysWithValues: $0.map { ($0.key.rawValue, $0.value) }) })
5254
} else {
5355
metrics = nil
5456
}

0 commit comments

Comments
 (0)