in common/src/main/kotlin/com/google/ai/client/generativeai/common/shared/Types.kt [115:127]
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<Part> {
val jsonObject = element.jsonObject
return when {
"text" in jsonObject -> TextPart.serializer()
"functionCall" in jsonObject -> FunctionCallPart.serializer()
"functionResponse" in jsonObject -> FunctionResponsePart.serializer()
"inlineData" in jsonObject -> BlobPart.serializer()
"fileData" in jsonObject -> FileDataPart.serializer()
"executableCode" in jsonObject -> ExecutableCodePart.serializer()
"codeExecutionResult" in jsonObject -> CodeExecutionResultPart.serializer()
else -> throw SerializationException("Unknown Part type")
}
}