Skip to content

Commit 6332009

Browse files
committed
Use failable initializers
1 parent 88fa653 commit 6332009

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

FirebaseAI/Sources/Types/Internal/Live/LiveSessionService.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ actor LiveSessionService {
219219
resumed = true
220220
setupComplete.resume()
221221
}
222-
} else if let liveMessage = LiveServerMessage.tryFrom(response) {
222+
} else if let liveMessage = LiveServerMessage(from: response) {
223223
if case let .goAway(message) = liveMessage.messageType {
224224
// TODO: (b/444045023) When auto session resumption is enabled, call `connect` again
225225
AILog.debug(

FirebaseAI/Sources/Types/Public/Live/LiveServerMessage.swift

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,30 +44,31 @@ public struct LiveServerMessage: Sendable {
4444

4545
@available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *)
4646
extension LiveServerMessage {
47-
static func tryFrom(_ serverMessage: BidiGenerateContentServerMessage) -> Self? {
48-
guard let messageType = LiveServerMessage.MessageType.tryFrom(serverMessage.messageType) else {
47+
init?(from serverMessage: BidiGenerateContentServerMessage) {
48+
guard let messageType = LiveServerMessage.MessageType(from: serverMessage.messageType) else {
4949
return nil
5050
}
5151

52-
return LiveServerMessage(serverMessage: serverMessage, messageType: messageType)
52+
self.serverMessage = serverMessage
53+
self.messageType = messageType
5354
}
5455
}
5556

5657
@available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *)
5758
extension LiveServerMessage.MessageType {
58-
static func tryFrom(_ serverMessage: BidiGenerateContentServerMessage.MessageType) -> Self? {
59-
return switch serverMessage {
59+
init?(from serverMessage: BidiGenerateContentServerMessage.MessageType) {
60+
switch serverMessage {
6061
case .setupComplete:
6162
// this is handled internally, and should not be surfaced to users
62-
nil
63+
return nil
6364
case let .serverContent(msg):
64-
.content(LiveServerContent(msg))
65+
self = .content(LiveServerContent(msg))
6566
case let .toolCall(msg):
66-
.toolCall(LiveServerToolCall(msg))
67+
self = .toolCall(LiveServerToolCall(msg))
6768
case let .toolCallCancellation(msg):
68-
.toolCallCancellation(LiveServerToolCallCancellation(msg))
69+
self = .toolCallCancellation(LiveServerToolCallCancellation(msg))
6970
case let .goAway(msg):
70-
.goAway(LiveServerGoAway(msg))
71+
self = .goAway(LiveServerGoAway(msg))
7172
}
7273
}
7374
}

0 commit comments

Comments
 (0)