StreamPart.fromJson constructor

StreamPart.fromJson(
  1. Map<String, dynamic> json
)

Decode an externally-tagged stream-part map. Unknown tags fall back to StreamPartUnknown instead of throwing.

Implementation

factory StreamPart.fromJson(Map<String, dynamic> json) {
  final e = json.entries.first;
  final payload = e.value as Map<String, dynamic>;
  return switch (e.key) {
    'TextStart' => StreamPartTextStart.fromJson(payload),
    'TextDelta' => StreamPartTextDelta.fromJson(payload),
    'TextEnd' => StreamPartTextEnd.fromJson(payload),
    'StreamStart' => StreamPartStreamStart.fromJson(payload),
    'Finish' => StreamPartFinish.fromJson(payload),
    'Error' => StreamPartError.fromJson(payload),
    'ToolInputStart' => StreamPartToolInputStart.fromJson(payload),
    'ToolInputDelta' => StreamPartToolInputDelta.fromJson(payload),
    'ToolInputEnd' => StreamPartToolInputEnd.fromJson(payload),
    'ToolCall' => StreamPartToolCall.fromJson(payload),
    'ToolResult' => StreamPartToolResult.fromJson(payload),
    'File' => StreamPartFile.fromJson(payload),
    'ReasoningStart' => StreamPartReasoningStart.fromJson(payload),
    'ReasoningDelta' => StreamPartReasoningDelta.fromJson(payload),
    'ReasoningEnd' => StreamPartReasoningEnd.fromJson(payload),
    'ResponseMetadata' => StreamPartResponseMetadata.fromJson(payload),
    'Source' => StreamPartSource.fromJson(payload),
    'Raw' => StreamPartRaw.fromJson(payload),
    _ => StreamPartUnknown(tag: e.key, data: payload),
  };
}