zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit e667884f9ba21c7cdec7581d89b9a9f622c5ffb9 (tree)
parent e25168d01be35bea2c8e811fb5fddab847ae6938
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Sun, 10 Aug 2025 17:38:46 -0700

std.net.Stream.Reader: init size_err

This code knows in advance that stat() should never be called.

closes #24754

Diffstat:
Mlib/std/fs/File.zig | 7++++++-
Mlib/std/net.zig | 1+
2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/lib/std/fs/File.zig b/lib/std/fs/File.zig @@ -1122,10 +1122,15 @@ pub const Reader = struct { /// position, use `logicalPos`. pos: u64 = 0, size: ?u64 = null, - size_err: ?GetEndPosError = null, + size_err: ?SizeError = null, seek_err: ?Reader.SeekError = null, interface: std.Io.Reader, + pub const SizeError = std.os.windows.GetFileSizeError || StatError || error{ + /// Occurs if, for example, the file handle is a network socket and therefore does not have a size. + Streaming, + }; + pub const SeekError = File.SeekError || error{ /// Seeking fell back to reading, and reached the end before the requested seek position. /// `pos` remains at the end of the file. diff --git a/lib/std/net.zig b/lib/std/net.zig @@ -2064,6 +2064,7 @@ pub const Stream = struct { .file = .{ .handle = net_stream.handle }, .mode = .streaming, .seek_err = error.Unseekable, + .size_err = error.Streaming, }, }; }