public override THeader Read()

in src/Elastic.Ingest.Elasticsearch/Serialization/BulkOperationHeader.cs [60:89]


	public override THeader Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
		throw new NotImplementedException();

	public override void Write(Utf8JsonWriter writer, THeader value, JsonSerializerOptions options)
	{
		var op = value switch
		{
			CreateOperation _ => "create",
			DeleteOperation _ => "delete",
			IndexOperation _ => "index",
			UpdateOperation _ => "update",
			_ => throw new ArgumentOutOfRangeException(nameof(value), value, null)
		};
		writer.WriteStartObject();
		writer.WritePropertyName(op);
		writer.WriteStartObject();
		if (!string.IsNullOrWhiteSpace(value.Index))
			writer.WriteString("_index", value.Index);
		if (!string.IsNullOrWhiteSpace(value.Id))
			writer.WriteString("_id", value.Id);
		if (value.RequireAlias == true)
			writer.WriteBoolean("require_alias", true);
		if (value is CreateOperation c)
			WriteDynamicTemplates(writer, options, c.DynamicTemplates);
		if (value is IndexOperation i)
			WriteDynamicTemplates(writer, options, i.DynamicTemplates);

		writer.WriteEndObject();
		writer.WriteEndObject();
	}