fn drain(w: *Writer, data: []const []const u8, splat: usize) Error!usize w: *Writerdata: []const []const u8splat: usizeWriteFailedSee the Writer implementation for detailed diagnostics.
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632 fn drain(w: *Writer, data: []const []const u8, splat: usize) Error!usize {
const this: *@This() = @alignCast(@fieldParentPtr("writer", w));
this.hasher.update(w.buffered());
w.end = 0;
var n: usize = 0;
for (data[0 .. data.len - 1]) |slice| {
this.hasher.update(slice);
n += slice.len;
}
for (0..splat) |_| this.hasher.update(data[data.len - 1]);
return n + splat * data[data.len - 1].len;
}