A contiguous slice of complex values, serialized as a BEVE complex array
with a single bulk write of the borrowed payload — the complex counterpart
of TypedSlice.
Both families of complex-array helpers route through this type, so a field
using either gets the bulk path with no further opt-in: the complexserialize_with helpers, and the encode half of the
complex_arrayserde(with) helpers.
The encoded bytes are identical to serializing the same values one at a
time, so this is a throughput change and not a format change; the
complex_slice_bulk_matches_element_wise tests pin that.
An empty slice keeps the element-wise encoding (a generic empty array,
not a zero-length complex array), which is what this wrapper has always
written. That differs from TypedSlice, whose empty form is a typed empty
array, and from crate::to_writer_complex_slice, whose empty form is a
zero-length complex array. All three decode back to an empty Vec, but the
distinction is visible to consumers that read the element type off the
header — notably the MATLAB export, where a typed empty array becomes a cell
and a generic one becomes [].