decodeServerMap static method

RealtimeServerMessage decodeServerMap(
  1. Map<String, Object?> map
)

Implementation

static RealtimeServerMessage decodeServerMap(Map<String, Object?> map) {
  String type = map["type"]?.toString() ?? "";
  return switch (type) {
    RealtimeMessageType.connectionReady =>
      $RealtimeConnectionReadyEvent.fromMap(map),
    RealtimeMessageType.sessionStarted =>
      $RealtimeSessionStartedEvent.fromMap(map),
    RealtimeMessageType.sessionState => $RealtimeSessionStateEvent.fromMap(
      map,
    ),
    RealtimeMessageType.sessionStopped =>
      $RealtimeSessionStoppedEvent.fromMap(map),
    RealtimeMessageType.pong => $RealtimePongEvent.fromMap(map),
    RealtimeMessageType.error => $RealtimeErrorEvent.fromMap(map),
    RealtimeMessageType.inputSpeechStarted =>
      $RealtimeInputSpeechStartedEvent.fromMap(map),
    RealtimeMessageType.inputSpeechStopped =>
      $RealtimeInputSpeechStoppedEvent.fromMap(map),
    RealtimeMessageType.transcriptUserDelta =>
      $RealtimeTranscriptUserDeltaEvent.fromMap(map),
    RealtimeMessageType.transcriptUserFinal =>
      $RealtimeTranscriptUserFinalEvent.fromMap(map),
    RealtimeMessageType.transcriptAssistantDelta =>
      $RealtimeTranscriptAssistantDeltaEvent.fromMap(map),
    RealtimeMessageType.transcriptAssistantFinal =>
      $RealtimeTranscriptAssistantFinalEvent.fromMap(map),
    RealtimeMessageType.transcriptAssistantDiscard =>
      $RealtimeTranscriptAssistantDiscardEvent.fromMap(map),
    RealtimeMessageType.assistantOutputCompleted =>
      $RealtimeAssistantOutputCompletedEvent.fromMap(map),
    RealtimeMessageType.toolStarted => $RealtimeToolStartedEvent.fromMap(map),
    RealtimeMessageType.toolCompleted => $RealtimeToolCompletedEvent.fromMap(
      map,
    ),
    RealtimeMessageType.toolCall => $RealtimeToolCallEvent.fromMap(map),
    _ => throw FormatException("Unsupported realtime server message: $type"),
  };
}