Skip to content

Commit c8b3c74

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

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
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: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ extension SwiftBuildMessage {
4646
}
4747

4848
init(_ message: BuildOperationEnded) {
49-
let metrics: BuildOperationMetrics?
50-
if let messageMetrics = message.metrics, !messageMetrics.counters.isEmpty {
51-
metrics = .init(counters: messageMetrics.counters, taskCounters: messageMetrics.taskCounters)
52-
} else {
53-
metrics = nil
49+
let metrics = message.metrics.map { metrics in
50+
BuildOperationMetrics(
51+
counters: Dictionary(uniqueKeysWithValues: metrics.counters.map { ($0.key.rawValue, $0.value) }),
52+
taskCounters: metrics.taskCounters.mapValues { Dictionary(uniqueKeysWithValues: $0.map { ($0.key.rawValue, $0.value) }) }
53+
)
5454
}
5555
self = .buildCompleted(.init(result: .init(message.status), metrics: metrics))
5656
}

0 commit comments

Comments
 (0)