Skip to content

Commit 9e521d5

Browse files
committed
XCBuildMessage: make properties public and add Encodable conformance
1 parent 8a5618c commit 9e521d5

File tree

1 file changed

+88
-39
lines changed

1 file changed

+88
-39
lines changed

Sources/XCBuildSupport/XCBuildMessage.swift

Lines changed: 88 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public enum XCBuildMessage {
3030
}
3131

3232
public struct BuildOutputInfo {
33-
let data: String
33+
public let data: String
3434
}
3535

3636
public struct DidUpdateProgressInfo {
@@ -62,31 +62,31 @@ public enum XCBuildMessage {
6262
}
6363

6464
public struct TaskUpToDateInfo {
65-
let targetID: Int?
66-
let taskSignature: String
67-
let parentTaskID: Int?
65+
public let targetID: Int?
66+
public let taskSignature: String
67+
public let parentTaskID: Int?
6868
}
6969

7070
public struct TaskStartedInfo {
71-
let taskID: Int
72-
let targetID: Int?
73-
let taskSignature: String
74-
let parentTaskID: Int?
75-
let ruleInfo: String
76-
let interestingPath: AbsolutePath?
77-
let commandLineDisplayString: String?
78-
let executionDescription: String
71+
public let taskID: Int
72+
public let targetID: Int?
73+
public let taskSignature: String
74+
public let parentTaskID: Int?
75+
public let ruleInfo: String
76+
public let interestingPath: AbsolutePath?
77+
public let commandLineDisplayString: String?
78+
public let executionDescription: String
7979
}
8080

8181
public struct TaskDiagnosticInfo {
82-
let taskID: Int
83-
let targetID: Int?
84-
let message: String
82+
public let taskID: Int
83+
public let targetID: Int?
84+
public let message: String
8585
}
8686

8787
public struct TaskOutputInfo {
88-
let taskID: Int
89-
let data: String
88+
public let taskID: Int
89+
public let data: String
9090
}
9191

9292
public struct TaskCompleteInfo {
@@ -96,14 +96,14 @@ public enum XCBuildMessage {
9696
case cancelled
9797
}
9898

99-
let taskID: Int
100-
let result: Result
101-
let signalled: Bool
99+
public let taskID: Int
100+
public let result: Result
101+
public let signalled: Bool
102102
}
103103

104104
public struct TargetDiagnosticInfo {
105-
let targetID: Int
106-
let message: String
105+
public let targetID: Int
106+
public let message: String
107107
}
108108

109109
case buildStarted
@@ -123,15 +123,15 @@ public enum XCBuildMessage {
123123
case targetDiagnostic(TargetDiagnosticInfo)
124124
}
125125

126-
extension XCBuildMessage.BuildDiagnosticInfo: Decodable, Equatable {}
127-
extension XCBuildMessage.BuildCompletedInfo.Result: Decodable, Equatable {}
128-
extension XCBuildMessage.BuildCompletedInfo: Decodable, Equatable {}
129-
extension XCBuildMessage.BuildOutputInfo: Decodable, Equatable {}
130-
extension XCBuildMessage.TargetUpToDateInfo: Decodable, Equatable {}
131-
extension XCBuildMessage.TaskDiagnosticInfo: Decodable, Equatable {}
132-
extension XCBuildMessage.TargetDiagnosticInfo: Decodable, Equatable {}
126+
extension XCBuildMessage.BuildDiagnosticInfo: Codable, Equatable {}
127+
extension XCBuildMessage.BuildCompletedInfo.Result: Codable, Equatable {}
128+
extension XCBuildMessage.BuildCompletedInfo: Codable, Equatable {}
129+
extension XCBuildMessage.BuildOutputInfo: Codable, Equatable {}
130+
extension XCBuildMessage.TargetUpToDateInfo: Codable, Equatable {}
131+
extension XCBuildMessage.TaskDiagnosticInfo: Codable, Equatable {}
132+
extension XCBuildMessage.TargetDiagnosticInfo: Codable, Equatable {}
133133

134-
extension XCBuildMessage.DidUpdateProgressInfo: Decodable, Equatable {
134+
extension XCBuildMessage.DidUpdateProgressInfo: Codable, Equatable {
135135
enum CodingKeys: String, CodingKey {
136136
case message
137137
case percentComplete
@@ -146,8 +146,8 @@ extension XCBuildMessage.DidUpdateProgressInfo: Decodable, Equatable {
146146
}
147147
}
148148

149-
extension XCBuildMessage.TargetStartedInfo.Kind: Decodable, Equatable {}
150-
extension XCBuildMessage.TargetStartedInfo: Decodable, Equatable {
149+
extension XCBuildMessage.TargetStartedInfo.Kind: Codable, Equatable {}
150+
extension XCBuildMessage.TargetStartedInfo: Codable, Equatable {
151151
enum CodingKeys: String, CodingKey {
152152
case targetID = "id"
153153
case targetGUID = "guid"
@@ -164,7 +164,7 @@ extension XCBuildMessage.TargetStartedInfo: Decodable, Equatable {
164164
}
165165
}
166166

167-
extension XCBuildMessage.TargetCompleteInfo: Decodable, Equatable {
167+
extension XCBuildMessage.TargetCompleteInfo: Codable, Equatable {
168168
enum CodingKeys: String, CodingKey {
169169
case targetID = "id"
170170
}
@@ -175,7 +175,7 @@ extension XCBuildMessage.TargetCompleteInfo: Decodable, Equatable {
175175
}
176176
}
177177

178-
extension XCBuildMessage.TaskUpToDateInfo: Decodable, Equatable {
178+
extension XCBuildMessage.TaskUpToDateInfo: Codable, Equatable {
179179
enum CodingKeys: String, CodingKey {
180180
case targetID
181181
case taskSignature = "signature"
@@ -190,7 +190,7 @@ extension XCBuildMessage.TaskUpToDateInfo: Decodable, Equatable {
190190
}
191191
}
192192

193-
extension XCBuildMessage.TaskStartedInfo: Decodable, Equatable {
193+
extension XCBuildMessage.TaskStartedInfo: Codable, Equatable {
194194
enum CodingKeys: String, CodingKey {
195195
case taskID = "id"
196196
case targetID
@@ -215,7 +215,7 @@ extension XCBuildMessage.TaskStartedInfo: Decodable, Equatable {
215215
}
216216
}
217217

218-
extension XCBuildMessage.TaskOutputInfo: Decodable, Equatable {
218+
extension XCBuildMessage.TaskOutputInfo: Codable, Equatable {
219219
enum CodingKeys: String, CodingKey {
220220
case taskID
221221
case data
@@ -228,8 +228,8 @@ extension XCBuildMessage.TaskOutputInfo: Decodable, Equatable {
228228
}
229229
}
230230

231-
extension XCBuildMessage.TaskCompleteInfo.Result: Decodable, Equatable {}
232-
extension XCBuildMessage.TaskCompleteInfo: Decodable, Equatable {
231+
extension XCBuildMessage.TaskCompleteInfo.Result: Codable, Equatable {}
232+
extension XCBuildMessage.TaskCompleteInfo: Codable, Equatable {
233233
enum CodingKeys: String, CodingKey {
234234
case taskID = "id"
235235
case result
@@ -244,7 +244,7 @@ extension XCBuildMessage.TaskCompleteInfo: Decodable, Equatable {
244244
}
245245
}
246246

247-
extension XCBuildMessage: Decodable, Equatable {
247+
extension XCBuildMessage: Codable, Equatable {
248248
enum CodingKeys: CodingKey {
249249
case kind
250250
}
@@ -287,6 +287,55 @@ extension XCBuildMessage: Decodable, Equatable {
287287
throw DecodingError.dataCorruptedError(forKey: .kind, in: container, debugDescription: "invalid kind \(kind)")
288288
}
289289
}
290+
291+
public func encode(to encoder: Encoder) throws {
292+
var container = encoder.container(keyedBy: CodingKeys.self)
293+
switch self {
294+
case .buildStarted:
295+
try container.encode("buildStarted", forKey: .kind)
296+
case let .buildDiagnostic(info):
297+
try container.encode("buildDiagnostic", forKey: .kind)
298+
try info.encode(to: encoder)
299+
case let .buildCompleted(info):
300+
try container.encode("buildCompleted", forKey: .kind)
301+
try info.encode(to: encoder)
302+
case let .buildOutput(info):
303+
try container.encode("buildOutput", forKey: .kind)
304+
try info.encode(to: encoder)
305+
case .preparationComplete:
306+
try container.encode("preparationComplete", forKey: .kind)
307+
case let .didUpdateProgress(info):
308+
try container.encode("didUpdateProgress", forKey: .kind)
309+
try info.encode(to: encoder)
310+
case let .targetUpToDate(info):
311+
try container.encode("targetUpToDate", forKey: .kind)
312+
try info.encode(to: encoder)
313+
case let .targetStarted(info):
314+
try container.encode("targetStarted", forKey: .kind)
315+
try info.encode(to: encoder)
316+
case let .targetComplete(info):
317+
try container.encode("targetComplete", forKey: .kind)
318+
try info.encode(to: encoder)
319+
case let .taskUpToDate(info):
320+
try container.encode("taskUpToDate", forKey: .kind)
321+
try info.encode(to: encoder)
322+
case let .taskStarted(info):
323+
try container.encode("taskStarted", forKey: .kind)
324+
try info.encode(to: encoder)
325+
case let .taskDiagnostic(info):
326+
try container.encode("taskDiagnostic", forKey: .kind)
327+
try info.encode(to: encoder)
328+
case let .taskOutput(info):
329+
try container.encode("taskOutput", forKey: .kind)
330+
try info.encode(to: encoder)
331+
case let .taskComplete(info):
332+
try container.encode("taskComplete", forKey: .kind)
333+
try info.encode(to: encoder)
334+
case let .targetDiagnostic(info):
335+
try container.encode("targetDiagnostic", forKey: .kind)
336+
try info.encode(to: encoder)
337+
}
338+
}
290339
}
291340

292341
fileprivate extension KeyedDecodingContainer {

0 commit comments

Comments
 (0)