fn contentLengthDiscard(io_r: *std.Io.Reader, limit: std.Io.Limit) std.Io.Reader.Error!usize 527
528
529
530
531
532
533
534
535
536
537
538
539 fn contentLengthDiscard(io_r: *std.Io.Reader, limit: std.Io.Limit) std.Io.Reader.Error!usize {
const reader: *Reader = @alignCast(@fieldParentPtr("interface", io_r));
if (reader.state == .ready) return error.EndOfStream;
const remaining_content_length = &reader.state.body_remaining_content_length;
const remaining = remaining_content_length.*;
const n = try reader.in.discard(limit.min(.limited64(remaining)));
if (n == remaining) {
reader.state = .ready;
} else {
remaining_content_length.* = remaining - n;
}
return n;
}