aboutsummaryrefslogtreecommitdiff
path: root/lib/std/http/Client.zig
diff options
context:
space:
mode:
authorNameless <truemedian@gmail.com>2023-04-12 22:48:03 -0500
committerNameless <truemedian@gmail.com>2023-04-17 19:14:48 -0500
commit038ed32cffbb40d87d8634470e29df31b7699359 (patch)
tree7248b4e0c329644c16f0387e0af876a3f4572c04 /lib/std/http/Client.zig
parent40e1fca34b2c0d2cde130fd17331a2935c473644 (diff)
downloadzig-038ed32cffbb40d87d8634470e29df31b7699359.tar.gz
zig-038ed32cffbb40d87d8634470e29df31b7699359.zip
add explicit error union for Bundle.rescan and associated functions
Diffstat (limited to 'lib/std/http/Client.zig')
-rw-r--r--lib/std/http/Client.zig24
1 files changed, 3 insertions, 21 deletions
diff --git a/lib/std/http/Client.zig b/lib/std/http/Client.zig
index 41f199a094..59df27c454 100644
--- a/lib/std/http/Client.zig
+++ b/lib/std/http/Client.zig
@@ -29,34 +29,16 @@ connection_pool: ConnectionPool = .{},
last_error: ?ExtraError = null,
pub const ExtraError = union(enum) {
- fn impliedErrorSet(comptime f: anytype) type {
- const set = @typeInfo(@typeInfo(@TypeOf(f)).Fn.return_type.?).ErrorUnion.error_set;
- if (@typeName(set)[0] != '@') @compileError(@typeName(f) ++ " doesn't have an implied error set any more.");
- return set;
- }
-
- // There's apparently a dependency loop with using Client.DeflateDecompressor.
- const FakeTransferError = proto.HeadersParser.ReadError || error{ReadFailed};
- const FakeTransferReader = std.io.Reader(void, FakeTransferError, fakeRead);
- fn fakeRead(ctx: void, buf: []u8) FakeTransferError!usize {
- _ = .{ buf, ctx };
- return 0;
- }
-
- const FakeDeflateDecompressor = std.compress.zlib.ZlibStream(FakeTransferReader);
- const FakeGzipDecompressor = std.compress.gzip.Decompress(FakeTransferReader);
- const FakeZstdDecompressor = std.compress.zstd.DecompressStream(FakeTransferReader, .{});
-
pub const TcpConnectError = std.net.TcpConnectToHostError;
pub const TlsError = std.crypto.tls.Client.InitError(net.Stream);
pub const WriteError = BufferedConnection.WriteError;
pub const ReadError = BufferedConnection.ReadError || error{HttpChunkInvalid};
- pub const CaBundleError = impliedErrorSet(std.crypto.Certificate.Bundle.rescan);
+ pub const CaBundleError = std.crypto.Certificate.Bundle.RescanError;
pub const ZlibInitError = error{ BadHeader, InvalidCompression, InvalidWindowSize, Unsupported, EndOfStream, OutOfMemory } || Request.TransferReadError;
pub const GzipInitError = error{ BadHeader, InvalidCompression, OutOfMemory, WrongChecksum, EndOfStream, StreamTooLong } || Request.TransferReadError;
- // pub const DecompressError = Client.DeflateDecompressor.Error || Client.GzipDecompressor.Error || Client.ZstdDecompressor.Error;
- pub const DecompressError = FakeDeflateDecompressor.Error || FakeGzipDecompressor.Error || FakeZstdDecompressor.Error;
+ // pub const DecompressError = Compression.DeflateDecompressor.Error || Compression.GzipDecompressor.Error || Compression.ZstdDecompressor.Error;
+ pub const DecompressError = anyerror; // FIXME: the above line causes a false positive dependency loop
zlib_init: ZlibInitError, // error.CompressionInitializationFailed
gzip_init: GzipInitError, // error.CompressionInitializationFailed