StreamPart.fromJson constructor
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),
};
}