public override BulkResponseItem Read()

in src/Elastic.Ingest.Elasticsearch/Serialization/BulkResponseItem.cs [27:59]


	public override BulkResponseItem Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
	{
		//TODO nasty null return
		if (reader.TokenType != JsonTokenType.StartObject) return null!;

		reader.Read();
		var depth = reader.CurrentDepth;
		var status = 0;
		ErrorCause? error = null;
		var action = reader.GetString()!;
		while (reader.Read() && reader.CurrentDepth >= depth)
		{
			if (reader.TokenType != JsonTokenType.PropertyName) continue;

			var text = reader.GetString();
			switch (text)
			{
				case "status":
					reader.Read();
					status = reader.GetInt32();
					break;
				case "error":
					reader.Read();
					error = JsonSerializer.Deserialize<ErrorCause>(ref reader, options);
					break;
			}
		}
		var r = status == 200
			? OkayBulkResponseItem
			: new BulkResponseItem { Action = action, Status = status, Error = error };

		return r;
	}