diff options
154 files changed, 4857 insertions, 4894 deletions
diff --git a/.github/workflows/zig-fmt.yml b/.github/workflows/zig-fmt.yml index fa904a07e..1f1c95e36 100644 --- a/.github/workflows/zig-fmt.yml +++ b/.github/workflows/zig-fmt.yml @@ -1,7 +1,7 @@ name: zig-fmt env: - ZIG_VERSION: 0.11.0-dev.3737+9eb008717 + ZIG_VERSION: 0.11.0-dev.4006+bf827d0b5 on: pull_request: diff --git a/Dockerfile b/Dockerfile index acc772826..dea0e8f62 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ ARG TRIPLET=${ARCH}-linux-gnu ARG BUILDARCH=amd64 ARG WEBKIT_TAG=may20-4 ARG ZIG_TAG=jul1 -ARG ZIG_VERSION="0.11.0-dev.3737+9eb008717" +ARG ZIG_VERSION="0.11.0-dev.4006+bf827d0b5" ARG WEBKIT_BASENAME="bun-webkit-linux-$BUILDARCH" ARG ZIG_FOLDERNAME=zig-linux-${BUILD_MACHINE_ARCH}-${ZIG_VERSION} diff --git a/bench/hot-module-reloading/css-stress-test/color-looper.emotion.zig b/bench/hot-module-reloading/css-stress-test/color-looper.emotion.zig index 02ab05c54..bc3b525d0 100644 --- a/bench/hot-module-reloading/css-stress-test/color-looper.emotion.zig +++ b/bench/hot-module-reloading/css-stress-test/color-looper.emotion.zig @@ -43,7 +43,7 @@ pub fn main() anyerror!void { var position = try std.fmt.parseInt(u32, position_str, 10); const filepath = try std.fs.path.resolve(allocator, &.{basepath}); var file = try std.fs.openFileAbsolute(filepath, .{ .write = true }); - var ms = @truncate(u64, (try std.fmt.parseInt(u128, args[args.len - 1], 10)) * std.time.ns_per_ms); + var ms = @as(u64, @truncate((try std.fmt.parseInt(u128, args[args.len - 1], 10)) * std.time.ns_per_ms)); std.debug.assert(ms > 0); // std.debug.assert(std.math.isFinite(position)); var prng = std.rand.DefaultPrng.init(0); @@ -125,30 +125,30 @@ pub fn main() anyerror!void { ); }; - counters[counter].timestamp = @truncate(u64, @intCast(u128, std.time.nanoTimestamp()) / (std.time.ns_per_ms / 10)); + counters[counter].timestamp = @as(u64, @truncate(@as(u128, @intCast(std.time.nanoTimestamp())) / (std.time.ns_per_ms / 10))); counters[counter].rotate = rotate % 360; counters[counter].percent = std.math.mod(f64, std.math.round(((progress_bar + 1.0) / destination_count) * 1000) / 1000, 100) catch 0; - counters[counter].color_values[0] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[0][0] + 1) % 256)) * 0.8)); - counters[counter].color_values[1] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[0][1] + 1) % 256)) * 0.8)); - counters[counter].color_values[2] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[0][2] + 1) % 256)) * 0.8)); + counters[counter].color_values[0] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[0][0] + 1) % 256))) * 0.8))); + counters[counter].color_values[1] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[0][1] + 1) % 256))) * 0.8))); + counters[counter].color_values[2] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[0][2] + 1) % 256))) * 0.8))); counters[counter].color_values[3] = (colors[0][0] + 1) % 256; counters[counter].color_values[4] = (colors[0][1] + 1) % 256; counters[counter].color_values[5] = (colors[0][2] + 1) % 256; - counters[counter].color_values[6] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[1][0] + 1) % 256)) * 0.8)); - counters[counter].color_values[7] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[1][1] + 1) % 256)) * 0.8)); - counters[counter].color_values[8] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[1][2] + 1) % 256)) * 0.8)); + counters[counter].color_values[6] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[1][0] + 1) % 256))) * 0.8))); + counters[counter].color_values[7] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[1][1] + 1) % 256))) * 0.8))); + counters[counter].color_values[8] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[1][2] + 1) % 256))) * 0.8))); counters[counter].color_values[9] = (colors[1][0] + 1) % 256; counters[counter].color_values[10] = (colors[1][1] + 1) % 256; counters[counter].color_values[11] = (colors[1][2] + 1) % 256; - counters[counter].color_values[12] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[2][0] + 1) % 256)) * 0.8)); - counters[counter].color_values[13] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[2][1] + 1) % 256)) * 0.8)); - counters[counter].color_values[14] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[2][2] + 1) % 256)) * 0.8)); + counters[counter].color_values[12] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[2][0] + 1) % 256))) * 0.8))); + counters[counter].color_values[13] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[2][1] + 1) % 256))) * 0.8))); + counters[counter].color_values[14] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[2][2] + 1) % 256))) * 0.8))); counters[counter].color_values[15] = (colors[2][0] + 1) % 256; counters[counter].color_values[16] = (colors[2][1] + 1) % 256; counters[counter].color_values[17] = (colors[2][2] + 1) % 256; - counters[counter].color_values[18] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[3][0] + 1) % 256)) * 0.8)); - counters[counter].color_values[19] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[3][1] + 1) % 256)) * 0.8)); - counters[counter].color_values[20] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[3][2] + 1) % 256)) * 0.8)); + counters[counter].color_values[18] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[3][0] + 1) % 256))) * 0.8))); + counters[counter].color_values[19] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[3][1] + 1) % 256))) * 0.8))); + counters[counter].color_values[20] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[3][2] + 1) % 256))) * 0.8))); counters[counter].color_values[21] = (colors[3][0] + 1) % 256; counters[counter].color_values[22] = (colors[3][1] + 1) % 256; counters[counter].color_values[23] = (colors[3][2] + 1) % 256; diff --git a/bench/hot-module-reloading/css-stress-test/color-looper.zig b/bench/hot-module-reloading/css-stress-test/color-looper.zig index 0509a525b..a1483a2f3 100644 --- a/bench/hot-module-reloading/css-stress-test/color-looper.zig +++ b/bench/hot-module-reloading/css-stress-test/color-looper.zig @@ -43,7 +43,7 @@ pub fn main() anyerror!void { var position = try std.fmt.parseInt(u32, position_str, 10); const filepath = try std.fs.path.resolve(allocator, &.{basepath}); var file = try std.fs.openFileAbsolute(filepath, .{ .write = true }); - var ms = @truncate(u64, (try std.fmt.parseInt(u128, args[args.len - 1], 10)) * std.time.ns_per_ms); + var ms = @as(u64, @truncate((try std.fmt.parseInt(u128, args[args.len - 1], 10)) * std.time.ns_per_ms)); std.debug.assert(ms > 0); // std.debug.assert(std.math.isFinite(position)); var prng = std.rand.DefaultPrng.init(0); @@ -112,30 +112,30 @@ pub fn main() anyerror!void { \\ ++ SIMULATE_LONG_FILE; - counters[counter].timestamp = @truncate(u64, @intCast(u128, std.time.nanoTimestamp()) / (std.time.ns_per_ms / 10)); + counters[counter].timestamp = @as(u64, @truncate(@as(u128, @intCast(std.time.nanoTimestamp())) / (std.time.ns_per_ms / 10))); counters[counter].rotate = rotate % 360; counters[counter].percent = std.math.mod(f64, std.math.round(((progress_bar + 1.0) / destination_count) * 1000) / 1000, 100) catch 0; - counters[counter].color_values[0] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[0][0] + 1) % 256)) * 0.8)); - counters[counter].color_values[1] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[0][1] + 1) % 256)) * 0.8)); - counters[counter].color_values[2] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[0][2] + 1) % 256)) * 0.8)); + counters[counter].color_values[0] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[0][0] + 1) % 256))) * 0.8))); + counters[counter].color_values[1] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[0][1] + 1) % 256))) * 0.8))); + counters[counter].color_values[2] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[0][2] + 1) % 256))) * 0.8))); counters[counter].color_values[3] = (colors[0][0] + 1) % 256; counters[counter].color_values[4] = (colors[0][1] + 1) % 256; counters[counter].color_values[5] = (colors[0][2] + 1) % 256; - counters[counter].color_values[6] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[1][0] + 1) % 256)) * 0.8)); - counters[counter].color_values[7] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[1][1] + 1) % 256)) * 0.8)); - counters[counter].color_values[8] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[1][2] + 1) % 256)) * 0.8)); + counters[counter].color_values[6] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[1][0] + 1) % 256))) * 0.8))); + counters[counter].color_values[7] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[1][1] + 1) % 256))) * 0.8))); + counters[counter].color_values[8] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[1][2] + 1) % 256))) * 0.8))); counters[counter].color_values[9] = (colors[1][0] + 1) % 256; counters[counter].color_values[10] = (colors[1][1] + 1) % 256; counters[counter].color_values[11] = (colors[1][2] + 1) % 256; - counters[counter].color_values[12] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[2][0] + 1) % 256)) * 0.8)); - counters[counter].color_values[13] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[2][1] + 1) % 256)) * 0.8)); - counters[counter].color_values[14] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[2][2] + 1) % 256)) * 0.8)); + counters[counter].color_values[12] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[2][0] + 1) % 256))) * 0.8))); + counters[counter].color_values[13] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[2][1] + 1) % 256))) * 0.8))); + counters[counter].color_values[14] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[2][2] + 1) % 256))) * 0.8))); counters[counter].color_values[15] = (colors[2][0] + 1) % 256; counters[counter].color_values[16] = (colors[2][1] + 1) % 256; counters[counter].color_values[17] = (colors[2][2] + 1) % 256; - counters[counter].color_values[18] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[3][0] + 1) % 256)) * 0.8)); - counters[counter].color_values[19] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[3][1] + 1) % 256)) * 0.8)); - counters[counter].color_values[20] = @intFromFloat(u32, std.math.round(@floatFromInt(f64, ((colors[3][2] + 1) % 256)) * 0.8)); + counters[counter].color_values[18] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[3][0] + 1) % 256))) * 0.8))); + counters[counter].color_values[19] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[3][1] + 1) % 256))) * 0.8))); + counters[counter].color_values[20] = @as(u32, @intFromFloat(std.math.round(@as(f64, @floatFromInt(((colors[3][2] + 1) % 256))) * 0.8))); counters[counter].color_values[21] = (colors[3][0] + 1) % 256; counters[counter].color_values[22] = (colors[3][1] + 1) % 256; counters[counter].color_values[23] = (colors[3][2] + 1) % 256; diff --git a/docs/project/development.md b/docs/project/development.md index 29bb09f63..4849f1780 100644 --- a/docs/project/development.md +++ b/docs/project/development.md @@ -112,7 +112,7 @@ Zig can be installed either with our npm package [`@oven/zig`](https://www.npmjs ```bash $ bun install -g @oven/zig -$ zigup 0.11.0-dev.3737+9eb008717 +$ zigup 0.11.0-dev.4006+bf827d0b5 ``` ## Building diff --git a/misctools/fetch.zig b/misctools/fetch.zig index 5ac701250..e450ab5d3 100644 --- a/misctools/fetch.zig +++ b/misctools/fetch.zig @@ -91,7 +91,7 @@ pub const Arguments = struct { var raw_args: std.ArrayListUnmanaged(string) = undefined; if (positionals.len > 0) { - raw_args = .{ .capacity = positionals.len, .items = @ptrFromInt([*][]const u8, @intFromPtr(positionals.ptr))[0..positionals.len] }; + raw_args = .{ .capacity = positionals.len, .items = @as([*][]const u8, @ptrFromInt(@intFromPtr(positionals.ptr)))[0..positionals.len] }; } else { raw_args = .{}; } diff --git a/misctools/http_bench.zig b/misctools/http_bench.zig index 5847399a1..1759e630d 100644 --- a/misctools/http_bench.zig +++ b/misctools/http_bench.zig @@ -95,7 +95,7 @@ pub const Arguments = struct { var raw_args: std.ArrayListUnmanaged(string) = undefined; if (positionals.len > 0) { - raw_args = .{ .capacity = positionals.len, .items = @ptrFromInt([*][]const u8, @intFromPtr(positionals.ptr))[0..positionals.len] }; + raw_args = .{ .capacity = positionals.len, .items = @as([*][]const u8, @ptrFromInt(@intFromPtr(positionals.ptr)))[0..positionals.len] }; } else { raw_args = .{}; } @@ -244,7 +244,7 @@ pub fn main() anyerror!void { const http = channel.readItem() catch continue; read_count += 1; - Output.printElapsed(@floatCast(f64, @floatFromInt(f128, http.elapsed) / std.time.ns_per_ms)); + Output.printElapsed(@as(f64, @floatCast(@as(f128, @floatFromInt(http.elapsed)) / std.time.ns_per_ms))); if (http.response) |resp| { if (resp.status_code == 200) { success_count += 1; @@ -270,7 +270,7 @@ pub fn main() anyerror!void { http.client.url.href, http.response_buffer.list.items.len, }); - Output.printElapsed(@floatCast(f64, @floatFromInt(f128, http.gzip_elapsed) / std.time.ns_per_ms)); + Output.printElapsed(@as(f64, @floatCast(@as(f128, @floatFromInt(http.gzip_elapsed)) / std.time.ns_per_ms))); Output.prettyError("<d> gzip)<r>\n", .{}); } else { Output.prettyError(" <d>{s}<r><d> - {s}<r> <d>({d} bytes)<r>\n", .{ @@ -295,7 +295,7 @@ pub fn main() anyerror!void { fail_count, }); - Output.printElapsed(@floatCast(f64, @floatFromInt(f128, timer.read()) / std.time.ns_per_ms)); + Output.printElapsed(@as(f64, @floatCast(@as(f128, @floatFromInt(timer.read())) / std.time.ns_per_ms))); Output.prettyErrorln(" {d} requests", .{ read_count, }); diff --git a/src/ArenaAllocator.zig b/src/ArenaAllocator.zig index 999ea4142..2ccb08d19 100644 --- a/src/ArenaAllocator.zig +++ b/src/ArenaAllocator.zig @@ -49,7 +49,7 @@ pub const ArenaAllocator = struct { // this has to occur before the free because the free frees node const next_it = node.next; const align_bits = std.math.log2_int(usize, @alignOf(BufNode)); - const alloc_buf = @ptrCast([*]u8, node)[0..node.data]; + const alloc_buf = @as([*]u8, @ptrCast(node))[0..node.data]; self.child_allocator.rawFree(alloc_buf, align_bits, @returnAddress()); it = next_it; } @@ -129,7 +129,7 @@ pub const ArenaAllocator = struct { const next_it = node.next; if (next_it == null) break node; - const alloc_buf = @ptrCast([*]u8, node)[0..node.data]; + const alloc_buf = @as([*]u8, @ptrCast(node))[0..node.data]; self.child_allocator.rawFree(alloc_buf, align_bits, @returnAddress()); it = next_it; } else null; @@ -141,7 +141,7 @@ pub const ArenaAllocator = struct { // perfect, no need to invoke the child_allocator if (first_node.data == total_size) return true; - const first_alloc_buf = @ptrCast([*]u8, first_node)[0..first_node.data]; + const first_alloc_buf = @as([*]u8, @ptrCast(first_node))[0..first_node.data]; if (self.child_allocator.rawResize(first_alloc_buf, align_bits, total_size, @returnAddress())) { // successful resize first_node.data = total_size; @@ -152,7 +152,7 @@ pub const ArenaAllocator = struct { return false; }; self.child_allocator.rawFree(first_alloc_buf, align_bits, @returnAddress()); - const node = @ptrCast(*BufNode, @alignCast(@alignOf(BufNode), new_ptr)); + const node = @as(*BufNode, @ptrCast(@alignCast(new_ptr))); node.* = .{ .data = total_size }; self.state.buffer_list.first = node; } @@ -167,7 +167,7 @@ pub const ArenaAllocator = struct { const log2_align = comptime std.math.log2_int(usize, @alignOf(BufNode)); const ptr = self.child_allocator.rawAlloc(len, log2_align, @returnAddress()) orelse return null; - const buf_node = @ptrCast(*BufNode, @alignCast(@alignOf(BufNode), ptr)); + const buf_node = @as(*BufNode, @ptrCast(@alignCast(ptr))); buf_node.* = .{ .data = len }; self.state.buffer_list.prepend(buf_node); self.state.end_index = 0; @@ -175,16 +175,16 @@ pub const ArenaAllocator = struct { } fn alloc(ctx: *anyopaque, n: usize, log2_ptr_align: u8, ra: usize) ?[*]u8 { - const self = @ptrCast(*ArenaAllocator, @alignCast(@alignOf(ArenaAllocator), ctx)); + const self = @as(*ArenaAllocator, @ptrCast(@alignCast(ctx))); _ = ra; - const ptr_align = @as(usize, 1) << @intCast(Allocator.Log2Align, log2_ptr_align); + const ptr_align = @as(usize, 1) << @as(Allocator.Log2Align, @intCast(log2_ptr_align)); var cur_node = if (self.state.buffer_list.first) |first_node| first_node else (self.createNode(0, n + ptr_align) orelse return null); while (true) { - const cur_alloc_buf = @ptrCast([*]u8, cur_node)[0..cur_node.data]; + const cur_alloc_buf = @as([*]u8, @ptrCast(cur_node))[0..cur_node.data]; const cur_buf = cur_alloc_buf[@sizeOf(BufNode)..]; const addr = @intFromPtr(cur_buf.ptr) + self.state.end_index; const adjusted_addr = mem.alignForward(usize, addr, ptr_align); @@ -209,12 +209,12 @@ pub const ArenaAllocator = struct { } fn resize(ctx: *anyopaque, buf: []u8, log2_buf_align: u8, new_len: usize, ret_addr: usize) bool { - const self = @ptrCast(*ArenaAllocator, @alignCast(@alignOf(ArenaAllocator), ctx)); + const self = @as(*ArenaAllocator, @ptrCast(@alignCast(ctx))); _ = log2_buf_align; _ = ret_addr; const cur_node = self.state.buffer_list.first orelse return false; - const cur_buf = @ptrCast([*]u8, cur_node)[@sizeOf(BufNode)..cur_node.data]; + const cur_buf = @as([*]u8, @ptrCast(cur_node))[@sizeOf(BufNode)..cur_node.data]; if (@intFromPtr(cur_buf.ptr) + self.state.end_index != @intFromPtr(buf.ptr) + buf.len) { // It's not the most recent allocation, so it cannot be expanded, // but it's fine if they want to make it smaller. @@ -236,10 +236,10 @@ pub const ArenaAllocator = struct { _ = log2_buf_align; _ = ret_addr; - const self = @ptrCast(*ArenaAllocator, @alignCast(@alignOf(ArenaAllocator), ctx)); + const self = @as(*ArenaAllocator, @ptrCast(@alignCast(ctx))); const cur_node = self.state.buffer_list.first orelse return; - const cur_buf = @ptrCast([*]u8, cur_node)[@sizeOf(BufNode)..cur_node.data]; + const cur_buf = @as([*]u8, @ptrCast(cur_node))[@sizeOf(BufNode)..cur_node.data]; if (@intFromPtr(cur_buf.ptr) + self.state.end_index == @intFromPtr(buf.ptr) + buf.len) { self.state.end_index -= buf.len; diff --git a/src/allocators.zig b/src/allocators.zig index 1d3b30c0b..facab925e 100644 --- a/src/allocators.zig +++ b/src/allocators.zig @@ -13,8 +13,8 @@ pub fn sliceRange(slice: []const u8, buffer: []const u8) ?[2]u32 { return if (@intFromPtr(buffer.ptr) <= @intFromPtr(slice.ptr) and (@intFromPtr(slice.ptr) + slice.len) <= (@intFromPtr(buffer.ptr) + buffer.len)) [2]u32{ - @truncate(u32, @intFromPtr(slice.ptr) - @intFromPtr(buffer.ptr)), - @truncate(u32, slice.len), + @as(u32, @truncate(@intFromPtr(slice.ptr) - @intFromPtr(buffer.ptr))), + @as(u32, @truncate(slice.len)), } else null; @@ -427,7 +427,7 @@ pub fn BSSStringList(comptime _count: usize, comptime _item_length: usize) type var result = IndexType{ .index = std.math.maxInt(u31), .is_overflow = instance.slice_buf_used > max_index }; if (result.is_overflow) { - result.index = @intCast(u31, self.overflow_list.len()); + result.index = @as(u31, @intCast(self.overflow_list.len())); } else { result.index = instance.slice_buf_used; instance.slice_buf_used += 1; @@ -693,7 +693,7 @@ pub fn BSSMap(comptime ValueType: type, comptime count: anytype, comptime store_ if (!result.index.is_overflow) { instance.key_list_slices[result.index.index] = slice; } else { - if (@intCast(u31, instance.key_list_overflow.items.len) > result.index.index) { + if (@as(u31, @intCast(instance.key_list_overflow.items.len)) > result.index.index) { const existing_slice = instance.key_list_overflow.items[result.index.index]; if (!isKeyStaticallyAllocated(existing_slice)) { self.map.allocator.free(existing_slice); diff --git a/src/analytics/analytics_schema.zig b/src/analytics/analytics_schema.zig index 5332a4837..fbcc26fb0 100644 --- a/src/analytics/analytics_schema.zig +++ b/src/analytics/analytics_schema.zig @@ -93,7 +93,7 @@ pub const Reader = struct { }, .Enum => |type_info| { const enum_values = try this.read(length * @sizeOf(type_info.tag_type)); - return @ptrCast([*]T, enum_values.ptr)[0..length]; + return @as([*]T, @ptrCast(enum_values.ptr))[0..length]; }, else => {}, } @@ -156,7 +156,7 @@ pub const Reader = struct { .Packed => { const sizeof = @sizeOf(T); var slice = try this.read(sizeof); - return @ptrCast(*align(1) T, slice[0..sizeof]).*; + return @as(*align(1) T, @ptrCast(slice[0..sizeof])).*; }, else => {}, } @@ -264,7 +264,7 @@ pub fn Writer(comptime WritableStream: type) type { } pub fn writeArray(this: *Self, comptime T: type, slice: anytype) !void { - try this.writeInt(@truncate(u32, slice.len)); + try this.writeInt(@as(u32, @truncate(slice.len))); switch (T) { u8 => { diff --git a/src/analytics/analytics_thread.zig b/src/analytics/analytics_thread.zig index 998f5cfc2..62e5d8760 100644 --- a/src/analytics/analytics_thread.zig +++ b/src/analytics/analytics_thread.zig @@ -95,7 +95,7 @@ pub const Features = struct { pub const Serializer = struct { inline fn shiftIndex(index: u32) !u32 { - return @intCast(u32, @as(Bitset.MaskInt, 1) << @intCast(Bitset.ShiftInt, index)); + return @as(u32, @intCast(@as(Bitset.MaskInt, 1) << @as(Bitset.ShiftInt, @intCast(index)))); } fn writeField(comptime WriterType: type, writer: WriterType, field_name: string, index: u32) !void { @@ -200,7 +200,7 @@ pub const Event = struct { pub fn init(comptime name: EventName) Event { const millis = std.time.milliTimestamp(); - const timestamp = if (millis < 0) 0 else @intCast(u64, millis); + const timestamp = if (millis < 0) 0 else @as(u64, @intCast(millis)); return Event{ .timestamp = timestamp, .data = @unionInit(Data, @tagName(name), {}) }; } @@ -239,7 +239,7 @@ pub const GenerateHeader = struct { return Analytics.EventListHeader{ .machine_id = GenerateMachineID.forMac() catch Analytics.Uint64{}, .platform = GeneratePlatform.forMac(), - .build_id = comptime @truncate(u32, Global.build_id), + .build_id = comptime @as(u32, @truncate(Global.build_id)), .session_id = random.random().int(u32), .project_id = project_id, }; @@ -249,7 +249,7 @@ pub const GenerateHeader = struct { return Analytics.EventListHeader{ .machine_id = GenerateMachineID.forLinux() catch Analytics.Uint64{}, .platform = GeneratePlatform.forLinux(), - .build_id = comptime @truncate(u32, Global.build_id), + .build_id = comptime @as(u32, @truncate(Global.build_id)), .session_id = random.random().int(u32), .project_id = project_id, }; @@ -380,10 +380,10 @@ fn spawn() !void {} const headers_buf: string = "Content-Type binary/peechy"; const header_entry = Headers.Kv{ - .name = .{ .offset = 0, .length = @intCast(u32, "Content-Type".len) }, + .name = .{ .offset = 0, .length = @as(u32, @intCast("Content-Type".len)) }, .value = .{ .offset = std.mem.indexOf(u8, headers_buf, "binary/peechy").?, - .length = @intCast(u32, "binary/peechy".len), + .length = @as(u32, @intCast("binary/peechy".len)), }, }; @@ -435,7 +435,7 @@ pub const EventList = struct { in_buffer: MutableString, pub fn init() EventList { - random = std.rand.DefaultPrng.init(@intCast(u64, std.time.milliTimestamp())); + random = std.rand.DefaultPrng.init(@as(u64, @intCast(std.time.milliTimestamp()))); return EventList{ .header = GenerateHeader.generate(), .events = std.ArrayList(Event).init(default_allocator), @@ -472,12 +472,12 @@ pub const EventList = struct { 0; const now = std.time.nanoTimestamp(); - this.header.session_length = @truncate(u32, @intCast(u64, (now - start_time)) / std.time.ns_per_ms); + this.header.session_length = @as(u32, @truncate(@as(u64, @intCast((now - start_time))) / std.time.ns_per_ms)); this.header.feature_usage = Features.toInt(); var list = Analytics.EventList{ .header = this.header, - .event_count = @intCast(u32, this.events.items.len), + .event_count = @as(u32, @intCast(this.events.items.len)), }; try list.encode(&analytics_writer); @@ -540,8 +540,8 @@ pub const EventList = struct { } @atomicStore(bool, &is_stuck, retry_remaining == 0, .Release); - stuck_count += @intCast(u8, @intFromBool(retry_remaining == 0)); - stuck_count *= @intCast(u8, @intFromBool(retry_remaining == 0)); + stuck_count += @as(u8, @intCast(@intFromBool(retry_remaining == 0))); + stuck_count *= @as(u8, @intCast(@intFromBool(retry_remaining == 0))); disabled = disabled or stuck_count > 4; this.in_buffer.reset(); diff --git a/src/api/schema.zig b/src/api/schema.zig index ec8efa9f6..94f2d22df 100644 --- a/src/api/schema.zig +++ b/src/api/schema.zig @@ -93,7 +93,7 @@ pub const Reader = struct { }, .Enum => |type_info| { const enum_values = try this.read(length * @sizeOf(type_info.tag_type)); - return @ptrCast([*]T, enum_values.ptr)[0..length]; + return @as([*]T, @ptrCast(enum_values.ptr))[0..length]; }, else => {}, } @@ -156,7 +156,7 @@ pub const Reader = struct { .Packed => { const sizeof = @sizeOf(T); var slice = try this.read(sizeof); - return @ptrCast(*align(1) T, slice[0..sizeof]).*; + return @as(*align(1) T, @ptrCast(slice[0..sizeof])).*; }, else => {}, } @@ -264,7 +264,7 @@ pub fn Writer(comptime WritableStream: type) type { } pub fn writeArray(this: *Self, comptime T: type, slice: anytype) !void { - try this.writeInt(@truncate(u32, slice.len)); + try this.writeInt(@as(u32, @truncate(slice.len))); switch (T) { u8 => { diff --git a/src/ast/base.zig b/src/ast/base.zig index ae544f8be..ab96dab3d 100644 --- a/src/ast/base.zig +++ b/src/ast/base.zig @@ -124,7 +124,7 @@ pub inline fn getBits(comptime TargetType: type, target: anytype, comptime start } } - return @truncate(TargetType, target >> start_bit); + return @as(TargetType, @truncate(target >> start_bit)); } /// In some parts of Bun, we have many different IDs pointing to different things. @@ -149,11 +149,11 @@ pub const Index = packed struct(u32) { pub const Int = u32; pub inline fn source(num: anytype) Index { - return .{ .value = @truncate(Int, num) }; + return .{ .value = @as(Int, @truncate(num)) }; } pub inline fn part(num: anytype) Index { - return .{ .value = @truncate(Int, num) }; + return .{ .value = @as(Int, @truncate(num)) }; } pub fn init(num: anytype) Index { @@ -164,12 +164,12 @@ pub const Index = packed struct(u32) { if (comptime bun.Environment.allow_assert) { return .{ - .value = @intCast(Int, num), + .value = @as(Int, @intCast(num)), }; } return .{ - .value = @intCast(Int, num), + .value = @as(Int, @intCast(num)), }; } @@ -208,7 +208,7 @@ pub const Ref = packed struct(u64) { pub const Int = std.meta.Int(.unsigned, (64 - 2) / 2); pub fn toInt(value: anytype) Int { - return @intCast(Int, value); + return @as(Int, @intCast(value)); } pub fn isSourceIndexNull(this: anytype) bool { @@ -255,7 +255,7 @@ pub const Ref = packed struct(u64) { .inner_index = inner_index, // if we overflow, we want a panic - .source_index = @intCast(Int, source_index), + .source_index = @as(Int, @intCast(source_index)), .tag = if (is_source_contents_slice) .source_contents_slice else .allocated_name, }; @@ -267,15 +267,15 @@ pub const Ref = packed struct(u64) { } pub fn hash(key: Ref) u32 { - return @truncate(u32, key.hash64()); + return @as(u32, @truncate(key.hash64())); } pub inline fn asU64(key: Ref) u64 { - return @bitCast(u64, key); + return @as(u64, @bitCast(key)); } pub inline fn hash64(key: Ref) u64 { - return bun.hash(&@bitCast([8]u8, key.asU64())); + return bun.hash(&@as([8]u8, @bitCast(key.asU64()))); } pub fn eql(ref: Ref, b: Ref) bool { diff --git a/src/baby_list.zig b/src/baby_list.zig index 01ec819ec..5881f2c50 100644 --- a/src/baby_list.zig +++ b/src/baby_list.zig @@ -16,8 +16,8 @@ pub fn BabyList(comptime Type: type) type { pub fn set(this: *@This(), slice_: []Type) void { this.ptr = slice_.ptr; - this.len = @truncate(u32, slice_.len); - this.cap = @truncate(u32, slice_.len); + this.len = @as(u32, @truncate(slice_.len)); + this.cap = @as(u32, @truncate(slice_.len)); } pub fn available(this: *@This()) []Type { @@ -38,8 +38,8 @@ pub fn BabyList(comptime Type: type) type { return ListType{ // Remove the const qualifier from the items .ptr = @constCast(items.ptr), - .len = @truncate(u32, items.len), - .cap = @truncate(u32, items.len), + .len = @as(u32, @truncate(items.len)), + .cap = @as(u32, @truncate(items.len)), }; } @@ -60,8 +60,8 @@ pub fn BabyList(comptime Type: type) type { var copy = try list_.clone(); return ListType{ .ptr = copy.items.ptr, - .len = @truncate(u32, copy.items.len), - .cap = @truncate(u32, copy.capacity), + .len = @as(u32, @truncate(copy.items.len)), + .cap = @as(u32, @truncate(copy.capacity)), }; } @@ -74,7 +74,7 @@ pub fn BabyList(comptime Type: type) type { pub fn writableSlice(this: *@This(), allocator: std.mem.Allocator, cap: usize) ![]Type { var list_ = this.listManaged(allocator); try list_.ensureUnusedCapacity(cap); - var writable = list_.items.ptr[this.len .. this.len + @truncate(u32, cap)]; + var writable = list_.items.ptr[this.len .. this.len + @as(u32, @truncate(cap))]; list_.items.len += cap; this.update(list_); return writable; @@ -82,9 +82,9 @@ pub fn BabyList(comptime Type: type) type { pub fn appendSliceAssumeCapacity(this: *@This(), values: []const Type) void { var tail = this.ptr[this.len .. this.len + values.len]; - std.debug.assert(this.cap >= this.len + @truncate(u32, values.len)); + std.debug.assert(this.cap >= this.len + @as(u32, @truncate(values.len))); bun.copy(Type, tail, values); - this.len += @truncate(u32, values.len); + this.len += @as(u32, @truncate(values.len)); std.debug.assert(this.cap >= this.len); } @@ -96,7 +96,7 @@ pub fn BabyList(comptime Type: type) type { return ListType{ .ptr = buffer.ptr, .len = 0, - .cap = @truncate(u32, buffer.len), + .cap = @as(u32, @truncate(buffer.len)), }; } @@ -104,8 +104,8 @@ pub fn BabyList(comptime Type: type) type { @setRuntimeSafety(false); return ListType{ .ptr = @constCast(items.ptr), - .len = @truncate(u32, items.len), - .cap = @truncate(u32, items.len), + .len = @as(u32, @truncate(items.len)), + .cap = @as(u32, @truncate(items.len)), }; } @@ -124,8 +124,8 @@ pub fn BabyList(comptime Type: type) type { return ListType{ .ptr = list_.items.ptr, - .len = @truncate(u32, list_.items.len), - .cap = @truncate(u32, list_.capacity), + .len = @as(u32, @truncate(list_.items.len)), + .cap = @as(u32, @truncate(list_.capacity)), }; } @@ -135,16 +135,16 @@ pub fn BabyList(comptime Type: type) type { return ListType{ .ptr = allocated.ptr, - .len = @truncate(u32, allocated.len), - .cap = @truncate(u32, allocated.len), + .len = @as(u32, @truncate(allocated.len)), + .cap = @as(u32, @truncate(allocated.len)), }; } pub fn update(this: *ListType, list_: anytype) void { this.* = .{ .ptr = list_.items.ptr, - .len = @truncate(u32, list_.items.len), - .cap = @truncate(u32, list_.capacity), + .len = @as(u32, @truncate(list_.items.len)), + .cap = @as(u32, @truncate(list_.capacity)), }; if (comptime Environment.allow_assert) { @@ -193,7 +193,7 @@ pub fn BabyList(comptime Type: type) type { var items = try allocator.alloc(Type, 1); items[0] = value; return ListType{ - .ptr = @ptrCast([*]Type, items.ptr), + .ptr = @as([*]Type, @ptrCast(items.ptr)), .len = 1, .cap = 1, }; diff --git a/src/base64/base64.zig b/src/base64/base64.zig index 8768b9c7b..e56e15877 100644 --- a/src/base64/base64.zig +++ b/src/base64/base64.zig @@ -28,7 +28,7 @@ const mixed_decoder = brk: { }); for (zig_base64.url_safe_alphabet_chars[62..], 62..) |c, i| { - decoder.decoder.char_to_index[c] = @intCast(u8, i); + decoder.decoder.char_to_index[c] = @as(u8, @intCast(i)); } break :brk decoder; @@ -189,12 +189,12 @@ const zig_base64 = struct { acc_len += 8; while (acc_len >= 6) { acc_len -= 6; - dest[out_idx] = encoder.alphabet_chars[@truncate(u6, (acc >> acc_len))]; + dest[out_idx] = encoder.alphabet_chars[@as(u6, @truncate((acc >> acc_len)))]; out_idx += 1; } } if (acc_len > 0) { - dest[out_idx] = encoder.alphabet_chars[@truncate(u6, (acc << 6 - acc_len))]; + dest[out_idx] = encoder.alphabet_chars[@as(u6, @truncate((acc << 6 - acc_len)))]; out_idx += 1; } if (encoder.pad_char) |pad_char| { @@ -225,7 +225,7 @@ const zig_base64 = struct { assert(!char_in_alphabet[c]); assert(pad_char == null or c != pad_char.?); - result.char_to_index[c] = @intCast(u8, i); + result.char_to_index[c] = @as(u8, @intCast(i)); char_in_alphabet[c] = true; } return result; @@ -277,7 +277,7 @@ const zig_base64 = struct { acc_len += 6; if (acc_len >= 8) { acc_len -= 8; - dest[dest_idx] = @truncate(u8, acc >> acc_len); + dest[dest_idx] = @as(u8, @truncate(acc >> acc_len)); dest_idx += 1; } } @@ -362,7 +362,7 @@ const zig_base64 = struct { if (acc_len >= 8) { if (dest_idx == dest.len) return error.NoSpaceLeft; acc_len -= 8; - dest[dest_idx] = @truncate(u8, acc >> acc_len); + dest[dest_idx] = @as(u8, @truncate(acc >> acc_len)); dest_idx += 1; } } diff --git a/src/bit_set.zig b/src/bit_set.zig index d40794473..36f683ea4 100644 --- a/src/bit_set.zig +++ b/src/bit_set.zig @@ -121,19 +121,19 @@ pub fn IntegerBitSet(comptime size: u16) type { if (range.start == range.end) return; if (MaskInt == u0) return; - const start_bit = @intCast(ShiftInt, range.start); + const start_bit = @as(ShiftInt, @intCast(range.start)); var mask = std.math.boolMask(MaskInt, true) << start_bit; if (range.end != bit_length) { - const end_bit = @intCast(ShiftInt, range.end); - mask &= std.math.boolMask(MaskInt, true) >> @truncate(ShiftInt, @as(usize, @bitSizeOf(MaskInt)) - @as(usize, end_bit)); + const end_bit = @as(ShiftInt, @intCast(range.end)); + mask &= std.math.boolMask(MaskInt, true) >> @as(ShiftInt, @truncate(@as(usize, @bitSizeOf(MaskInt)) - @as(usize, end_bit))); } self.mask &= ~mask; mask = std.math.boolMask(MaskInt, value) << start_bit; if (range.end != bit_length) { - const end_bit = @intCast(ShiftInt, range.end); - mask &= std.math.boolMask(MaskInt, value) >> @truncate(ShiftInt, @as(usize, @bitSizeOf(MaskInt)) - @as(usize, end_bit)); + const end_bit = @as(ShiftInt, @intCast(range.end)); + mask &= std.math.boolMask(MaskInt, value) >> @as(ShiftInt, @truncate(@as(usize, @bitSizeOf(MaskInt)) - @as(usize, end_bit))); } self.mask |= mask; } @@ -294,7 +294,7 @@ pub fn IntegerBitSet(comptime size: u16) type { .reverse => { const leading_zeroes = @clz(self.bits_remain); const top_bit = (@bitSizeOf(MaskInt) - 1) - leading_zeroes; - self.bits_remain &= (@as(MaskInt, 1) << @intCast(ShiftInt, top_bit)) - 1; + self.bits_remain &= (@as(MaskInt, 1) << @as(ShiftInt, @intCast(top_bit))) - 1; return top_bit; }, } @@ -304,11 +304,11 @@ pub fn IntegerBitSet(comptime size: u16) type { fn maskBit(index: usize) MaskInt { if (MaskInt == u0) return 0; - return @as(MaskInt, 1) << @intCast(ShiftInt, index); + return @as(MaskInt, 1) << @as(ShiftInt, @intCast(index)); } fn boolMaskBit(index: usize, value: bool) MaskInt { if (MaskInt == u0) return 0; - return @as(MaskInt, @intFromBool(value)) << @intCast(ShiftInt, index); + return @as(MaskInt, @intFromBool(value)) << @as(ShiftInt, @intCast(index)); } }; } @@ -446,10 +446,10 @@ pub fn ArrayBitSet(comptime MaskIntType: type, comptime size: usize) type { if (num_masks == 0) return; const start_mask_index = maskIndex(range.start); - const start_bit = @truncate(ShiftInt, range.start); + const start_bit = @as(ShiftInt, @truncate(range.start)); const end_mask_index = maskIndex(range.end); - const end_bit = @truncate(ShiftInt, range.end); + const end_bit = @as(ShiftInt, @truncate(range.end)); if (start_mask_index == end_mask_index) { var mask1 = std.math.boolMask(MaskInt, true) << start_bit; @@ -647,13 +647,13 @@ pub fn ArrayBitSet(comptime MaskIntType: type, comptime size: usize) type { } inline fn maskBit(index: usize) MaskInt { - return @as(MaskInt, 1) << @truncate(ShiftInt, index); + return @as(MaskInt, 1) << @as(ShiftInt, @truncate(index)); } inline fn maskIndex(index: usize) usize { return index >> @bitSizeOf(ShiftInt); } inline fn boolMaskBit(index: usize, value: bool) MaskInt { - return @as(MaskInt, @intFromBool(value)) << @intCast(ShiftInt, index); + return @as(MaskInt, @intFromBool(value)) << @as(ShiftInt, @intCast(index)); } }; } @@ -744,7 +744,7 @@ pub const DynamicBitSetUnmanaged = struct { // set the padding bits in the old last item to 1 if (fill and old_masks > 0) { const old_padding_bits = old_masks * @bitSizeOf(MaskInt) - old_len; - const old_mask = (~@as(MaskInt, 0)) >> @intCast(ShiftInt, old_padding_bits); + const old_mask = (~@as(MaskInt, 0)) >> @as(ShiftInt, @intCast(old_padding_bits)); self.masks[old_masks - 1] |= ~old_mask; } @@ -758,7 +758,7 @@ pub const DynamicBitSetUnmanaged = struct { // Zero out the padding bits if (new_len > 0) { const padding_bits = new_masks * @bitSizeOf(MaskInt) - new_len; - const last_item_mask = (~@as(MaskInt, 0)) >> @intCast(ShiftInt, padding_bits); + const last_item_mask = (~@as(MaskInt, 0)) >> @as(ShiftInt, @intCast(padding_bits)); self.masks[new_masks - 1] &= last_item_mask; } @@ -842,10 +842,10 @@ pub const DynamicBitSetUnmanaged = struct { if (range.start == range.end) return; const start_mask_index = maskIndex(range.start); - const start_bit = @truncate(ShiftInt, range.start); + const start_bit = @as(ShiftInt, @truncate(range.start)); const end_mask_index = maskIndex(range.end); - const end_bit = @truncate(ShiftInt, range.end); + const end_bit = @as(ShiftInt, @truncate(range.end)); if (start_mask_index == end_mask_index) { var mask1 = std.math.boolMask(MaskInt, true) << start_bit; @@ -903,7 +903,7 @@ pub const DynamicBitSetUnmanaged = struct { } const padding_bits = num_masks * @bitSizeOf(MaskInt) - bit_length; - const last_item_mask = (~@as(MaskInt, 0)) >> @intCast(ShiftInt, padding_bits); + const last_item_mask = (~@as(MaskInt, 0)) >> @as(ShiftInt, @intCast(padding_bits)); self.masks[num_masks - 1] &= last_item_mask; } @@ -916,7 +916,7 @@ pub const DynamicBitSetUnmanaged = struct { } const padding_bits = num_masks * @bitSizeOf(MaskInt) - bit_length; - const last_item_mask = (~@as(MaskInt, 0)) >> @intCast(ShiftInt, padding_bits); + const last_item_mask = (~@as(MaskInt, 0)) >> @as(ShiftInt, @intCast(padding_bits)); self.masks[num_masks - 1] &= last_item_mask; } @@ -932,7 +932,7 @@ pub const DynamicBitSetUnmanaged = struct { } const padding_bits = num_masks * @bitSizeOf(MaskInt) - bit_length; - const last_item_mask = (~@as(MaskInt, 0)) >> @intCast(ShiftInt, padding_bits); + const last_item_mask = (~@as(MaskInt, 0)) >> @as(ShiftInt, @intCast(padding_bits)); self.masks[num_masks - 1] &= last_item_mask; } @@ -947,7 +947,7 @@ pub const DynamicBitSetUnmanaged = struct { } const padding_bits = num_masks * @bitSizeOf(MaskInt) - bit_length; - const last_item_mask = (~@as(MaskInt, 0)) >> @intCast(ShiftInt, padding_bits); + const last_item_mask = (~@as(MaskInt, 0)) >> @as(ShiftInt, @intCast(padding_bits)); self.masks[num_masks - 1] &= last_item_mask; } @@ -1073,7 +1073,7 @@ pub const DynamicBitSetUnmanaged = struct { pub fn iterator(self: *const Self, comptime options: IteratorOptions) Iterator(options) { const num_masks = numMasks(self.bit_length); const padding_bits = num_masks * @bitSizeOf(MaskInt) - self.bit_length; - const last_item_mask = (~@as(MaskInt, 0)) >> @intCast(ShiftInt, padding_bits); + const last_item_mask = (~@as(MaskInt, 0)) >> @as(ShiftInt, @intCast(padding_bits)); return Iterator(options).init(self.masks[0..num_masks], last_item_mask); } @@ -1082,13 +1082,13 @@ pub const DynamicBitSetUnmanaged = struct { } fn maskBit(index: usize) MaskInt { - return @as(MaskInt, 1) << @truncate(ShiftInt, index); + return @as(MaskInt, 1) << @as(ShiftInt, @truncate(index)); } fn maskIndex(index: usize) usize { return index >> @bitSizeOf(ShiftInt); } fn boolMaskBit(index: usize, value: bool) MaskInt { - return @as(MaskInt, @intFromBool(value)) << @intCast(ShiftInt, index); + return @as(MaskInt, @intFromBool(value)) << @as(ShiftInt, @intCast(index)); } fn numMasks(bit_length: usize) usize { return (bit_length + (@bitSizeOf(MaskInt) - 1)) / @bitSizeOf(MaskInt); @@ -1436,7 +1436,7 @@ pub fn BitSetIterator(comptime MaskInt: type, comptime options: IteratorOptions) .reverse => { const leading_zeroes = @clz(self.bits_remain); const top_bit = (@bitSizeOf(MaskInt) - 1) - leading_zeroes; - const no_top_bit_mask = (@as(MaskInt, 1) << @intCast(ShiftInt, top_bit)) - 1; + const no_top_bit_mask = (@as(MaskInt, 1) << @as(ShiftInt, @intCast(top_bit))) - 1; self.bits_remain &= no_top_bit_mask; return top_bit + self.bit_offset; }, diff --git a/src/blob.zig b/src/blob.zig index 96a6c7783..0d187bfdd 100644 --- a/src/blob.zig +++ b/src/blob.zig @@ -19,7 +19,7 @@ len: usize, pub const Map = struct { const MapContext = struct { pub fn hash(_: @This(), s: u64) u32 { - return @truncate(u32, s); + return @as(u32, @truncate(s)); } pub fn eql(_: @This(), a: u64, b: u64, _: usize) bool { return a == b; diff --git a/src/boringssl.zig b/src/boringssl.zig index cdcd24577..a12c356d9 100644 --- a/src/boringssl.zig +++ b/src/boringssl.zig @@ -66,7 +66,7 @@ export fn OPENSSL_memory_alloc(size: usize) ?*anyopaque { // BoringSSL always expects memory to be zero'd export fn OPENSSL_memory_free(ptr: *anyopaque) void { const len = bun.Mimalloc.mi_usable_size(ptr); - @memset(@ptrCast([*]u8, ptr)[0..len], 0); + @memset(@as([*]u8, @ptrCast(ptr))[0..len], 0); bun.Mimalloc.mi_free(ptr); } diff --git a/src/bun.js/api/JSBundler.zig b/src/bun.js/api/JSBundler.zig index 44ceaee9d..6a821f447 100644 --- a/src/bun.js/api/JSBundler.zig +++ b/src/bun.js/api/JSBundler.zig @@ -533,7 +533,7 @@ pub const JSBundler = struct { arguments_: []const js.JSValueRef, _: js.ExceptionRef, ) js.JSValueRef { - return build(globalThis, @ptrCast([]const JSC.JSValue, arguments_)).asObjectRef(); + return build(globalThis, @as([]const JSC.JSValue, @ptrCast(arguments_))).asObjectRef(); } pub const Resolve = struct { @@ -844,7 +844,7 @@ pub const JSBundler = struct { this.value = .{ .success = .{ - .loader = @enumFromInt(options.Loader, @intCast(u8, loader_as_int.to(i32))), + .loader = @as(options.Loader, @enumFromInt(@as(u8, @intCast(loader_as_int.to(i32))))), .source_code = source_code, }, }; diff --git a/src/bun.js/api/JSTranspiler.zig b/src/bun.js/api/JSTranspiler.zig index 95b0eeaae..5c5bee171 100644 --- a/src/bun.js/api/JSTranspiler.zig +++ b/src/bun.js/api/JSTranspiler.zig @@ -85,7 +85,7 @@ const TranspilerOptions = struct { // This is going to be hard to not leak pub const TransformTask = struct { input_code: ZigString = ZigString.init(""), - protected_input_value: JSC.JSValue = @enumFromInt(JSC.JSValue, 0), + protected_input_value: JSC.JSValue = @as(JSC.JSValue, @enumFromInt(0)), output_code: ZigString = ZigString.init(""), bundler: Bundler.Bundler = undefined, log: logger.Log, @@ -221,7 +221,7 @@ pub const TransformTask = struct { finish(this.output_code, this.global, promise); if (@intFromEnum(this.protected_input_value) != 0) { - this.protected_input_value = @enumFromInt(JSC.JSValue, 0); + this.protected_input_value = @as(JSC.JSValue, @enumFromInt(0)); } this.deinit(); } @@ -612,7 +612,7 @@ fn transformOptionsFromJSC(globalObject: JSC.C.JSContextRef, temp_allocator: std var length_iter = iter; while (length_iter.next()) |value| { if (value.isString()) { - const length = @truncate(u32, value.getLength(globalThis)); + const length = @as(u32, @truncate(value.getLength(globalThis))); string_count += @as(u32, @intFromBool(length > 0)); total_name_buf_len += length; } @@ -879,7 +879,7 @@ fn getParseResult(this: *Transpiler, allocator: std.mem.Allocator, code: []const for (res.ast.import_records.slice()) |*import| { if (import.kind.isCommonJS()) { import.do_commonjs_transform_in_printer = true; - import.module_id = @truncate(u32, bun.hash(import.path.pretty)); + import.module_id = @as(u32, @truncate(bun.hash(import.path.pretty))); } } } @@ -1218,7 +1218,7 @@ fn namedImportsToJS( array.ensureStillAlive(); const path = JSC.ZigString.init(record.path.text).toValueGC(global); const kind = JSC.ZigString.init(record.kind.label()).toValueGC(global); - array.putIndex(global, @truncate(u32, i), JSC.JSValue.createObject2(global, path_label, kind_label, path, kind)); + array.putIndex(global, @as(u32, @truncate(i)), JSC.JSValue.createObject2(global, path_label, kind_label, path, kind)); } return array; diff --git a/src/bun.js/api/bun.zig b/src/bun.js/api/bun.zig index 97ad056e8..d63765b16 100644 --- a/src/bun.js/api/bun.zig +++ b/src/bun.js/api/bun.zig @@ -105,12 +105,12 @@ pub fn onImportCSS( var writer = css_imports_buf.writer(); const offset = css_imports_buf.items.len; css_imports_list[css_imports_list_tail] = .{ - .offset = @truncate(u32, offset), + .offset = @as(u32, @truncate(offset)), .length = 0, }; getPublicPath(resolve_result.path_pair.primary.text, origin, @TypeOf(writer), writer); const length = css_imports_buf.items.len - offset; - css_imports_list[css_imports_list_tail].length = @truncate(u32, length); + css_imports_list[css_imports_list_tail].length = @as(u32, @truncate(length)); css_imports_list_tail += 1; } @@ -239,7 +239,7 @@ pub fn inspect( ZigConsoleClient.format( .Debug, ctx.ptr(), - @ptrCast([*]const JSValue, arguments.ptr), + @as([*]const JSValue, @ptrCast(arguments.ptr)), arguments.len, Writer, Writer, @@ -303,7 +303,7 @@ pub fn registerMacro( return js.JSValueMakeUndefined(ctx); } // TODO: make this faster - const id = @truncate(i32, @intFromFloat(i64, js.JSValueToNumber(ctx, arguments[0], exception))); + const id = @as(i32, @truncate(@as(i64, @intFromFloat(js.JSValueToNumber(ctx, arguments[0], exception))))); if (id == -1 or id == 0) { JSError(getAllocator(ctx), "Internal error registering macros: invalid id", .{}, ctx, exception); return js.JSValueMakeUndefined(ctx); @@ -882,7 +882,7 @@ pub fn sleepSync( return ret; } - std.time.sleep(@intCast(u64, milliseconds) * std.time.ns_per_ms); + std.time.sleep(@as(u64, @intCast(milliseconds)) * std.time.ns_per_ms); return ret; } @@ -1398,21 +1398,21 @@ pub fn indexOfLine( var offset: usize = 0; if (arguments.len > 1) { - offset = @intCast( + offset = @as( usize, - @max( + @intCast(@max( arguments[1].to(u32), 0, - ), + )), ); } const bytes = buffer.byteSlice(); var current_offset = offset; - const end = @truncate(u32, bytes.len); + const end = @as(u32, @truncate(bytes.len)); while (current_offset < end) { - if (strings.indexOfNewlineOrNonASCII(bytes, @truncate(u32, current_offset))) |i| { + if (strings.indexOfNewlineOrNonASCII(bytes, @as(u32, @truncate(current_offset)))) |i| { const byte = bytes[i]; if (byte > 0x7F) { current_offset += @max(strings.wtf8ByteSequenceLength(byte), 1); @@ -1537,7 +1537,7 @@ pub const Crypto = struct { } pub fn hash(this: *EVP, engine: *BoringSSL.ENGINE, input: []const u8, output: []u8) ?u32 { - var outsize: c_uint = @min(@truncate(u16, output.len), this.size()); + var outsize: c_uint = @min(@as(u16, @truncate(output.len)), this.size()); if (BoringSSL.EVP_Digest(input.ptr, input.len, output.ptr, &outsize, this.md, engine) != 1) { return null; } @@ -1546,7 +1546,7 @@ pub const Crypto = struct { } pub fn final(this: *EVP, engine: *BoringSSL.ENGINE, output: []u8) []const u8 { - var outsize: u32 = @min(@truncate(u16, output.len), this.size()); + var outsize: u32 = @min(@as(u16, @truncate(output.len)), this.size()); if (BoringSSL.EVP_DigestFinal_ex( &this.ctx, output.ptr, @@ -1565,7 +1565,7 @@ pub const Crypto = struct { } pub fn size(this: *EVP) u16 { - return @truncate(u16, BoringSSL.EVP_MD_CTX_size(&this.ctx)); + return @as(u16, @truncate(BoringSSL.EVP_MD_CTX_size(&this.ctx))); } pub fn copy(this: *const EVP, engine: *BoringSSL.ENGINE) error{OutOfMemory}!EVP { @@ -1683,7 +1683,7 @@ pub const Crypto = struct { return null; } - algorithm.bcrypt = @intCast(u6, rounds); + algorithm.bcrypt = @as(u6, @intCast(rounds)); } return algorithm; @@ -1704,7 +1704,7 @@ pub const Crypto = struct { return null; } - argon.time_cost = @intCast(u32, time_cost); + argon.time_cost = @as(u32, @intCast(time_cost)); } if (value.getTruthy(globalObject, "memoryCost")) |memory_value| { @@ -1720,7 +1720,7 @@ pub const Crypto = struct { return null; } - argon.memory_cost = @intCast(u32, memory_cost); + argon.memory_cost = @as(u32, @intCast(memory_cost)); } return @unionInit(Algorithm.Value, @tagName(tag), argon); @@ -2444,7 +2444,7 @@ pub const Crypto = struct { this: *CryptoHasher, _: *JSC.JSGlobalObject, ) callconv(.C) JSC.JSValue { - return JSC.JSValue.jsNumber(@truncate(u16, this.evp.size())); + return JSC.JSValue.jsNumber(@as(u16, @truncate(this.evp.size()))); } pub fn getAlgorithm( @@ -3100,12 +3100,12 @@ pub fn allocUnsafe( ) js.JSValueRef { var args = JSC.Node.ArgumentsSlice.from(ctx.bunVM(), arguments); - const length = @intCast( + const length = @as( usize, - @min( + @intCast(@min( @max(1, (args.nextEat() orelse JSC.JSValue.jsNumber(@as(i32, 1))).toInt32()), std.math.maxInt(i32), - ), + )), ); var bytes = bun.default_allocator.alloc(u8, length) catch { JSC.JSError(bun.default_allocator, "OOM! Out of memory", .{}, ctx, exception); @@ -3152,11 +3152,11 @@ pub fn mmapFile( flags |= @as(u32, if (shared.toBoolean()) std.os.MAP.SHARED else std.os.MAP.PRIVATE); if (opts.get(ctx.ptr(), "size")) |value| { - map_size = @intCast(usize, value.toInt64()); + map_size = @as(usize, @intCast(value.toInt64())); } if (opts.get(ctx.ptr(), "offset")) |value| { - offset = @intCast(usize, value.toInt64()); + offset = @as(usize, @intCast(value.toInt64())); offset = std.mem.alignBackwardAnyAlign(offset, std.mem.page_size); } } else { @@ -3172,11 +3172,11 @@ pub fn mmapFile( }, }; - return JSC.C.JSObjectMakeTypedArrayWithBytesNoCopy(ctx, JSC.C.JSTypedArrayType.kJSTypedArrayTypeUint8Array, @ptrCast(?*anyopaque, map.ptr), map.len, struct { + return JSC.C.JSObjectMakeTypedArrayWithBytesNoCopy(ctx, JSC.C.JSTypedArrayType.kJSTypedArrayTypeUint8Array, @as(?*anyopaque, @ptrCast(map.ptr)), map.len, struct { pub fn x(ptr: ?*anyopaque, size: ?*anyopaque) callconv(.C) void { - _ = JSC.Node.Syscall.munmap(@ptrCast([*]align(std.mem.page_size) u8, @alignCast(std.mem.page_size, ptr))[0..@intFromPtr(size)]); + _ = JSC.Node.Syscall.munmap(@as([*]align(std.mem.page_size) u8, @ptrCast(@alignCast(ptr)))[0..@intFromPtr(size)]); } - }.x, @ptrFromInt(?*anyopaque, map.len), exception); + }.x, @as(?*anyopaque, @ptrFromInt(map.len)), exception); } pub fn getTranspilerConstructor( @@ -3327,17 +3327,17 @@ pub const Hash = struct { } } if (comptime std.meta.trait.isNumber(@TypeOf(function_args[0]))) { - function_args[0] = @intCast(@TypeOf(function_args[0]), seed); + function_args[0] = @as(@TypeOf(function_args[0]), @intCast(seed)); function_args[1] = input; } else { - function_args[1] = @intCast(@TypeOf(function_args[1]), seed); + function_args[1] = @as(@TypeOf(function_args[1]), @intCast(seed)); function_args[0] = input; } const value = @call(.auto, Function, function_args); if (@TypeOf(value) == u32) { - return JSC.JSValue.jsNumber(@bitCast(i32, value)).asObjectRef(); + return JSC.JSValue.jsNumber(@as(i32, @bitCast(value))).asObjectRef(); } return JSC.JSValue.jsNumber(value).asObjectRef(); } @@ -3443,7 +3443,7 @@ pub const Unsafe = struct { switch (array_buffer.typed_array_type) { .Uint16Array, .Int16Array => { var zig_str = ZigString.init(""); - zig_str._unsafe_ptr_do_not_use = @ptrCast([*]const u8, @alignCast(@alignOf([*]align(1) const u16), array_buffer.ptr)); + zig_str._unsafe_ptr_do_not_use = @as([*]const u8, @ptrCast(@alignCast(array_buffer.ptr))); zig_str.len = array_buffer.len; zig_str.markUTF16(); // the deinitializer for string causes segfaults @@ -3766,7 +3766,7 @@ pub const Timer = struct { var arg = args.ptr; var i: u32 = 0; while (i < count) : (i += 1) { - arg[0] = JSC.JSObject.getIndex(arguments, globalThis, @truncate(u32, i)); + arg[0] = JSC.JSObject.getIndex(arguments, globalThis, @as(u32, @truncate(i))); arg += 1; } } @@ -4365,8 +4365,8 @@ pub const FFI = struct { _: JSValue, arguments: []const JSValue, ) JSValue { - const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @intCast(usize, arguments[1].to(i32)) else @as(usize, 0); - const value = @ptrFromInt(*align(1) u8, addr).*; + const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @as(usize, @intCast(arguments[1].to(i32))) else @as(usize, 0); + const value = @as(*align(1) u8, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn @"u16"( @@ -4374,8 +4374,8 @@ pub const FFI = struct { _: JSValue, arguments: []const JSValue, ) JSValue { - const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @intCast(usize, arguments[1].to(i32)) else @as(usize, 0); - const value = @ptrFromInt(*align(1) u16, addr).*; + const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @as(usize, @intCast(arguments[1].to(i32))) else @as(usize, 0); + const value = @as(*align(1) u16, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn @"u32"( @@ -4383,8 +4383,8 @@ pub const FFI = struct { _: JSValue, arguments: []const JSValue, ) JSValue { - const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @intCast(usize, arguments[1].to(i32)) else @as(usize, 0); - const value = @ptrFromInt(*align(1) u32, addr).*; + const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @as(usize, @intCast(arguments[1].to(i32))) else @as(usize, 0); + const value = @as(*align(1) u32, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn ptr( @@ -4392,8 +4392,8 @@ pub const FFI = struct { _: JSValue, arguments: []const JSValue, ) JSValue { - const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @intCast(usize, arguments[1].to(i32)) else @as(usize, 0); - const value = @ptrFromInt(*align(1) u64, addr).*; + const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @as(usize, @intCast(arguments[1].to(i32))) else @as(usize, 0); + const value = @as(*align(1) u64, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn @"i8"( @@ -4401,8 +4401,8 @@ pub const FFI = struct { _: JSValue, arguments: []const JSValue, ) JSValue { - const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @intCast(usize, arguments[1].to(i32)) else @as(usize, 0); - const value = @ptrFromInt(*align(1) i8, addr).*; + const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @as(usize, @intCast(arguments[1].to(i32))) else @as(usize, 0); + const value = @as(*align(1) i8, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn @"i16"( @@ -4410,8 +4410,8 @@ pub const FFI = struct { _: JSValue, arguments: []const JSValue, ) JSValue { - const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @intCast(usize, arguments[1].to(i32)) else @as(usize, 0); - const value = @ptrFromInt(*align(1) i16, addr).*; + const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @as(usize, @intCast(arguments[1].to(i32))) else @as(usize, 0); + const value = @as(*align(1) i16, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn @"i32"( @@ -4419,8 +4419,8 @@ pub const FFI = struct { _: JSValue, arguments: []const JSValue, ) JSValue { - const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @intCast(usize, arguments[1].to(i32)) else @as(usize, 0); - const value = @ptrFromInt(*align(1) i32, addr).*; + const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @as(usize, @intCast(arguments[1].to(i32))) else @as(usize, 0); + const value = @as(*align(1) i32, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn intptr( @@ -4428,8 +4428,8 @@ pub const FFI = struct { _: JSValue, arguments: []const JSValue, ) JSValue { - const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @intCast(usize, arguments[1].to(i32)) else @as(usize, 0); - const value = @ptrFromInt(*align(1) i64, addr).*; + const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @as(usize, @intCast(arguments[1].to(i32))) else @as(usize, 0); + const value = @as(*align(1) i64, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } @@ -4438,8 +4438,8 @@ pub const FFI = struct { _: JSValue, arguments: []const JSValue, ) JSValue { - const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @intCast(usize, arguments[1].to(i32)) else @as(usize, 0); - const value = @ptrFromInt(*align(1) f32, addr).*; + const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @as(usize, @intCast(arguments[1].to(i32))) else @as(usize, 0); + const value = @as(*align(1) f32, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } @@ -4448,8 +4448,8 @@ pub const FFI = struct { _: JSValue, arguments: []const JSValue, ) JSValue { - const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @intCast(usize, arguments[1].to(i32)) else @as(usize, 0); - const value = @ptrFromInt(*align(1) f64, addr).*; + const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @as(usize, @intCast(arguments[1].to(i32))) else @as(usize, 0); + const value = @as(*align(1) f64, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } @@ -4458,8 +4458,8 @@ pub const FFI = struct { _: JSValue, arguments: []const JSValue, ) JSValue { - const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @intCast(usize, arguments[1].to(i32)) else @as(usize, 0); - const value = @ptrFromInt(*align(1) i64, addr).*; + const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @as(usize, @intCast(arguments[1].to(i32))) else @as(usize, 0); + const value = @as(*align(1) i64, @ptrFromInt(addr)).*; return JSValue.fromInt64NoTruncate(global, value); } @@ -4468,8 +4468,8 @@ pub const FFI = struct { _: JSValue, arguments: []const JSValue, ) JSValue { - const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @intCast(usize, arguments[1].to(i32)) else @as(usize, 0); - const value = @ptrFromInt(*align(1) u64, addr).*; + const addr = arguments[0].asPtrAddress() + if (arguments.len > 1) @as(usize, @intCast(arguments[1].to(i32))) else @as(usize, 0); + const value = @as(*align(1) u64, @ptrFromInt(addr)).*; return JSValue.fromUInt64NoTruncate(global, value); } @@ -4479,8 +4479,8 @@ pub const FFI = struct { raw_addr: i64, offset: i32, ) callconv(.C) JSValue { - const addr = @intCast(usize, raw_addr) + @intCast(usize, offset); - const value = @ptrFromInt(*align(1) u8, addr).*; + const addr = @as(usize, @intCast(raw_addr)) + @as(usize, @intCast(offset)); + const value = @as(*align(1) u8, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn u16WithoutTypeChecks( @@ -4489,8 +4489,8 @@ pub const FFI = struct { raw_addr: i64, offset: i32, ) callconv(.C) JSValue { - const addr = @intCast(usize, raw_addr) + @intCast(usize, offset); - const value = @ptrFromInt(*align(1) u16, addr).*; + const addr = @as(usize, @intCast(raw_addr)) + @as(usize, @intCast(offset)); + const value = @as(*align(1) u16, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn u32WithoutTypeChecks( @@ -4499,8 +4499,8 @@ pub const FFI = struct { raw_addr: i64, offset: i32, ) callconv(.C) JSValue { - const addr = @intCast(usize, raw_addr) + @intCast(usize, offset); - const value = @ptrFromInt(*align(1) u32, addr).*; + const addr = @as(usize, @intCast(raw_addr)) + @as(usize, @intCast(offset)); + const value = @as(*align(1) u32, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn ptrWithoutTypeChecks( @@ -4509,8 +4509,8 @@ pub const FFI = struct { raw_addr: i64, offset: i32, ) callconv(.C) JSValue { - const addr = @intCast(usize, raw_addr) + @intCast(usize, offset); - const value = @ptrFromInt(*align(1) u64, addr).*; + const addr = @as(usize, @intCast(raw_addr)) + @as(usize, @intCast(offset)); + const value = @as(*align(1) u64, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn i8WithoutTypeChecks( @@ -4519,8 +4519,8 @@ pub const FFI = struct { raw_addr: i64, offset: i32, ) callconv(.C) JSValue { - const addr = @intCast(usize, raw_addr) + @intCast(usize, offset); - const value = @ptrFromInt(*align(1) i8, addr).*; + const addr = @as(usize, @intCast(raw_addr)) + @as(usize, @intCast(offset)); + const value = @as(*align(1) i8, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn i16WithoutTypeChecks( @@ -4529,8 +4529,8 @@ pub const FFI = struct { raw_addr: i64, offset: i32, ) callconv(.C) JSValue { - const addr = @intCast(usize, raw_addr) + @intCast(usize, offset); - const value = @ptrFromInt(*align(1) i16, addr).*; + const addr = @as(usize, @intCast(raw_addr)) + @as(usize, @intCast(offset)); + const value = @as(*align(1) i16, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn i32WithoutTypeChecks( @@ -4539,8 +4539,8 @@ pub const FFI = struct { raw_addr: i64, offset: i32, ) callconv(.C) JSValue { - const addr = @intCast(usize, raw_addr) + @intCast(usize, offset); - const value = @ptrFromInt(*align(1) i32, addr).*; + const addr = @as(usize, @intCast(raw_addr)) + @as(usize, @intCast(offset)); + const value = @as(*align(1) i32, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } pub fn intptrWithoutTypeChecks( @@ -4549,8 +4549,8 @@ pub const FFI = struct { raw_addr: i64, offset: i32, ) callconv(.C) JSValue { - const addr = @intCast(usize, raw_addr) + @intCast(usize, offset); - const value = @ptrFromInt(*align(1) i64, addr).*; + const addr = @as(usize, @intCast(raw_addr)) + @as(usize, @intCast(offset)); + const value = @as(*align(1) i64, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } @@ -4560,8 +4560,8 @@ pub const FFI = struct { raw_addr: i64, offset: i32, ) callconv(.C) JSValue { - const addr = @intCast(usize, raw_addr) + @intCast(usize, offset); - const value = @ptrFromInt(*align(1) f32, addr).*; + const addr = @as(usize, @intCast(raw_addr)) + @as(usize, @intCast(offset)); + const value = @as(*align(1) f32, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } @@ -4571,8 +4571,8 @@ pub const FFI = struct { raw_addr: i64, offset: i32, ) callconv(.C) JSValue { - const addr = @intCast(usize, raw_addr) + @intCast(usize, offset); - const value = @ptrFromInt(*align(1) f64, addr).*; + const addr = @as(usize, @intCast(raw_addr)) + @as(usize, @intCast(offset)); + const value = @as(*align(1) f64, @ptrFromInt(addr)).*; return JSValue.jsNumber(value); } @@ -4582,8 +4582,8 @@ pub const FFI = struct { raw_addr: i64, offset: i32, ) callconv(.C) JSValue { - const addr = @intCast(usize, raw_addr) + @intCast(usize, offset); - const value = @ptrFromInt(*align(1) u64, addr).*; + const addr = @as(usize, @intCast(raw_addr)) + @as(usize, @intCast(offset)); + const value = @as(*align(1) u64, @ptrFromInt(addr)).*; return JSValue.fromUInt64NoTruncate(global, value); } @@ -4593,8 +4593,8 @@ pub const FFI = struct { raw_addr: i64, offset: i32, ) callconv(.C) JSValue { - const addr = @intCast(usize, raw_addr) + @intCast(usize, offset); - const value = @ptrFromInt(*align(1) i64, addr).*; + const addr = @as(usize, @intCast(raw_addr)) + @as(usize, @intCast(offset)); + const value = @as(*align(1) i64, @ptrFromInt(addr)).*; return JSValue.fromInt64NoTruncate(global, value); } @@ -4671,9 +4671,9 @@ pub const FFI = struct { const bytei64 = off.toInt64(); if (bytei64 < 0) { - addr -|= @intCast(usize, bytei64 * -1); + addr -|= @as(usize, @intCast(bytei64 * -1)); } else { - addr += @intCast(usize, bytei64); + addr += @as(usize, @intCast(bytei64)); } if (addr > @intFromPtr(array_buffer.ptr) + @as(usize, array_buffer.byte_len)) { @@ -4719,15 +4719,15 @@ pub const FFI = struct { // return .{ .err = JSC.toInvalidArguments("ptr must be a finite number.", .{}, globalThis) }; // } - var addr = @bitCast(usize, num); + var addr = @as(usize, @bitCast(num)); if (byteOffset) |byte_off| { if (byte_off.isNumber()) { const off = byte_off.toInt64(); if (off < 0) { - addr -|= @intCast(usize, off * -1); + addr -|= @as(usize, @intCast(off * -1)); } else { - addr +|= @intCast(usize, off); + addr +|= @as(usize, @intCast(off)); } if (addr == 0) { @@ -4767,12 +4767,12 @@ pub const FFI = struct { return .{ .err = JSC.toInvalidArguments("length exceeds max addressable memory. This usually means a bug in your code.", .{}, globalThis) }; } - const length = @intCast(usize, length_i); - return .{ .slice = @ptrFromInt([*]u8, addr)[0..length] }; + const length = @as(usize, @intCast(length_i)); + return .{ .slice = @as([*]u8, @ptrFromInt(addr))[0..length] }; } } - return .{ .slice = bun.span(@ptrFromInt([*:0]u8, addr)) }; + return .{ .slice = bun.span(@as([*:0]u8, @ptrFromInt(addr))) }; } fn getCPtr(value: JSValue) ?usize { @@ -4781,7 +4781,7 @@ pub const FFI = struct { const addr = value.asPtrAddress(); if (addr > 0) return addr; } else if (value.isBigInt()) { - const addr = @bitCast(u64, value.toUInt64NoTruncate()); + const addr = @as(u64, @bitCast(value.toUInt64NoTruncate())); if (addr > 0) { return addr; } @@ -4807,11 +4807,11 @@ pub const FFI = struct { var ctx: ?*anyopaque = null; if (finalizationCallback) |callback_value| { if (getCPtr(callback_value)) |callback_ptr| { - callback = @ptrFromInt(JSC.C.JSTypedArrayBytesDeallocator, callback_ptr); + callback = @as(JSC.C.JSTypedArrayBytesDeallocator, @ptrFromInt(callback_ptr)); if (finalizationCtxOrPtr) |ctx_value| { if (getCPtr(ctx_value)) |ctx_ptr| { - ctx = @ptrFromInt(*anyopaque, ctx_ptr); + ctx = @as(*anyopaque, @ptrFromInt(ctx_ptr)); } else if (!ctx_value.isUndefinedOrNull()) { return JSC.toInvalidArguments("Expected user data to be a C pointer (number or BigInt)", .{}, globalThis); } @@ -4821,7 +4821,7 @@ pub const FFI = struct { } } else if (finalizationCtxOrPtr) |callback_value| { if (getCPtr(callback_value)) |callback_ptr| { - callback = @ptrFromInt(JSC.C.JSTypedArrayBytesDeallocator, callback_ptr); + callback = @as(JSC.C.JSTypedArrayBytesDeallocator, @ptrFromInt(callback_ptr)); } else if (!callback_value.isEmptyOrUndefinedOrNull()) { return JSC.toInvalidArguments("Expected callback to be a C pointer (number or BigInt)", .{}, globalThis); } @@ -4849,11 +4849,11 @@ pub const FFI = struct { var ctx: ?*anyopaque = null; if (finalizationCallback) |callback_value| { if (getCPtr(callback_value)) |callback_ptr| { - callback = @ptrFromInt(JSC.C.JSTypedArrayBytesDeallocator, callback_ptr); + callback = @as(JSC.C.JSTypedArrayBytesDeallocator, @ptrFromInt(callback_ptr)); if (finalizationCtxOrPtr) |ctx_value| { if (getCPtr(ctx_value)) |ctx_ptr| { - ctx = @ptrFromInt(*anyopaque, ctx_ptr); + ctx = @as(*anyopaque, @ptrFromInt(ctx_ptr)); } else if (!ctx_value.isEmptyOrUndefinedOrNull()) { return JSC.toInvalidArguments("Expected user data to be a C pointer (number or BigInt)", .{}, globalThis); } @@ -4863,7 +4863,7 @@ pub const FFI = struct { } } else if (finalizationCtxOrPtr) |callback_value| { if (getCPtr(callback_value)) |callback_ptr| { - callback = @ptrFromInt(JSC.C.JSTypedArrayBytesDeallocator, callback_ptr); + callback = @as(JSC.C.JSTypedArrayBytesDeallocator, @ptrFromInt(callback_ptr)); } else if (!callback_value.isEmptyOrUndefinedOrNull()) { return JSC.toInvalidArguments("Expected callback to be a C pointer (number or BigInt)", .{}, globalThis); } diff --git a/src/bun.js/api/bun/dns_resolver.zig b/src/bun.js/api/bun/dns_resolver.zig index d0d4f5b7b..4d961b54c 100644 --- a/src/bun.js/api/bun/dns_resolver.zig +++ b/src/bun.js/api/bun/dns_resolver.zig @@ -176,7 +176,7 @@ pub fn addressToString( switch (address.any.family) { std.os.AF.INET => { var self = address.in; - const bytes = @ptrCast(*const [4]u8, &self.sa.addr); + const bytes = @as(*const [4]u8, @ptrCast(&self.sa.addr)); break :brk std.fmt.allocPrint(allocator, "{}.{}.{}.{}", .{ bytes[0], bytes[1], @@ -554,7 +554,7 @@ pub const GetAddrInfo = struct { .list => |list| brk: { var stack = std.heap.stackFallback(2048, globalThis.allocator()); var arena = @import("root").bun.ArenaAllocator.init(stack.get()); - const array = JSC.JSValue.createEmptyArray(globalThis, @truncate(u32, list.items.len)); + const array = JSC.JSValue.createEmptyArray(globalThis, @as(u32, @truncate(list.items.len))); var i: u32 = 0; const items: []const Result = list.items; for (items) |item| { @@ -594,7 +594,7 @@ pub const GetAddrInfo = struct { pub fn fromAddrInfo(addrinfo: *std.c.addrinfo) ?Result { return Result{ - .address = std.net.Address.initPosix(@alignCast(4, addrinfo.addr orelse return null)), + .address = std.net.Address.initPosix(@alignCast(addrinfo.addr orelse return null)), // no TTL in POSIX getaddrinfo() .ttl = 0, }; @@ -650,8 +650,8 @@ pub fn ResolveInfoRequest(comptime cares_type: type, comptime type_name: []const request.cache = @This().CacheConfig{ .pending_cache = true, .entry_cache = false, - .pos_in_pending = @truncate(u5, @field(resolver.?, cache_field).indexOf(cache.new).?), - .name_len = @truncate(u9, name.len), + .pos_in_pending = @as(u5, @truncate(@field(resolver.?, cache_field).indexOf(cache.new).?)), + .name_len = @as(u9, @truncate(name.len)), }; cache.new.lookup = request; } @@ -682,7 +682,7 @@ pub fn ResolveInfoRequest(comptime cares_type: type, comptime type_name: []const const hash = hasher.final(); return PendingCacheKey{ .hash = hash, - .len = @truncate(u16, name.len), + .len = @as(u16, @truncate(name.len)), .lookup = undefined, }; } @@ -751,8 +751,8 @@ pub const GetAddrInfoRequest = struct { request.cache = CacheConfig{ .pending_cache = true, .entry_cache = false, - .pos_in_pending = @truncate(u5, @field(resolver.?, cache_field).indexOf(cache.new).?), - .name_len = @truncate(u9, query.name.len), + .pos_in_pending = @as(u5, @truncate(@field(resolver.?, cache_field).indexOf(cache.new).?)), + .name_len = @as(u9, @truncate(query.name.len)), }; cache.new.lookup = request; } @@ -782,7 +782,7 @@ pub const GetAddrInfoRequest = struct { pub fn init(query: GetAddrInfo) PendingCacheKey { return PendingCacheKey{ .hash = query.hash(), - .len = @truncate(u16, query.name.len), + .len = @as(u16, @truncate(query.name.len)), .lookup = undefined, }; } @@ -793,7 +793,7 @@ pub const GetAddrInfoRequest = struct { addr_info: ?*std.c.addrinfo, arg: ?*anyopaque, ) callconv(.C) void { - const this = @ptrFromInt(*GetAddrInfoRequest, @intFromPtr(arg)); + const this = @as(*GetAddrInfoRequest, @ptrFromInt(@intFromPtr(arg))); log("getAddrInfoAsyncCallback: status={d}", .{status}); if (this.backend == .libinfo) { @@ -1394,13 +1394,13 @@ pub const DNSResolver = struct { poll: *JSC.FilePoll, ) void { var channel = this.channel orelse { - _ = this.polls.orderedRemove(@intCast(i32, poll.fd)); + _ = this.polls.orderedRemove(@as(i32, @intCast(poll.fd))); poll.deinit(); return; }; channel.process( - @intCast(i32, poll.fd), + @as(i32, @intCast(poll.fd)), poll.isReadable(), poll.isWritable(), ); diff --git a/src/bun.js/api/bun/socket.zig b/src/bun.js/api/bun/socket.zig index 0a18dd015..2f35a48a5 100644 --- a/src/bun.js/api/bun/socket.zig +++ b/src/bun.js/api/bun/socket.zig @@ -389,7 +389,7 @@ pub const SocketConfig = struct { if (parsed_url.getPort()) |port_num| { port_value = JSValue.jsNumber(port_num); hostname_or_unix.ptr = parsed_url.hostname.ptr; - hostname_or_unix.len = @truncate(u32, parsed_url.hostname.len); + hostname_or_unix.len = @as(u32, @truncate(parsed_url.hostname.len)); } } @@ -496,10 +496,10 @@ pub const Listener = struct { pub fn deinit(this: UnixOrHost) void { switch (this) { .unix => |u| { - bun.default_allocator.destroy(@ptrFromInt([*]u8, @intFromPtr(u.ptr))); + bun.default_allocator.destroy(@as([*]u8, @ptrFromInt(@intFromPtr(u.ptr)))); }, .host => |h| { - bun.default_allocator.destroy(@ptrFromInt([*]u8, @intFromPtr(h.host.ptr))); + bun.default_allocator.destroy(@as([*]u8, @ptrFromInt(@intFromPtr(h.host.ptr)))); }, } } @@ -657,7 +657,7 @@ pub const Listener = struct { ); // should return the assigned port if (socket) |s| { - connection.host.port = @intCast(u16, s.getLocalPort(ssl_enabled)); + connection.host.port = @as(u16, @intCast(s.getLocalPort(ssl_enabled))); } break :brk socket; }, @@ -1037,7 +1037,7 @@ fn selectALPNCallback( return BoringSSL.SSL_TLSEXT_ERR_NOACK; } - const status = BoringSSL.SSL_select_next_proto(bun.cast([*c][*c]u8, out), outlen, protos.ptr, @intCast(c_uint, protos.len), in, inlen); + const status = BoringSSL.SSL_select_next_proto(bun.cast([*c][*c]u8, out), outlen, protos.ptr, @as(c_uint, @intCast(protos.len)), in, inlen); // Previous versions of Node.js returned SSL_TLSEXT_ERR_NOACK if no protocol // match was found. This would neither cause a fatal alert nor would it result @@ -1250,6 +1250,7 @@ fn NewSocket(comptime ssl: bool) type { // Add SNI support for TLS (mongodb and others requires this) if (comptime ssl) { var ssl_ptr = this.socket.ssl(); + if (!ssl_ptr.isInitFinished()) { if (this.server_name) |server_name| { const host = normalizeHost(server_name); @@ -1272,7 +1273,7 @@ fn NewSocket(comptime ssl: bool) type { if (this.handlers.is_server) { BoringSSL.SSL_CTX_set_alpn_select_cb(BoringSSL.SSL_get_SSL_CTX(ssl_ptr), selectALPNCallback, bun.cast(*anyopaque, this)); } else { - _ = BoringSSL.SSL_set_alpn_protos(ssl_ptr, protos.ptr, @intCast(c_uint, protos.len)); + _ = BoringSSL.SSL_set_alpn_protos(ssl_ptr, protos.ptr, @as(c_uint, @intCast(protos.len))); } } } @@ -1557,7 +1558,7 @@ fn NewSocket(comptime ssl: bool) type { return .zero; } - this.socket.timeout(@intCast(c_uint, t)); + this.socket.timeout(@as(c_uint, @intCast(t))); return JSValue.jsUndefined(); } @@ -1640,7 +1641,7 @@ fn NewSocket(comptime ssl: bool) type { var text_buf: [512]u8 = undefined; this.socket.remoteAddress(&buf, &length); - const address_bytes = buf[0..@intCast(usize, length)]; + const address_bytes = buf[0..@as(usize, @intCast(length))]; const address: std.net.Address = switch (length) { 4 => std.net.Address.initIp4(address_bytes[0..4].*, 0), 16 => std.net.Address.initIp6(address_bytes[0..16].*, 0, 0, 0), @@ -1972,7 +1973,7 @@ fn NewSocket(comptime ssl: bool) type { var ticket: [*c]const u8 = undefined; var length: usize = 0; //The pointer is only valid while the connection is in use so we need to copy it - BoringSSL.SSL_SESSION_get0_ticket(session, @ptrCast([*c][*c]const u8, &ticket), &length); + BoringSSL.SSL_SESSION_get0_ticket(session, @as([*c][*c]const u8, @ptrCast(&ticket)), &length); if (ticket == null or length == 0) { return JSValue.jsUndefined(); @@ -2010,8 +2011,8 @@ fn NewSocket(comptime ssl: bool) type { if (JSC.Node.StringOrBuffer.fromJS(globalObject, arena.allocator(), session_arg, exception)) |sb| { var session_slice = sb.slice(); var ssl_ptr = this.socket.ssl(); - var tmp = @ptrCast([*c]const u8, session_slice.ptr); - const session = BoringSSL.d2i_SSL_SESSION(null, &tmp, @intCast(c_long, session_slice.len)) orelse return JSValue.jsUndefined(); + var tmp = @as([*c]const u8, @ptrCast(session_slice.ptr)); + const session = BoringSSL.d2i_SSL_SESSION(null, &tmp, @as(c_long, @intCast(session_slice.len))) orelse return JSValue.jsUndefined(); if (BoringSSL.SSL_set_session(ssl_ptr, session) != 1) { globalObject.throwValue(getSSLException(globalObject, "SSL_set_session error")); return .zero; @@ -2046,9 +2047,9 @@ fn NewSocket(comptime ssl: bool) type { return JSValue.jsUndefined(); } - const buffer_size = @intCast(usize, size); + const buffer_size = @as(usize, @intCast(size)); var buffer = JSValue.createBufferFromLength(globalObject, buffer_size); - var buffer_ptr = @ptrCast([*c]u8, buffer.asArrayBuffer(globalObject).?.ptr); + var buffer_ptr = @as([*c]u8, @ptrCast(buffer.asArrayBuffer(globalObject).?.ptr)); const result_size = BoringSSL.i2d_SSL_SESSION(session, &buffer_ptr); std.debug.assert(result_size == size); @@ -2071,6 +2072,7 @@ fn NewSocket(comptime ssl: bool) type { var alpn_proto_len: u32 = 0; var ssl_ptr = this.socket.ssl(); + BoringSSL.SSL_get0_alpn_selected(ssl_ptr, &alpn_proto, &alpn_proto_len); if (alpn_proto == null or alpn_proto_len == 0) { return JSValue.jsBoolean(false); @@ -2128,7 +2130,7 @@ fn NewSocket(comptime ssl: bool) type { defer label.deinit(); const label_slice = label.slice(); - const ssl_ptr = @ptrCast(*BoringSSL.SSL, this.socket.getNativeHandle()); + const ssl_ptr = @as(*BoringSSL.SSL, @ptrCast(this.socket.getNativeHandle())); if (args.len > 2) { const context_arg = args.ptr[2]; @@ -2141,11 +2143,11 @@ fn NewSocket(comptime ssl: bool) type { if (JSC.Node.StringOrBuffer.fromJS(globalObject, arena.allocator(), context_arg, exception)) |sb| { const context_slice = sb.slice(); - const buffer_size = @intCast(usize, length); + const buffer_size = @as(usize, @intCast(length)); var buffer = JSValue.createBufferFromLength(globalObject, buffer_size); - var buffer_ptr = @ptrCast([*c]u8, buffer.asArrayBuffer(globalObject).?.ptr); + var buffer_ptr = @as([*c]u8, @ptrCast(buffer.asArrayBuffer(globalObject).?.ptr)); - const result = BoringSSL.SSL_export_keying_material(ssl_ptr, buffer_ptr, buffer_size, @ptrCast([*c]const u8, label_slice.ptr), label_slice.len, @ptrCast([*c]const u8, context_slice.ptr), context_slice.len, 1); + const result = BoringSSL.SSL_export_keying_material(ssl_ptr, buffer_ptr, buffer_size, @as([*c]const u8, @ptrCast(label_slice.ptr)), label_slice.len, @as([*c]const u8, @ptrCast(context_slice.ptr)), context_slice.len, 1); if (result != 1) { globalObject.throwValue(getSSLException(globalObject, "Failed to export keying material")); return .zero; @@ -2159,11 +2161,11 @@ fn NewSocket(comptime ssl: bool) type { return .zero; } } else { - const buffer_size = @intCast(usize, length); + const buffer_size = @as(usize, @intCast(length)); var buffer = JSValue.createBufferFromLength(globalObject, buffer_size); - var buffer_ptr = @ptrCast([*c]u8, buffer.asArrayBuffer(globalObject).?.ptr); + var buffer_ptr = @as([*c]u8, @ptrCast(buffer.asArrayBuffer(globalObject).?.ptr)); - const result = BoringSSL.SSL_export_keying_material(ssl_ptr, buffer_ptr, buffer_size, @ptrCast([*c]const u8, label_slice.ptr), label_slice.len, null, 0, 0); + const result = BoringSSL.SSL_export_keying_material(ssl_ptr, buffer_ptr, buffer_size, @as([*c]const u8, @ptrCast(label_slice.ptr)), label_slice.len, null, 0, 0); if (result != 1) { globalObject.throwValue(getSSLException(globalObject, "Failed to export keying material")); return .zero; @@ -2191,7 +2193,7 @@ fn NewSocket(comptime ssl: bool) type { } var result = JSValue.createEmptyObject(globalObject, 3); - const ssl_ptr = @ptrCast(*BoringSSL.SSL, this.socket.getNativeHandle()); + const ssl_ptr = @as(*BoringSSL.SSL, @ptrCast(this.socket.getNativeHandle())); // TODO: investigate better option or compatible way to get the key // this implementation follows nodejs but for BoringSSL SSL_get_server_tmp_key will always return 0 // wich will result in a empty object @@ -2255,7 +2257,7 @@ fn NewSocket(comptime ssl: bool) type { } var result = JSValue.createEmptyObject(globalObject, 3); - const ssl_ptr = @ptrCast(*BoringSSL.SSL, this.socket.getNativeHandle()); + const ssl_ptr = @as(*BoringSSL.SSL, @ptrCast(this.socket.getNativeHandle())); const cipher = BoringSSL.SSL_get_current_cipher(ssl_ptr); if (cipher == null) { result.put(globalObject, ZigString.static("name"), JSValue.jsNull()); @@ -2301,19 +2303,19 @@ fn NewSocket(comptime ssl: bool) type { return JSValue.jsUndefined(); } - const ssl_ptr = @ptrCast(*BoringSSL.SSL, this.socket.getNativeHandle()); + const ssl_ptr = @as(*BoringSSL.SSL, @ptrCast(this.socket.getNativeHandle())); // We cannot just pass nullptr to SSL_get_peer_finished() // because it would further be propagated to memcpy(), // where the standard requirements as described in ISO/IEC 9899:2011 // sections 7.21.2.1, 7.21.1.2, and 7.1.4, would be violated. // Thus, we use a dummy byte. var dummy: [1]u8 = undefined; - const size = BoringSSL.SSL_get_peer_finished(ssl_ptr, @ptrCast(*anyopaque, &dummy), @sizeOf(@TypeOf(dummy))); + const size = BoringSSL.SSL_get_peer_finished(ssl_ptr, @as(*anyopaque, @ptrCast(&dummy)), @sizeOf(@TypeOf(dummy))); if (size == 0) return JSValue.jsUndefined(); - const buffer_size = @intCast(usize, size); + const buffer_size = @as(usize, @intCast(size)); var buffer = JSValue.createBufferFromLength(globalObject, buffer_size); - var buffer_ptr = @ptrCast(*anyopaque, buffer.asArrayBuffer(globalObject).?.ptr); + var buffer_ptr = @as(*anyopaque, @ptrCast(buffer.asArrayBuffer(globalObject).?.ptr)); const result_size = BoringSSL.SSL_get_peer_finished(ssl_ptr, buffer_ptr, buffer_size); std.debug.assert(result_size == size); @@ -2333,19 +2335,19 @@ fn NewSocket(comptime ssl: bool) type { return JSValue.jsUndefined(); } - const ssl_ptr = @ptrCast(*BoringSSL.SSL, this.socket.getNativeHandle()); + const ssl_ptr = @as(*BoringSSL.SSL, @ptrCast(this.socket.getNativeHandle())); // We cannot just pass nullptr to SSL_get_finished() // because it would further be propagated to memcpy(), // where the standard requirements as described in ISO/IEC 9899:2011 // sections 7.21.2.1, 7.21.1.2, and 7.1.4, would be violated. // Thus, we use a dummy byte. var dummy: [1]u8 = undefined; - const size = BoringSSL.SSL_get_finished(ssl_ptr, @ptrCast(*anyopaque, &dummy), @sizeOf(@TypeOf(dummy))); + const size = BoringSSL.SSL_get_finished(ssl_ptr, @as(*anyopaque, @ptrCast(&dummy)), @sizeOf(@TypeOf(dummy))); if (size == 0) return JSValue.jsUndefined(); - const buffer_size = @intCast(usize, size); + const buffer_size = @as(usize, @intCast(size)); var buffer = JSValue.createBufferFromLength(globalObject, buffer_size); - var buffer_ptr = @ptrCast(*anyopaque, buffer.asArrayBuffer(globalObject).?.ptr); + var buffer_ptr = @as(*anyopaque, @ptrCast(buffer.asArrayBuffer(globalObject).?.ptr)); const result_size = BoringSSL.SSL_get_finished(ssl_ptr, buffer_ptr, buffer_size); std.debug.assert(result_size == size); @@ -2365,18 +2367,18 @@ fn NewSocket(comptime ssl: bool) type { if (this.detached) { return JSValue.jsNull(); } - const ssl_ptr = @ptrCast(*BoringSSL.SSL, this.socket.getNativeHandle()); + const ssl_ptr = @as(*BoringSSL.SSL, @ptrCast(this.socket.getNativeHandle())); const nsig = BoringSSL.SSL_get_shared_sigalgs(ssl_ptr, 0, null, null, null, null, null); - const array = JSC.JSValue.createEmptyArray(globalObject, @intCast(usize, nsig)); + const array = JSC.JSValue.createEmptyArray(globalObject, @as(usize, @intCast(nsig))); - for (0..@intCast(usize, nsig)) |i| { + for (0..@as(usize, @intCast(nsig))) |i| { var hash_nid: c_int = 0; var sign_nid: c_int = 0; var sig_with_md: []const u8 = ""; - _ = BoringSSL.SSL_get_shared_sigalgs(ssl_ptr, @intCast(c_int, i), &sign_nid, &hash_nid, null, null, null); + _ = BoringSSL.SSL_get_shared_sigalgs(ssl_ptr, @as(c_int, @intCast(i)), &sign_nid, &hash_nid, null, null, null); switch (sign_nid) { BoringSSL.EVP_PKEY_RSA => { sig_with_md = "RSA"; @@ -2430,14 +2432,14 @@ fn NewSocket(comptime ssl: bool) type { bun.copy(u8, buffer, sig_with_md); buffer[sig_with_md.len] = '+'; bun.copy(u8, buffer[sig_with_md.len + 1 ..], hash_slice); - array.putIndex(globalObject, @intCast(u32, i), JSC.ZigString.fromUTF8(buffer).toValueGC(globalObject)); + array.putIndex(globalObject, @as(u32, @intCast(i)), JSC.ZigString.fromUTF8(buffer).toValueGC(globalObject)); } else { const buffer = bun.default_allocator.alloc(u8, sig_with_md.len + 6) catch unreachable; defer bun.default_allocator.free(buffer); bun.copy(u8, buffer, sig_with_md); bun.copy(u8, buffer[sig_with_md.len..], "+UNDEF"); - array.putIndex(globalObject, @intCast(u32, i), JSC.ZigString.fromUTF8(buffer).toValueGC(globalObject)); + array.putIndex(globalObject, @as(u32, @intCast(i)), JSC.ZigString.fromUTF8(buffer).toValueGC(globalObject)); } } return array; @@ -2457,7 +2459,7 @@ fn NewSocket(comptime ssl: bool) type { return JSValue.jsNull(); } - const ssl_ptr = @ptrCast(*BoringSSL.SSL, this.socket.getNativeHandle()); + const ssl_ptr = @as(*BoringSSL.SSL, @ptrCast(this.socket.getNativeHandle())); const version = BoringSSL.SSL_get_version(ssl_ptr); if (version == null) return JSValue.jsNull(); const version_len = bun.len(version); @@ -2502,8 +2504,8 @@ fn NewSocket(comptime ssl: bool) type { return .zero; } - const ssl_ptr = @ptrCast(*BoringSSL.SSL, this.socket.getNativeHandle()); - return JSValue.jsBoolean(BoringSSL.SSL_set_max_send_fragment(ssl_ptr, @intCast(usize, size)) == 1); + const ssl_ptr = @as(*BoringSSL.SSL, @ptrCast(this.socket.getNativeHandle())); + return JSValue.jsBoolean(BoringSSL.SSL_set_max_send_fragment(ssl_ptr, @as(usize, @intCast(size))) == 1); } pub fn getPeerCertificate( this: *This, @@ -2530,7 +2532,7 @@ fn NewSocket(comptime ssl: bool) type { abbreviated = arg.toBoolean(); } - const ssl_ptr = @ptrCast(*BoringSSL.SSL, this.socket.getNativeHandle()); + const ssl_ptr = @as(*BoringSSL.SSL, @ptrCast(this.socket.getNativeHandle())); if (abbreviated) { if (this.handlers.is_server) { @@ -2573,7 +2575,7 @@ fn NewSocket(comptime ssl: bool) type { return JSValue.jsUndefined(); } - const ssl_ptr = @ptrCast(*BoringSSL.SSL, this.socket.getNativeHandle()); + const ssl_ptr = @as(*BoringSSL.SSL, @ptrCast(this.socket.getNativeHandle())); const cert = BoringSSL.SSL_get_certificate(ssl_ptr); if (cert) |x509| { @@ -2623,6 +2625,7 @@ fn NewSocket(comptime ssl: bool) type { const host = normalizeHost(@as([]const u8, slice)); if (host.len > 0) { var ssl_ptr = this.socket.ssl(); + if (ssl_ptr.isInitFinished()) { // match node.js exceptions globalObject.throw("Already started.", .{}); diff --git a/src/bun.js/api/bun/spawn.zig b/src/bun.js/api/bun/spawn.zig index 5de8c2265..be354c7f0 100644 --- a/src/bun.js/api/bun/spawn.zig +++ b/src/bun.js/api/bun/spawn.zig @@ -62,14 +62,14 @@ pub const PosixSpawn = struct { pub fn get(self: Attr) !u16 { var flags: c_short = undefined; switch (errno(system.posix_spawnattr_getflags(&self.attr, &flags))) { - .SUCCESS => return @bitCast(u16, flags), + .SUCCESS => return @as(u16, @bitCast(flags)), .INVAL => unreachable, else => |err| return unexpectedErrno(err), } } pub fn set(self: *Attr, flags: u16) !void { - switch (errno(system.posix_spawnattr_setflags(&self.attr, @bitCast(c_short, flags)))) { + switch (errno(system.posix_spawnattr_setflags(&self.attr, @as(c_short, @bitCast(flags))))) { .SUCCESS => return, .INVAL => unreachable, else => |err| return unexpectedErrno(err), @@ -107,7 +107,7 @@ pub const PosixSpawn = struct { } pub fn openZ(self: *Actions, fd: fd_t, path: [*:0]const u8, flags: u32, mode: mode_t) !void { - switch (errno(system.posix_spawn_file_actions_addopen(&self.actions, fd, path, @bitCast(c_int, flags), mode))) { + switch (errno(system.posix_spawn_file_actions_addopen(&self.actions, fd, path, @as(c_int, @bitCast(flags)), mode))) { .SUCCESS => return, .BADF => return error.InvalidFileDescriptor, .NOMEM => return error.SystemResources, @@ -283,12 +283,12 @@ pub const PosixSpawn = struct { const Status = c_int; var status: Status = undefined; while (true) { - const rc = system.waitpid(pid, &status, @intCast(c_int, flags)); + const rc = system.waitpid(pid, &status, @as(c_int, @intCast(flags))); switch (errno(rc)) { .SUCCESS => return Maybe(WaitPidResult){ .result = .{ - .pid = @intCast(pid_t, rc), - .status = @bitCast(u32, status), + .pid = @as(pid_t, @intCast(rc)), + .status = @as(u32, @bitCast(status)), }, }, .INTR => continue, diff --git a/src/bun.js/api/bun/subprocess.zig b/src/bun.js/api/bun/subprocess.zig index ba813c463..1bc7f234a 100644 --- a/src/bun.js/api/bun/subprocess.zig +++ b/src/bun.js/api/bun/subprocess.zig @@ -201,7 +201,7 @@ pub const Subprocess = struct { }; }, .path => Readable{ .ignore = {} }, - .blob, .fd => Readable{ .fd = @intCast(bun.FileDescriptor, fd) }, + .blob, .fd => Readable{ .fd = @as(bun.FileDescriptor, @intCast(fd)) }, .array_buffer => Readable{ .pipe = .{ .buffer = BufferedOutput.initWithSlice(fd, stdio.array_buffer.slice()), @@ -360,7 +360,7 @@ pub const Subprocess = struct { } // first appeared in Linux 5.1 - const rc = std.os.linux.pidfd_send_signal(this.pidfd, @intCast(u8, sig), null, 0); + const rc = std.os.linux.pidfd_send_signal(this.pidfd, @as(u8, @intCast(sig)), null, 0); if (rc != 0) { const errno = std.os.linux.getErrno(rc); @@ -628,7 +628,7 @@ pub const Subprocess = struct { }, else => { const slice = result.slice(); - this.internal_buffer.len += @truncate(u32, slice.len); + this.internal_buffer.len += @as(u32, @truncate(slice.len)); if (slice.len > 0) std.debug.assert(this.internal_buffer.contains(slice)); @@ -673,7 +673,7 @@ pub const Subprocess = struct { if (slice.ptr == stack_buf.ptr) { this.internal_buffer.append(auto_sizer.allocator, slice) catch @panic("out of memory"); } else { - this.internal_buffer.len += @truncate(u32, slice.len); + this.internal_buffer.len += @as(u32, @truncate(slice.len)); } if (slice.len < buf_to_use.len) { @@ -706,7 +706,7 @@ pub const Subprocess = struct { return; }, .read => |slice| { - this.internal_buffer.len += @truncate(u32, slice.len); + this.internal_buffer.len += @as(u32, @truncate(slice.len)); if (slice.len < buf_to_use.len) { this.watch(); @@ -881,7 +881,7 @@ pub const Subprocess = struct { return Writable{ .buffered_input = buffered_input }; }, .fd => { - return Writable{ .fd = @intCast(bun.FileDescriptor, fd) }; + return Writable{ .fd = @as(bun.FileDescriptor, @intCast(fd)) }; }, .inherit => { return Writable{ .inherit = {} }; @@ -1303,7 +1303,7 @@ pub const Subprocess = struct { globalThis.throw("out of memory", .{}); return .zero; }; - env = @ptrCast(@TypeOf(env), env_array.items.ptr); + env = @as(@TypeOf(env), @ptrCast(env_array.items.ptr)); } const pid = brk: { @@ -1321,7 +1321,7 @@ pub const Subprocess = struct { } } - break :brk switch (PosixSpawn.spawnZ(argv.items[0].?, actions, attr, @ptrCast([*:null]?[*:0]const u8, argv.items[0..].ptr), env)) { + break :brk switch (PosixSpawn.spawnZ(argv.items[0].?, actions, attr, @as([*:null]?[*:0]const u8, @ptrCast(argv.items[0..].ptr)), env)) { .err => |err| return err.toJSC(globalThis), .result => |pid_| pid_, }; @@ -1329,7 +1329,7 @@ pub const Subprocess = struct { const pidfd: std.os.fd_t = brk: { if (Environment.isMac) { - break :brk @intCast(std.os.fd_t, pid); + break :brk @as(std.os.fd_t, @intCast(pid)); } const kernel = @import("../../../analytics.zig").GenerateHeader.GeneratePlatform.kernelVersion(); @@ -1346,7 +1346,7 @@ pub const Subprocess = struct { ); switch (std.os.linux.getErrno(fd)) { - .SUCCESS => break :brk @intCast(std.os.fd_t, fd), + .SUCCESS => break :brk @as(std.os.fd_t, @intCast(fd)), else => |err| { globalThis.throwValue(JSC.Node.Syscall.Error.fromCode(err, .open).toJSC(globalThis)); var status: u32 = 0; @@ -1484,7 +1484,7 @@ pub const Subprocess = struct { subprocess.finalizeSync(); const sync_value = JSC.JSValue.createEmptyObject(globalThis, 4); - sync_value.put(globalThis, JSC.ZigString.static("exitCode"), JSValue.jsNumber(@intCast(i32, exitCode))); + sync_value.put(globalThis, JSC.ZigString.static("exitCode"), JSValue.jsNumber(@as(i32, @intCast(exitCode)))); sync_value.put(globalThis, JSC.ZigString.static("stdout"), stdout); sync_value.put(globalThis, JSC.ZigString.static("stderr"), stderr); sync_value.put(globalThis, JSC.ZigString.static("success"), JSValue.jsBoolean(exitCode == 0)); @@ -1531,13 +1531,13 @@ pub const Subprocess = struct { }, .result => |result| { if (std.os.W.IFEXITED(result.status)) { - this.exit_code = @truncate(u8, std.os.W.EXITSTATUS(result.status)); + this.exit_code = @as(u8, @truncate(std.os.W.EXITSTATUS(result.status))); } if (std.os.W.IFSIGNALED(result.status)) { - this.signal_code = @enumFromInt(SignalCode, @truncate(u8, std.os.W.TERMSIG(result.status))); + this.signal_code = @as(SignalCode, @enumFromInt(@as(u8, @truncate(std.os.W.TERMSIG(result.status))))); } else if (std.os.W.IFSTOPPED(result.status)) { - this.signal_code = @enumFromInt(SignalCode, @truncate(u8, std.os.W.STOPSIG(result.status))); + this.signal_code = @as(SignalCode, @enumFromInt(@as(u8, @truncate(std.os.W.STOPSIG(result.status))))); } if (!this.hasExited()) { @@ -1688,10 +1688,10 @@ pub const Subprocess = struct { if (blob.needsToReadFile()) { if (blob.store()) |store| { if (store.data.file.pathlike == .fd) { - if (store.data.file.pathlike.fd == @intCast(bun.FileDescriptor, i)) { + if (store.data.file.pathlike.fd == @as(bun.FileDescriptor, @intCast(i))) { stdio_array[i] = Stdio{ .inherit = {} }; } else { - switch (@intCast(std.os.fd_t, i)) { + switch (@as(std.os.fd_t, @intCast(i))) { std.os.STDIN_FILENO => { if (i == std.os.STDERR_FILENO or i == std.os.STDOUT_FILENO) { globalThis.throwInvalidArguments("stdin cannot be used for stdout or stderr", .{}); @@ -1754,9 +1754,9 @@ pub const Subprocess = struct { return false; } - const fd = @intCast(bun.FileDescriptor, fd_); + const fd = @as(bun.FileDescriptor, @intCast(fd_)); - switch (@intCast(std.os.fd_t, i)) { + switch (@as(std.os.fd_t, @intCast(i))) { std.os.STDIN_FILENO => { if (i == std.os.STDERR_FILENO or i == std.os.STDOUT_FILENO) { globalThis.throwInvalidArguments("stdin cannot be used for stdout or stderr", .{}); diff --git a/src/bun.js/api/bun/x509.zig b/src/bun.js/api/bun/x509.zig index 707009936..20ab16547 100644 --- a/src/bun.js/api/bun/x509.zig +++ b/src/bun.js/api/bun/x509.zig @@ -13,8 +13,8 @@ fn x509GetNameObject(globalObject: *JSGlobalObject, name: ?*BoringSSL.X509_NAME) } var result = JSValue.createEmptyObject(globalObject, 1); - for (0..@intCast(usize, cnt)) |i| { - const entry = BoringSSL.X509_NAME_get_entry(name, @intCast(c_int, i)) orelse continue; + for (0..@as(usize, @intCast(cnt))) |i| { + const entry = BoringSSL.X509_NAME_get_entry(name, @as(c_int, @intCast(i))) orelse continue; // We intentionally ignore the value of X509_NAME_ENTRY_set because the // representation as an object does not allow grouping entries into sets // anyway, and multi-value RDNs are rare, i.e., the vast majority of @@ -37,7 +37,7 @@ fn x509GetNameObject(globalObject: *JSGlobalObject, name: ?*BoringSSL.X509_NAME) if (length <= 0) { continue; } - name_slice = type_buf[0..@intCast(usize, length)]; + name_slice = type_buf[0..@as(usize, @intCast(length))]; } const value_data = BoringSSL.X509_NAME_ENTRY_get_data(entry); @@ -47,7 +47,7 @@ fn x509GetNameObject(globalObject: *JSGlobalObject, name: ?*BoringSSL.X509_NAME) if (value_str_len < 0) { continue; } - const value_slice = value_str[0..@intCast(usize, value_str_len)]; + const value_slice = value_str[0..@as(usize, @intCast(value_str_len))]; defer BoringSSL.OPENSSL_free(value_str); // For backward compatibility, we only create arrays if multiple values // exist for the same key. That is not great but there is not much we can @@ -119,7 +119,7 @@ inline fn printAltName(out: *BoringSSL.BIO, name: []const u8, utf8: bool, safe_p if (safe_prefix) |prefix| { _ = BoringSSL.BIO_printf(out, "%s:", prefix); } - _ = BoringSSL.BIO_write(out, @ptrCast([*]const u8, name.ptr), @intCast(c_int, name.len)); + _ = BoringSSL.BIO_write(out, @as([*]const u8, @ptrCast(name.ptr)), @as(c_int, @intCast(name.len))); } else { // If a name is not "safe", we cannot embed it without special // encoding. This does not usually happen, but we don't want to hide @@ -154,11 +154,11 @@ inline fn printAltName(out: *BoringSSL.BIO, name: []const u8, utf8: bool, safe_p } inline fn printLatin1AltName(out: *BoringSSL.BIO, name: *BoringSSL.ASN1_IA5STRING, safe_prefix: ?[*]const u8) void { - printAltName(out, name.data[0..@intCast(usize, name.length)], false, safe_prefix); + printAltName(out, name.data[0..@as(usize, @intCast(name.length))], false, safe_prefix); } inline fn printUTF8AltName(out: *BoringSSL.BIO, name: *BoringSSL.ASN1_UTF8STRING, safe_prefix: ?[*]const u8) void { - printAltName(out, name.data[0..@intCast(usize, name.length)], true, safe_prefix); + printAltName(out, name.data[0..@as(usize, @intCast(name.length))], true, safe_prefix); } pub const kX509NameFlagsRFC2253WithinUtf8JSON = BoringSSL.XN_FLAG_RFC2253 & ~BoringSSL.ASN1_STRFLGS_ESC_MSB & ~BoringSSL.ASN1_STRFLGS_ESC_CTRL; @@ -203,9 +203,9 @@ fn x509PrintGeneralName(out: *BoringSSL.BIO, name: *BoringSSL.GENERAL_NAME) bool return false; } var oline: [*]const u8 = undefined; - const n_bytes = BoringSSL.BIO_get_mem_data(tmp, @ptrCast([*c][*c]u8, &oline)); + const n_bytes = BoringSSL.BIO_get_mem_data(tmp, @as([*c][*c]u8, @ptrCast(&oline))); if (n_bytes <= 0) return false; - printAltName(out, oline[0..@intCast(usize, n_bytes)], true, null); + printAltName(out, oline[0..@as(usize, @intCast(n_bytes))], true, null); } else if (name.name_type == .GEN_OTHERNAME) { // The format that is used here is based on OpenSSL's implementation of // GENERAL_NAME_print (as of OpenSSL 3.0.1). Earlier versions of Node.js @@ -262,7 +262,7 @@ fn x509PrintGeneralName(out: *BoringSSL.BIO, name: *BoringSSL.GENERAL_NAME) bool _ = BoringSSL.BIO_printf(out, "%d.%d.%d.%d", b[0], b[1], b[2], b[3]); } else if (ip.length == 16) { for (0..8) |j| { - const pair: u16 = (@intCast(u16, b[2 * j]) << 8) | @intCast(u16, b[2 * j + 1]); + const pair: u16 = (@as(u16, @intCast(b[2 * j])) << 8) | @as(u16, @intCast(b[2 * j + 1])); _ = BoringSSL.BIO_printf(out, if (j == 0) "%X" else ":%X", pair); } } else { @@ -373,7 +373,7 @@ fn addFingerprintDigest(md: []const u8, mdSize: c_uint, fingerprint: []u8) usize const hex: []const u8 = "0123456789ABCDEF"; var idx: usize = 0; - const slice = md[0..@intCast(usize, mdSize)]; + const slice = md[0..@as(usize, @intCast(mdSize))]; for (slice) |byte| { fingerprint[idx] = hex[(byte & 0xF0) >> 4]; fingerprint[idx + 1] = hex[byte & 0x0F]; @@ -390,7 +390,7 @@ fn getFingerprintDigest(cert: *BoringSSL.X509, method: *const BoringSSL.EVP_MD, var md_size: c_uint = 0; var fingerprint: [BoringSSL.EVP_MAX_MD_SIZE * 3]u8 = undefined; - if (BoringSSL.X509_digest(cert, method, @ptrCast([*c]u8, &md), &md_size) != 0) { + if (BoringSSL.X509_digest(cert, method, @as([*c]u8, @ptrCast(&md)), &md_size) != 0) { const length = addFingerprintDigest(&md, md_size, &fingerprint); return JSC.ZigString.fromUTF8(fingerprint[0..length]).toValueGC(globalObject); } @@ -416,8 +416,8 @@ fn getSerialNumber(cert: *BoringSSL.X509, globalObject: *JSGlobalObject) JSValue fn getRawDERCertificate(cert: *BoringSSL.X509, globalObject: *JSGlobalObject) JSValue { const size = BoringSSL.i2d_X509(cert, null); - var buffer = JSValue.createBufferFromLength(globalObject, @intCast(usize, size)); - var buffer_ptr = @ptrCast([*c]u8, buffer.asArrayBuffer(globalObject).?.ptr); + var buffer = JSValue.createBufferFromLength(globalObject, @as(usize, @intCast(size))); + var buffer_ptr = @as([*c]u8, @ptrCast(buffer.asArrayBuffer(globalObject).?.ptr)); const result_size = BoringSSL.i2d_X509(cert, &buffer_ptr); std.debug.assert(result_size == size); return buffer; @@ -457,7 +457,7 @@ pub fn toJS(cert: *BoringSSL.X509, globalObject: *JSGlobalObject) JSValue { if (rsa_key) |rsa| { var n: [*c]const BoringSSL.BIGNUM = undefined; var e: [*c]const BoringSSL.BIGNUM = undefined; - BoringSSL.RSA_get0_key(rsa, @ptrCast([*c][*c]const BoringSSL.BIGNUM, &n), @ptrCast([*c][*c]const BoringSSL.BIGNUM, &e), null); + BoringSSL.RSA_get0_key(rsa, @as([*c][*c]const BoringSSL.BIGNUM, @ptrCast(&n)), @as([*c][*c]const BoringSSL.BIGNUM, @ptrCast(&e)), null); _ = BoringSSL.BN_print(bio, n); var bits = JSValue.jsUndefined(); @@ -487,8 +487,8 @@ pub fn toJS(cert: *BoringSSL.X509, globalObject: *JSGlobalObject) JSValue { return .zero; } - var buffer = JSValue.createBufferFromLength(globalObject, @intCast(usize, size)); - var buffer_ptr = @ptrCast([*c]u8, buffer.asArrayBuffer(globalObject).?.ptr); + var buffer = JSValue.createBufferFromLength(globalObject, @as(usize, @intCast(size))); + var buffer_ptr = @as([*c]u8, @ptrCast(buffer.asArrayBuffer(globalObject).?.ptr)); _ = BoringSSL.i2d_RSA_PUBKEY(rsa, &buffer_ptr); @@ -517,8 +517,8 @@ pub fn toJS(cert: *BoringSSL.X509, globalObject: *JSGlobalObject) JSValue { return .zero; } - var buffer = JSValue.createBufferFromLength(globalObject, @intCast(usize, size)); - var buffer_ptr = @ptrCast([*c]u8, buffer.asArrayBuffer(globalObject).?.ptr); + var buffer = JSValue.createBufferFromLength(globalObject, @as(usize, @intCast(size))); + var buffer_ptr = @as([*c]u8, @ptrCast(buffer.asArrayBuffer(globalObject).?.ptr)); const result_size = BoringSSL.EC_POINT_point2oct(group, point, form, buffer_ptr, size, null); std.debug.assert(result_size == size); diff --git a/src/bun.js/api/ffi.zig b/src/bun.js/api/ffi.zig index ba31b67ed..1ca44619d 100644 --- a/src/bun.js/api/ffi.zig +++ b/src/bun.js/api/ffi.zig @@ -383,7 +383,7 @@ pub const FFI = struct { const cb = JSC.NewRuntimeFunction( global, &str, - @intCast(u32, function.arg_types.items.len), + @as(u32, @intCast(function.arg_types.items.len)), bun.cast(JSC.JSHostFunctionPtr, compiled.ptr), false, ); @@ -479,7 +479,7 @@ pub const FFI = struct { const cb = JSC.NewRuntimeFunction( global, name, - @intCast(u32, function.arg_types.items.len), + @as(u32, @intCast(function.arg_types.items.len)), bun.cast(JSC.JSHostFunctionPtr, compiled.ptr), false, ); @@ -523,7 +523,7 @@ pub const FFI = struct { const int = val.to(i32); switch (int) { 0...ABIType.max => { - abi_types.appendAssumeCapacity(@enumFromInt(ABIType, int)); + abi_types.appendAssumeCapacity(@as(ABIType, @enumFromInt(int))); continue; }, else => { @@ -560,7 +560,7 @@ pub const FFI = struct { const int = ret_value.toInt32(); switch (int) { 0...ABIType.max => { - return_type = @enumFromInt(ABIType, int); + return_type = @as(ABIType, @enumFromInt(int)); break :brk; }, else => { @@ -594,11 +594,11 @@ pub const FFI = struct { if (ptr.isNumber()) { const num = ptr.asPtrAddress(); if (num > 0) - function.symbol_from_dynamic_library = @ptrFromInt(*anyopaque, num); + function.symbol_from_dynamic_library = @as(*anyopaque, @ptrFromInt(num)); } else { const num = ptr.toUInt64NoTruncate(); if (num > 0) { - function.symbol_from_dynamic_library = @ptrFromInt(*anyopaque, num); + function.symbol_from_dynamic_library = @as(*anyopaque, @ptrFromInt(num)); } } } @@ -831,7 +831,7 @@ pub const FFI = struct { return; } - var bytes: []u8 = try allocator.alloc(u8, @intCast(usize, relocation_size)); + var bytes: []u8 = try allocator.alloc(u8, @as(usize, @intCast(relocation_size))); defer { if (this.step == .failed) { allocator.free(bytes); @@ -1001,7 +1001,7 @@ pub const FFI = struct { return; } - var bytes: []u8 = try allocator.alloc(u8, @intCast(usize, relocation_size)); + var bytes: []u8 = try allocator.alloc(u8, @as(usize, @intCast(relocation_size))); defer { if (this.step == .failed) { allocator.free(bytes); diff --git a/src/bun.js/api/html_rewriter.zig b/src/bun.js/api/html_rewriter.zig index b309e07d7..651db981b 100644 --- a/src/bun.js/api/html_rewriter.zig +++ b/src/bun.js/api/html_rewriter.zig @@ -1874,7 +1874,7 @@ pub const Element = struct { AttributeIterator.getAttributeIteratorJSClass(globalObject).asObjectRef(), null, 1, - @ptrCast([*]JSC.C.JSObjectRef, &attr), + @as([*]JSC.C.JSObjectRef, @ptrCast(&attr)), null, ), ); diff --git a/src/bun.js/api/server.zig b/src/bun.js/api/server.zig index 63e83d9bf..fbf22678b 100644 --- a/src/bun.js/api/server.zig +++ b/src/bun.js/api/server.zig @@ -170,7 +170,7 @@ pub const ServerConfig = struct { pub fn asUSockets(this_: ?SSLConfig) uws.us_bun_socket_context_options_t { var ctx_opts: uws.us_bun_socket_context_options_t = undefined; - @memset(@ptrCast([*]u8, &ctx_opts)[0..@sizeOf(uws.us_bun_socket_context_options_t)], 0); + @memset(@as([*]u8, @ptrCast(&ctx_opts))[0..@sizeOf(uws.us_bun_socket_context_options_t)], 0); if (this_) |ssl_config| { if (ssl_config.key_file_name != null) @@ -714,12 +714,12 @@ pub const ServerConfig = struct { } if (arg.getTruthy(global, "port")) |port_| { - args.port = @intCast( + args.port = @as( u16, - @min( + @intCast(@min( @max(0, port_.coerce(i32, global)), std.math.maxInt(u16), - ), + )), ); } @@ -783,7 +783,7 @@ pub const ServerConfig = struct { if (arg.getTruthy(global, "maxRequestBodySize")) |max_request_body_size| { if (max_request_body_size.isNumber()) { - args.max_request_body_size = @intCast(u64, @max(0, max_request_body_size.toInt64())); + args.max_request_body_size = @as(u64, @intCast(@max(0, max_request_body_size.toInt64()))); } } @@ -1239,7 +1239,7 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp .reason = .fetch_event_handler, .cwd = VirtualMachine.get().bundler.fs.top_level_dir, .problems = Api.Problems{ - .code = @truncate(u16, @intFromError(err)), + .code = @as(u16, @truncate(@intFromError(err))), .name = @errorName(err), .exceptions = exceptions, .build = log.toAPI(allocator) catch unreachable, @@ -1641,19 +1641,19 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp const adjusted_count_temporary = @min(@as(u64, this.sendfile.remain), @as(u63, std.math.maxInt(u63))); // TODO we should not need this int cast; improve the return type of `@min` - const adjusted_count = @intCast(u63, adjusted_count_temporary); + const adjusted_count = @as(u63, @intCast(adjusted_count_temporary)); if (Environment.isLinux) { - var signed_offset = @intCast(i64, this.sendfile.offset); + var signed_offset = @as(i64, @intCast(this.sendfile.offset)); const start = this.sendfile.offset; const val = // this does the syscall directly, without libc linux.sendfile(this.sendfile.socket_fd, this.sendfile.fd, &signed_offset, this.sendfile.remain); - this.sendfile.offset = @intCast(Blob.SizeType, signed_offset); + this.sendfile.offset = @as(Blob.SizeType, @intCast(signed_offset)); const errcode = linux.getErrno(val); - this.sendfile.remain -|= @intCast(Blob.SizeType, this.sendfile.offset -| start); + this.sendfile.remain -|= @as(Blob.SizeType, @intCast(this.sendfile.offset -| start)); if (errcode != .SUCCESS or this.flags.aborted or this.sendfile.remain == 0 or val == 0) { if (errcode != .AGAIN and errcode != .SUCCESS and errcode != .PIPE) { @@ -1665,7 +1665,7 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp } } else { var sbytes: std.os.off_t = adjusted_count; - const signed_offset = @bitCast(i64, @as(u64, this.sendfile.offset)); + const signed_offset = @as(i64, @bitCast(@as(u64, this.sendfile.offset))); const errcode = std.c.getErrno(std.c.sendfile( this.sendfile.fd, this.sendfile.socket_fd, @@ -1675,7 +1675,7 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp null, 0, )); - const wrote = @intCast(Blob.SizeType, sbytes); + const wrote = @as(Blob.SizeType, @intCast(sbytes)); this.sendfile.offset +|= wrote; this.sendfile.remain -|= wrote; if (errcode != .AGAIN or this.flags.aborted or this.sendfile.remain == 0 or sbytes == 0) { @@ -1718,7 +1718,7 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp pub fn sendWritableBytesForBlob(this: *RequestContext, bytes_: []const u8, write_offset: c_ulong, resp: *App.Response) bool { std.debug.assert(this.resp == resp); - var bytes = bytes_[@min(bytes_.len, @truncate(usize, write_offset))..]; + var bytes = bytes_[@min(bytes_.len, @as(usize, @truncate(write_offset)))..]; if (resp.tryEnd(bytes, bytes_.len, this.shouldCloseConnection())) { this.finalize(); return true; @@ -1732,7 +1732,7 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp pub fn sendWritableBytesForCompleteResponseBuffer(this: *RequestContext, bytes_: []const u8, write_offset: c_ulong, resp: *App.Response) bool { std.debug.assert(this.resp == resp); - var bytes = bytes_[@min(bytes_.len, @truncate(usize, write_offset))..]; + var bytes = bytes_[@min(bytes_.len, @as(usize, @truncate(write_offset)))..]; if (resp.tryEnd(bytes, bytes_.len, this.shouldCloseConnection())) { this.response_buf_owned.items.len = 0; this.finalize(); @@ -1788,7 +1788,7 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp } var err = JSC.Node.Syscall.Error{ - .errno = @intCast(JSC.Node.Syscall.Error.Int, @intFromEnum(std.os.E.INVAL)), + .errno = @as(JSC.Node.Syscall.Error.Int, @intCast(@intFromEnum(std.os.E.INVAL))), .syscall = .sendfile, }; var sys = err.withPathLike(file.pathlike).toSystemError(); @@ -1807,7 +1807,7 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp } var err = JSC.Node.Syscall.Error{ - .errno = @intCast(JSC.Node.Syscall.Error.Int, @intFromEnum(std.os.E.INVAL)), + .errno = @as(JSC.Node.Syscall.Error.Int, @intCast(@intFromEnum(std.os.E.INVAL))), .syscall = .sendfile, }; var sys = err.withPathLike(file.pathlike).toSystemError(); @@ -1820,7 +1820,7 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp } const original_size = this.blob.Blob.size; - const stat_size = @intCast(Blob.SizeType, stat.size); + const stat_size = @as(Blob.SizeType, @intCast(stat.size)); this.blob.Blob.size = if (std.os.S.ISREG(stat.mode)) stat_size else @@ -1900,7 +1900,7 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp this.blob.Blob.resolveSize(); this.doRenderBlob(); } else { - const stat_size = @intCast(Blob.SizeType, result.result.total_size); + const stat_size = @as(Blob.SizeType, @intCast(result.result.total_size)); const original_size = this.blob.Blob.size; this.blob.Blob.size = if (original_size == 0 or original_size == Blob.max_size) @@ -1913,8 +1913,8 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp // this is used by content-range this.sendfile = .{ - .fd = @truncate(i32, bun.invalid_fd), - .remain = @truncate(Blob.SizeType, result.result.buf.len), + .fd = @as(i32, @truncate(bun.invalid_fd)), + .remain = @as(Blob.SizeType, @truncate(result.result.buf.len)), .offset = this.blob.Blob.offset, .auto_close = false, .socket_fd = -999, @@ -1988,7 +1988,7 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp this.server.globalThis, stream.value, response_stream, - @ptrCast(**anyopaque, &signal.ptr), + @as(**anyopaque, @ptrCast(&signal.ptr)), ); assignment_result.ensureStillAlive(); @@ -3228,7 +3228,7 @@ pub const WebSocketServer = struct { globalObject.throwInvalidArguments("websocket expects maxPayloadLength to be an integer", .{}); return null; } - server.maxPayloadLength = @intCast(u32, @max(value.toInt64(), 0)); + server.maxPayloadLength = @as(u32, @intCast(@max(value.toInt64(), 0))); } } @@ -3239,7 +3239,7 @@ pub const WebSocketServer = struct { return null; } - var idleTimeout = @intCast(u16, @truncate(u32, @max(value.toInt64(), 0))); + var idleTimeout = @as(u16, @intCast(@as(u32, @truncate(@max(value.toInt64(), 0))))); if (idleTimeout > 960) { globalObject.throwInvalidArguments("websocket expects idleTimeout to be 960 or less", .{}); return null; @@ -3259,7 +3259,7 @@ pub const WebSocketServer = struct { return null; } - server.backpressureLimit = @intCast(u32, @max(value.toInt64(), 0)); + server.backpressureLimit = @as(u32, @intCast(@max(value.toInt64(), 0))); } } @@ -3683,7 +3683,7 @@ pub const ServerWebSocket = struct { return JSValue.jsNumber( // if 0, return 0 // else return number of bytes sent - if (result) @intCast(i32, @truncate(u31, buffer.len)) else @as(i32, 0), + if (result) @as(i32, @intCast(@as(u31, @truncate(buffer.len)))) else @as(i32, 0), ); } @@ -3701,7 +3701,7 @@ pub const ServerWebSocket = struct { return JSValue.jsNumber( // if 0, return 0 // else return number of bytes sent - if (result) @intCast(i32, @truncate(u31, buffer.len)) else @as(i32, 0), + if (result) @as(i32, @intCast(@as(u31, @truncate(buffer.len)))) else @as(i32, 0), ); } @@ -3762,7 +3762,7 @@ pub const ServerWebSocket = struct { return JSValue.jsNumber( // if 0, return 0 // else return number of bytes sent - if (result) @intCast(i32, @truncate(u31, buffer.len)) else @as(i32, 0), + if (result) @as(i32, @intCast(@as(u31, @truncate(buffer.len)))) else @as(i32, 0), ); } @@ -3823,7 +3823,7 @@ pub const ServerWebSocket = struct { return JSValue.jsNumber( // if 0, return 0 // else return number of bytes sent - if (result) @intCast(i32, @truncate(u31, buffer.len)) else @as(i32, 0), + if (result) @as(i32, @intCast(@as(u31, @truncate(buffer.len)))) else @as(i32, 0), ); } @@ -3863,7 +3863,7 @@ pub const ServerWebSocket = struct { return JSValue.jsNumber( // if 0, return 0 // else return number of bytes sent - if (result) @intCast(i32, @truncate(u31, buffer.len)) else @as(i32, 0), + if (result) @as(i32, @intCast(@as(u31, @truncate(buffer.len)))) else @as(i32, 0), ); } @@ -3905,7 +3905,7 @@ pub const ServerWebSocket = struct { return JSValue.jsNumber( // if 0, return 0 // else return number of bytes sent - if (result) @intCast(i32, @truncate(u31, buffer.len)) else @as(i32, 0), + if (result) @as(i32, @intCast(@as(u31, @truncate(buffer.len)))) else @as(i32, 0), ); } @@ -4596,7 +4596,7 @@ pub fn NewServer(comptime ssl_enabled_: bool, comptime debug_mode_: bool) type { return JSValue.jsNumber( // if 0, return 0 // else return number of bytes sent - @as(i32, @intFromBool(uws.AnyWebSocket.publishWithOptions(ssl_enabled, app, topic_slice.slice(), buffer.slice(), .binary, compress))) * @intCast(i32, @truncate(u31, buffer.len)), + @as(i32, @intFromBool(uws.AnyWebSocket.publishWithOptions(ssl_enabled, app, topic_slice.slice(), buffer.slice(), .binary, compress))) * @as(i32, @intCast(@as(u31, @truncate(buffer.len)))), ); } @@ -4608,7 +4608,7 @@ pub fn NewServer(comptime ssl_enabled_: bool, comptime debug_mode_: bool) type { return JSValue.jsNumber( // if 0, return 0 // else return number of bytes sent - @as(i32, @intFromBool(uws.AnyWebSocket.publishWithOptions(ssl_enabled, app, topic_slice.slice(), buffer, .text, compress))) * @intCast(i32, @truncate(u31, buffer.len)), + @as(i32, @intFromBool(uws.AnyWebSocket.publishWithOptions(ssl_enabled, app, topic_slice.slice(), buffer, .text, compress))) * @as(i32, @intCast(@as(u31, @truncate(buffer.len)))), ); } @@ -4739,7 +4739,7 @@ pub fn NewServer(comptime ssl_enabled_: bool, comptime debug_mode_: bool) type { // See https://github.com/oven-sh/bun/issues/1339 // obviously invalid pointer marks it as used - upgrader.upgrade_context = @ptrFromInt(*uws.uws_socket_context_s, std.math.maxInt(usize)); + upgrader.upgrade_context = @as(*uws.uws_socket_context_s, @ptrFromInt(std.math.maxInt(usize))); request.upgrader = null; resp.clearAborted(); @@ -4961,11 +4961,11 @@ pub fn NewServer(comptime ssl_enabled_: bool, comptime debug_mode_: bool) type { } pub fn getPendingRequests(this: *ThisServer) JSC.JSValue { - return JSC.JSValue.jsNumber(@intCast(i32, @truncate(u31, this.pending_requests))); + return JSC.JSValue.jsNumber(@as(i32, @intCast(@as(u31, @truncate(this.pending_requests))))); } pub fn getPendingWebSockets(this: *ThisServer) JSC.JSValue { - return JSC.JSValue.jsNumber(@intCast(i32, @truncate(u31, this.activeSocketsCount()))); + return JSC.JSValue.jsNumber(@as(i32, @intCast(@as(u31, @truncate(this.activeSocketsCount()))))); } pub fn getHostname(this: *ThisServer, globalThis: *JSGlobalObject) JSC.JSValue { @@ -5001,7 +5001,7 @@ pub fn NewServer(comptime ssl_enabled_: bool, comptime debug_mode_: bool) type { pub fn activeSocketsCount(this: *const ThisServer) u32 { const websocket = &(this.config.websocket orelse return 0); - return @truncate(u32, websocket.handler.active_connections); + return @as(u32, @truncate(websocket.handler.active_connections)); } pub fn hasActiveWebSockets(this: *const ThisServer) bool { diff --git a/src/bun.js/base.zig b/src/bun.js/base.zig index 535c08395..f7b2eb343 100644 --- a/src/bun.js/base.zig +++ b/src/bun.js/base.zig @@ -272,7 +272,7 @@ pub const To = struct { if (value.len <= prefill) { var array: [prefill]JSC.C.JSValueRef = undefined; var i: u8 = 0; - const len = @min(@intCast(u8, value.len), prefill); + const len = @min(@as(u8, @intCast(value.len)), prefill); while (i < len and exception.* == null) : (i += 1) { array[i] = if (comptime Child == JSC.C.JSValueRef) value[i] @@ -1294,7 +1294,7 @@ pub fn NewClassWithInstanceType( @memset( &props, js.JSStaticValue{ - .name = @ptrFromInt([*c]const u8, 0), + .name = @as([*c]const u8, @ptrFromInt(0)), .getProperty = null, .setProperty = null, .attributes = js.JSPropertyAttributes.kJSPropertyAttributeNone, @@ -1311,7 +1311,7 @@ pub fn NewClassWithInstanceType( .name = lit ++ .{0}, .getProperty = null, .setProperty = null, - .attributes = @enumFromInt(js.JSPropertyAttributes, 0), + .attributes = @as(js.JSPropertyAttributes, @enumFromInt(0)), }; static_prop.getProperty = StaticProperty(i).getter; @@ -1423,7 +1423,7 @@ pub fn NewClassWithInstanceType( PointerType, if (@typeInfo(@TypeOf(ctxfn)) == .Pointer) ctxfn.* else ctxfn, ).rfn, - .attributes = @enumFromInt(js.JSPropertyAttributes, attributes), + .attributes = @as(js.JSPropertyAttributes, @enumFromInt(attributes)), }; count += 1; @@ -1447,7 +1447,7 @@ pub fn NewClassWithInstanceType( if (is_read_only) base |= @intFromEnum(js.JSPropertyAttributes.kJSPropertyAttributeReadOnly); - break :brk @enumFromInt(js.JSPropertyAttributes, base); + break :brk @as(js.JSPropertyAttributes, @enumFromInt(base)); }; __static_functions[count] = js.JSStaticFunction{ @@ -1810,7 +1810,7 @@ pub const ArrayBuffer = extern struct { } pub fn fromBytes(bytes: []u8, typed_array_type: JSC.JSValue.JSType) ArrayBuffer { - return ArrayBuffer{ .offset = 0, .len = @intCast(u32, bytes.len), .byte_len = @intCast(u32, bytes.len), .typed_array_type = typed_array_type, .ptr = bytes.ptr }; + return ArrayBuffer{ .offset = 0, .len = @as(u32, @intCast(bytes.len)), .byte_len = @as(u32, @intCast(bytes.len)), .typed_array_type = typed_array_type, .ptr = bytes.ptr }; } pub fn toJSUnchecked(this: ArrayBuffer, ctx: JSC.C.JSContextRef, exception: JSC.C.ExceptionRef) JSC.JSValue { @@ -1838,7 +1838,7 @@ pub const ArrayBuffer = extern struct { this.ptr, this.byte_len, MarkedArrayBuffer_deallocator, - @ptrFromInt(*anyopaque, @intFromPtr(&bun.default_allocator)), + @as(*anyopaque, @ptrFromInt(@intFromPtr(&bun.default_allocator))), exception, )); } @@ -1849,7 +1849,7 @@ pub const ArrayBuffer = extern struct { this.ptr, this.byte_len, MarkedArrayBuffer_deallocator, - @ptrFromInt(*anyopaque, @intFromPtr(&bun.default_allocator)), + @as(*anyopaque, @ptrFromInt(@intFromPtr(&bun.default_allocator))), exception, )); } @@ -1942,15 +1942,15 @@ pub const ArrayBuffer = extern struct { pub const slice = byteSlice; pub inline fn asU16(this: *const @This()) []u16 { - return std.mem.bytesAsSlice(u16, @alignCast(@alignOf([*]u16), this.ptr[this.offset..this.byte_len])); + return std.mem.bytesAsSlice(u16, @as([*]u16, @alignCast(this.ptr))[this.offset..this.byte_len]); } pub inline fn asU16Unaligned(this: *const @This()) []align(1) u16 { - return std.mem.bytesAsSlice(u16, @alignCast(@alignOf([*]align(1) u16), this.ptr[this.offset..this.byte_len])); + return std.mem.bytesAsSlice(u16, @as([*]align(1) u16, @alignCast(this.ptr))[this.offset..this.byte_len]); } pub inline fn asU32(this: *const @This()) []u32 { - return std.mem.bytesAsSlice(u32, @alignCast(@alignOf([*]u32), this.ptr)[this.offset..this.byte_len]); + return std.mem.bytesAsSlice(u32, @as([*]u32, @alignCast(this.ptr))[this.offset..this.byte_len]); } }; @@ -3363,7 +3363,7 @@ pub const FilePoll = struct { const DNSResolver = JSC.DNS.DNSResolver; const GetAddrInfoRequest = JSC.DNS.GetAddrInfoRequest; const Deactivated = opaque { - pub var owner: Owner = Owner.init(@ptrFromInt(*Deactivated, @as(usize, 0xDEADBEEF))); + pub var owner: Owner = Owner.init(@as(*Deactivated, @ptrFromInt(@as(usize, 0xDEADBEEF)))); }; pub const Owner = bun.TaggedPointerUnion(.{ @@ -3656,7 +3656,7 @@ pub const FilePoll = struct { pub fn initWithOwner(vm: *JSC.VirtualMachine, fd: bun.FileDescriptor, flags: Flags.Struct, owner: Owner) *FilePoll { var poll = vm.rareData().filePolls(vm).get(); - poll.fd = @intCast(u32, fd); + poll.fd = @as(u32, @intCast(fd)); poll.flags = Flags.Set.init(flags); poll.owner = owner; if (KQueueGenerationNumber != u0) { @@ -3701,9 +3701,9 @@ pub const FilePoll = struct { var file_poll = tag.as(FilePoll); if (comptime Environment.isMac) - onKQueueEvent(file_poll, loop, &loop.ready_polls[@intCast(usize, loop.current_ready_poll)]) + onKQueueEvent(file_poll, loop, &loop.ready_polls[@as(usize, @intCast(loop.current_ready_poll))]) else if (comptime Environment.isLinux) - onEpollEvent(file_poll, loop, &loop.ready_polls[@intCast(usize, loop.current_ready_poll)]); + onEpollEvent(file_poll, loop, &loop.ready_polls[@as(usize, @intCast(loop.current_ready_poll))]); } const Pollable = bun.TaggedPointerUnion( @@ -3751,7 +3751,7 @@ pub const FilePoll = struct { const ctl = linux.epoll_ctl( watcher_fd, if (this.isRegistered() or this.flags.contains(.needs_rearm)) linux.EPOLL.CTL_MOD else linux.EPOLL.CTL_ADD, - @intCast(std.os.fd_t, fd), + @as(std.os.fd_t, @intCast(fd)), &event, ); @@ -3763,7 +3763,7 @@ pub const FilePoll = struct { const one_shot_flag: u16 = if (!this.flags.contains(.one_shot)) 0 else std.c.EV_ONESHOT; changelist[0] = switch (flag) { .readable => .{ - .ident = @intCast(u64, fd), + .ident = @as(u64, @intCast(fd)), .filter = std.os.system.EVFILT_READ, .data = 0, .fflags = 0, @@ -3772,7 +3772,7 @@ pub const FilePoll = struct { .ext = .{ this.generation_number, 0 }, }, .writable => .{ - .ident = @intCast(u64, fd), + .ident = @as(u64, @intCast(fd)), .filter = std.os.system.EVFILT_WRITE, .data = 0, .fflags = 0, @@ -3781,7 +3781,7 @@ pub const FilePoll = struct { .ext = .{ this.generation_number, 0 }, }, .process => .{ - .ident = @intCast(u64, fd), + .ident = @as(u64, @intCast(fd)), .filter = std.os.system.EVFILT_PROC, .data = 0, .fflags = std.c.NOTE_EXIT, @@ -3790,7 +3790,7 @@ pub const FilePoll = struct { .ext = .{ this.generation_number, 0 }, }, .machport => .{ - .ident = @intCast(u64, fd), + .ident = @as(u64, @intCast(fd)), .filter = std.os.system.EVFILT_MACHPORT, .data = 0, .fflags = 0, @@ -3903,7 +3903,7 @@ pub const FilePoll = struct { const ctl = linux.epoll_ctl( watcher_fd, linux.EPOLL.CTL_DEL, - @intCast(std.os.fd_t, fd), + @as(std.os.fd_t, @intCast(fd)), null, ); @@ -3915,7 +3915,7 @@ pub const FilePoll = struct { changelist[0] = switch (flag) { .readable => .{ - .ident = @intCast(u64, fd), + .ident = @as(u64, @intCast(fd)), .filter = std.os.system.EVFILT_READ, .data = 0, .fflags = 0, @@ -3924,7 +3924,7 @@ pub const FilePoll = struct { .ext = .{ 0, 0 }, }, .machport => .{ - .ident = @intCast(u64, fd), + .ident = @as(u64, @intCast(fd)), .filter = std.os.system.EVFILT_MACHPORT, .data = 0, .fflags = 0, @@ -3933,7 +3933,7 @@ pub const FilePoll = struct { .ext = .{ 0, 0 }, }, .writable => .{ - .ident = @intCast(u64, fd), + .ident = @as(u64, @intCast(fd)), .filter = std.os.system.EVFILT_WRITE, .data = 0, .fflags = 0, @@ -3942,7 +3942,7 @@ pub const FilePoll = struct { .ext = .{ 0, 0 }, }, .process => .{ - .ident = @intCast(u64, fd), + .ident = @as(u64, @intCast(fd)), .filter = std.os.system.EVFILT_PROC, .data = 0, .fflags = std.c.NOTE_EXIT, diff --git a/src/bun.js/bindings/FFI.zig b/src/bun.js/bindings/FFI.zig index fde4a8d30..9d16bd78e 100644 --- a/src/bun.js/bindings/FFI.zig +++ b/src/bun.js/bindings/FFI.zig @@ -18,41 +18,41 @@ pub const union_EncodedJSValue = extern union { }; pub const EncodedJSValue = union_EncodedJSValue; pub export var ValueUndefined: EncodedJSValue = EncodedJSValue{ - .asInt64 = @bitCast(i64, @as(c_longlong, @as(c_int, 2) | @as(c_int, 8))), + .asInt64 = @as(i64, @bitCast(@as(c_longlong, @as(c_int, 2) | @as(c_int, 8)))), }; pub export var ValueTrue: EncodedJSValue = EncodedJSValue{ - .asInt64 = @bitCast(i64, @as(c_longlong, (@as(c_int, 2) | @as(c_int, 4)) | @as(c_int, 1))), + .asInt64 = @as(i64, @bitCast(@as(c_longlong, (@as(c_int, 2) | @as(c_int, 4)) | @as(c_int, 1)))), }; pub const JSContext = ?*anyopaque; pub inline fn JSVALUE_IS_CELL(arg_val: EncodedJSValue) bool { const val = arg_val; - return !(((@bitCast(c_ulonglong, val.asInt64) & @as(c_ulonglong, 18446181123756130304)) | @bitCast(c_ulonglong, @as(c_longlong, @as(c_int, 2)))) != 0); + return !(((@as(c_ulonglong, @bitCast(val.asInt64)) & @as(c_ulonglong, 18446181123756130304)) | @as(c_ulonglong, @bitCast(@as(c_longlong, @as(c_int, 2))))) != 0); } pub inline fn JSVALUE_IS_INT32(arg_val: EncodedJSValue) @"bool" { const val = arg_val; - return (@bitCast(c_ulonglong, val.asInt64) & @as(c_ulonglong, 18446181123756130304)) == @as(c_ulonglong, 18446181123756130304); + return (@as(c_ulonglong, @bitCast(val.asInt64)) & @as(c_ulonglong, 18446181123756130304)) == @as(c_ulonglong, 18446181123756130304); } pub inline fn JSVALUE_IS_NUMBER(arg_val: EncodedJSValue) @"bool" { const val = arg_val; - return (@bitCast(c_ulonglong, val.asInt64) & @as(c_ulonglong, 18446181123756130304)) != 0; + return (@as(c_ulonglong, @bitCast(val.asInt64)) & @as(c_ulonglong, 18446181123756130304)) != 0; } pub inline fn JSVALUE_TO_UINT64(arg_value: EncodedJSValue) u64 { var value = arg_value; if (JSVALUE_IS_INT32(value)) { - return @bitCast(u64, @as(c_longlong, JSVALUE_TO_INT32(value))); + return @as(u64, @bitCast(@as(c_longlong, JSVALUE_TO_INT32(value)))); } if (JSVALUE_IS_NUMBER(value)) { - return @intFromFloat(u64, JSVALUE_TO_DOUBLE(value)); + return @as(u64, @intFromFloat(JSVALUE_TO_DOUBLE(value))); } return JSVALUE_TO_UINT64_SLOW(value); } pub inline fn JSVALUE_TO_INT64(arg_value: EncodedJSValue) i64 { const value = arg_value; if (JSVALUE_IS_INT32(value)) { - return @bitCast(i64, @as(c_longlong, JSVALUE_TO_INT32(value))); + return @as(i64, @bitCast(@as(c_longlong, JSVALUE_TO_INT32(value)))); } if (JSVALUE_IS_NUMBER(value)) { - return @intFromFloat(i64, JSVALUE_TO_DOUBLE(value)); + return @as(i64, @intFromFloat(JSVALUE_TO_DOUBLE(value))); } return JSVALUE_TO_INT64_SLOW(value); } @@ -63,69 +63,69 @@ pub const INT64_TO_JSVALUE_SLOW = @import("./bindings.zig").JSValue.fromInt64NoT pub inline fn UINT64_TO_JSVALUE(arg_globalObject: ?*anyopaque, arg_val: u64) EncodedJSValue { var globalObject = arg_globalObject; const val = arg_val; - if (val < @bitCast(c_ulonglong, @as(c_longlong, @as(c_long, 2147483648)))) { - return INT32_TO_JSVALUE(@bitCast(i32, @truncate(c_uint, val))); + if (val < @as(c_ulonglong, @bitCast(@as(c_longlong, @as(c_long, 2147483648))))) { + return INT32_TO_JSVALUE(@as(i32, @bitCast(@as(c_uint, @truncate(val))))); } - if (val < @bitCast(c_ulonglong, @as(c_longlong, @as(c_long, 9007199254740991)))) { - return DOUBLE_TO_JSVALUE(@floatFromInt(f64, val)); + if (val < @as(c_ulonglong, @bitCast(@as(c_longlong, @as(c_long, 9007199254740991))))) { + return DOUBLE_TO_JSVALUE(@as(f64, @floatFromInt(val))); } - return UINT64_TO_JSVALUE_SLOW(@ptrCast(*@import("./bindings.zig").JSGlobalObject, globalObject.?), val).asEncoded(); + return UINT64_TO_JSVALUE_SLOW(@as(*@import("./bindings.zig").JSGlobalObject, @ptrCast(globalObject.?)), val).asEncoded(); } pub inline fn INT64_TO_JSVALUE(arg_globalObject: ?*anyopaque, arg_val: i64) EncodedJSValue { var globalObject = arg_globalObject; var val = arg_val; - if ((val >= @bitCast(c_longlong, @as(c_longlong, -@as(c_long, 2147483648)))) and (val <= @bitCast(c_longlong, @as(c_longlong, @as(c_long, 2147483648))))) { - return INT32_TO_JSVALUE(@bitCast(i32, @truncate(c_int, val))); + if ((val >= @as(c_longlong, @bitCast(@as(c_longlong, -@as(c_long, 2147483648))))) and (val <= @as(c_longlong, @bitCast(@as(c_longlong, @as(c_long, 2147483648)))))) { + return INT32_TO_JSVALUE(@as(i32, @bitCast(@as(c_int, @truncate(val))))); } - if ((val >= @bitCast(c_longlong, @as(c_longlong, -@as(c_long, 9007199254740991)))) and (val <= @bitCast(c_longlong, @as(c_longlong, @as(c_long, 9007199254740991))))) { - return DOUBLE_TO_JSVALUE(@floatFromInt(f64, val)); + if ((val >= @as(c_longlong, @bitCast(@as(c_longlong, -@as(c_long, 9007199254740991))))) and (val <= @as(c_longlong, @bitCast(@as(c_longlong, @as(c_long, 9007199254740991)))))) { + return DOUBLE_TO_JSVALUE(@as(f64, @floatFromInt(val))); } - return INT64_TO_JSVALUE_SLOW(@ptrCast(*@import("./bindings.zig").JSGlobalObject, globalObject.?), val).asEncoded(); + return INT64_TO_JSVALUE_SLOW(@as(*@import("./bindings.zig").JSGlobalObject, @ptrCast(globalObject.?)), val).asEncoded(); } pub inline fn INT32_TO_JSVALUE(arg_val: i32) EncodedJSValue { - return .{ .asInt64 = @bitCast(i64, @as(c_ulonglong, 18446181123756130304) | @bitCast(c_ulonglong, @as(c_ulonglong, @bitCast(u32, arg_val)))) }; + return .{ .asInt64 = @as(i64, @bitCast(@as(c_ulonglong, 18446181123756130304) | @as(c_ulonglong, @bitCast(@as(c_ulonglong, @as(u32, @bitCast(arg_val))))))) }; } pub inline fn DOUBLE_TO_JSVALUE(arg_val: f64) EncodedJSValue { var res: EncodedJSValue = .{ .asDouble = arg_val }; - res.asInt64 += @as(c_longlong, 1) << @intCast(@import("std").math.Log2Int(c_longlong), 49); + res.asInt64 += @as(c_longlong, 1) << @as(@import("std").math.Log2Int(c_longlong), @intCast(49)); return res; } pub inline fn FLOAT_TO_JSVALUE(arg_val: f32) EncodedJSValue { var val = arg_val; - return DOUBLE_TO_JSVALUE(@floatCast(f64, val)); + return DOUBLE_TO_JSVALUE(@as(f64, @floatCast(val))); } pub inline fn BOOLEAN_TO_JSVALUE(arg_val: @"bool") EncodedJSValue { var val = arg_val; var res: EncodedJSValue = undefined; - res.asInt64 = @bitCast(i64, @as(c_longlong, if (@as(c_int, @intFromBool(val)) != 0) (@as(c_int, 2) | @as(c_int, 4)) | @as(c_int, 1) else (@as(c_int, 2) | @as(c_int, 4)) | @as(c_int, 0))); + res.asInt64 = @as(i64, @bitCast(@as(c_longlong, if (@as(c_int, @intFromBool(val)) != 0) (@as(c_int, 2) | @as(c_int, 4)) | @as(c_int, 1) else (@as(c_int, 2) | @as(c_int, 4)) | @as(c_int, 0)))); return res; } pub inline fn PTR_TO_JSVALUE(arg_ptr: ?*anyopaque) EncodedJSValue { var ptr = arg_ptr; var val: EncodedJSValue = undefined; - val.asInt64 = @intCast(i64, @intFromPtr(ptr)) + (@as(c_longlong, 1) << @intCast(@import("std").math.Log2Int(c_longlong), 49)); + val.asInt64 = @as(i64, @intCast(@intFromPtr(ptr))) + (@as(c_longlong, 1) << @as(@import("std").math.Log2Int(c_longlong), @intCast(49))); return val; } pub inline fn JSVALUE_TO_PTR(arg_val: EncodedJSValue) ?*anyopaque { var val = arg_val; - return @ptrFromInt(?*anyopaque, val.asInt64 - (@as(c_longlong, 1) << @intCast(@import("std").math.Log2Int(c_longlong), 49))); + return @as(?*anyopaque, @ptrFromInt(val.asInt64 - (@as(c_longlong, 1) << @as(@import("std").math.Log2Int(c_longlong), @intCast(49))))); } pub inline fn JSVALUE_TO_INT32(arg_val: EncodedJSValue) i32 { var val = arg_val; - return @bitCast(i32, @truncate(c_int, val.asInt64)); + return @as(i32, @bitCast(@as(c_int, @truncate(val.asInt64)))); } pub inline fn JSVALUE_TO_FLOAT(arg_val: EncodedJSValue) f32 { var val = arg_val; - return @floatCast(f32, JSVALUE_TO_DOUBLE(val)); + return @as(f32, @floatCast(JSVALUE_TO_DOUBLE(val))); } pub inline fn JSVALUE_TO_DOUBLE(arg_val: EncodedJSValue) f64 { var val = arg_val; - val.asInt64 -= comptime @as(c_longlong, 1) << @intCast(@import("std").math.Log2Int(c_longlong), 49); + val.asInt64 -= comptime @as(c_longlong, 1) << @as(@import("std").math.Log2Int(c_longlong), @intCast(49)); return val.asDouble; } pub inline fn JSVALUE_TO_BOOL(arg_val: EncodedJSValue) @"bool" { var val = arg_val; - return val.asInt64 == @bitCast(c_longlong, @as(c_longlong, (@as(c_int, 2) | @as(c_int, 4)) | @as(c_int, 1))); + return val.asInt64 == @as(c_longlong, @bitCast(@as(c_longlong, (@as(c_int, 2) | @as(c_int, 4)) | @as(c_int, 1)))); } pub extern fn JSFunctionCall(globalObject: ?*anyopaque, callFrame: ?*anyopaque) ?*anyopaque; pub const __block = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // (no file):27:9 diff --git a/src/bun.js/bindings/bindings.zig b/src/bun.js/bindings/bindings.zig index 5b627552b..46f76d21d 100644 --- a/src/bun.js/bindings/bindings.zig +++ b/src/bun.js/bindings/bindings.zig @@ -48,7 +48,7 @@ pub const JSObject = extern struct { pub fn Initializer(comptime Ctx: type, comptime func: fn (*Ctx, obj: *JSObject, global: *JSGlobalObject) void) type { return struct { pub fn call(this: ?*anyopaque, obj: [*c]JSObject, global: [*c]JSGlobalObject) callconv(.C) void { - @call(.always_inline, func, .{ @ptrCast(*Ctx, @alignCast(@alignOf(*Ctx), this.?)), obj.?, global.? }); + @call(.always_inline, func, .{ @as(*Ctx, @ptrCast(@alignCast(this.?))), obj.?, global.? }); } }; } @@ -166,7 +166,7 @@ pub const ZigString = extern struct { return Slice{ .allocator = NullableAllocator.init(allocator), .ptr = out.ptr, - .len = @truncate(u32, out.len), + .len = @as(u32, @truncate(out.len)), }; } @@ -180,9 +180,9 @@ pub const ZigString = extern struct { pub fn charAt(this: ZigString, offset: usize) u8 { if (this.is16Bit()) { - return @truncate(u8, this.utf16SliceAligned()[offset]); + return @as(u8, @truncate(this.utf16SliceAligned()[offset])); } else { - return @truncate(u8, this.slice()[offset]); + return @as(u8, @truncate(this.slice()[offset])); } } @@ -390,7 +390,7 @@ pub const ZigString = extern struct { } pub fn markStatic(this: *ZigString) void { - this.ptr = @ptrFromInt([*]const u8, @intFromPtr(this.ptr) | (1 << 60)); + this.ptr = @as([*]const u8, @ptrFromInt(@intFromPtr(this.ptr) | (1 << 60))); } pub fn isStatic(this: *const ZigString) bool { @@ -405,7 +405,7 @@ pub const ZigString = extern struct { pub fn init(allocator: std.mem.Allocator, input: []const u8) Slice { return .{ .ptr = input.ptr, - .len = @truncate(u32, input.len), + .len = @as(u32, @truncate(input.len)), .allocator = NullableAllocator.init(allocator), }; } @@ -425,7 +425,7 @@ pub const ZigString = extern struct { pub fn from(input: []u8, allocator: std.mem.Allocator) Slice { return .{ .ptr = input.ptr, - .len = @truncate(u32, input.len), + .len = @as(u32, @truncate(input.len)), .allocator = NullableAllocator.init(allocator), }; } @@ -433,7 +433,7 @@ pub const ZigString = extern struct { pub fn fromUTF8NeverFree(input: []const u8) Slice { return .{ .ptr = input.ptr, - .len = @truncate(u32, input.len), + .len = @as(u32, @truncate(input.len)), .allocator = .{}, }; } @@ -464,7 +464,7 @@ pub const ZigString = extern struct { pub fn cloneWithTrailingSlash(this: Slice, allocator: std.mem.Allocator) !Slice { var buf = try strings.cloneNormalizingSeparators(allocator, this.slice()); - return Slice{ .allocator = NullableAllocator.init(allocator), .ptr = buf.ptr, .len = @truncate(u32, buf.len) }; + return Slice{ .allocator = NullableAllocator.init(allocator), .ptr = buf.ptr, .len = @as(u32, @truncate(buf.len)) }; } pub fn cloneZ(this: Slice, allocator: std.mem.Allocator) !Slice { @@ -503,7 +503,7 @@ pub const ZigString = extern struct { } pub fn mut(this: Slice) []u8 { - return @ptrFromInt([*]u8, @intFromPtr(this.ptr))[0..this.len]; + return @as([*]u8, @ptrFromInt(@intFromPtr(this.ptr)))[0..this.len]; } /// Does nothing if the slice is not allocated @@ -534,7 +534,7 @@ pub const ZigString = extern struct { } } - return @ptrCast([*]align(1) const u16, untagged(this._unsafe_ptr_do_not_use))[0..this.len]; + return @as([*]align(1) const u16, @ptrCast(untagged(this._unsafe_ptr_do_not_use)))[0..this.len]; } pub inline fn utf16SliceAligned(this: *const ZigString) []const u16 { @@ -544,7 +544,7 @@ pub const ZigString = extern struct { } } - return @ptrCast([*]const u16, @alignCast(@alignOf(u16), untagged(this._unsafe_ptr_do_not_use)))[0..this.len]; + return @as([*]const u16, @ptrCast(@alignCast(untagged(this._unsafe_ptr_do_not_use))))[0..this.len]; } pub inline fn isEmpty(this: *const ZigString) bool { @@ -634,7 +634,7 @@ pub const ZigString = extern struct { /// Globally-allocated memory only pub fn from16(slice_: [*]const u16, len: usize) ZigString { - var str = init(@ptrCast([*]const u8, slice_)[0..len]); + var str = init(@as([*]const u8, @ptrCast(slice_))[0..len]); str.markUTF16(); str.mark(); str.assertGlobal(); @@ -665,11 +665,11 @@ pub const ZigString = extern struct { } pub fn markUTF8(this: *ZigString) void { - this._unsafe_ptr_do_not_use = @ptrFromInt([*]const u8, @intFromPtr(this._unsafe_ptr_do_not_use) | (1 << 61)); + this._unsafe_ptr_do_not_use = @as([*]const u8, @ptrFromInt(@intFromPtr(this._unsafe_ptr_do_not_use) | (1 << 61))); } pub fn markUTF16(this: *ZigString) void { - this._unsafe_ptr_do_not_use = @ptrFromInt([*]const u8, @intFromPtr(this._unsafe_ptr_do_not_use) | (1 << 63)); + this._unsafe_ptr_do_not_use = @as([*]const u8, @ptrFromInt(@intFromPtr(this._unsafe_ptr_do_not_use) | (1 << 63))); } pub fn setOutputEncoding(this: *ZigString) void { @@ -688,7 +688,7 @@ pub const ZigString = extern struct { pub const mark = markGlobal; pub inline fn markGlobal(this: *ZigString) void { - this._unsafe_ptr_do_not_use = @ptrFromInt([*]const u8, @intFromPtr(this._unsafe_ptr_do_not_use) | (1 << 62)); + this._unsafe_ptr_do_not_use = @as([*]const u8, @ptrFromInt(@intFromPtr(this._unsafe_ptr_do_not_use) | (1 << 62))); } pub fn format(self: ZigString, comptime _: []const u8, _: std.fmt.FormatOptions, writer: anytype) !void { @@ -714,7 +714,7 @@ pub const ZigString = extern struct { inline fn untagged(ptr: [*]const u8) [*]const u8 { // this can be null ptr, so long as it's also a 0 length string @setRuntimeSafety(false); - return @ptrFromInt([*]const u8, @truncate(u53, @intFromPtr(ptr))); + return @as([*]const u8, @ptrFromInt(@as(u53, @truncate(@intFromPtr(ptr))))); } pub fn slice(this: *const ZigString) []const u8 { @@ -738,14 +738,14 @@ pub const ZigString = extern struct { var buffer = this.toOwnedSlice(allocator) catch unreachable; return Slice{ .ptr = buffer.ptr, - .len = @truncate(u32, buffer.len), + .len = @as(u32, @truncate(buffer.len)), .allocator = NullableAllocator.init(allocator), }; } return Slice{ .ptr = untagged(this._unsafe_ptr_do_not_use), - .len = @truncate(u32, this.len), + .len = @as(u32, @truncate(this.len)), }; } @@ -759,7 +759,7 @@ pub const ZigString = extern struct { return Slice{ .allocator = NullableAllocator.init(allocator), .ptr = buffer.ptr, - .len = @truncate(u32, buffer.len), + .len = @as(u32, @truncate(buffer.len)), }; } @@ -768,13 +768,13 @@ pub const ZigString = extern struct { return Slice{ .allocator = NullableAllocator.init(allocator), .ptr = buffer.ptr, - .len = @truncate(u32, buffer.len), + .len = @as(u32, @truncate(buffer.len)), }; } return Slice{ .ptr = untagged(this._unsafe_ptr_do_not_use), - .len = @truncate(u32, this.len), + .len = @as(u32, @truncate(this.len)), }; } @@ -785,7 +785,7 @@ pub const ZigString = extern struct { return Slice{ .allocator = NullableAllocator.init(allocator), .ptr = buffer.ptr, - .len = @truncate(u32, buffer.len), + .len = @as(u32, @truncate(buffer.len)), }; } @@ -797,14 +797,14 @@ pub const ZigString = extern struct { var buffer = this.toOwnedSliceZ(allocator) catch unreachable; return Slice{ .ptr = buffer.ptr, - .len = @truncate(u32, buffer.len), + .len = @as(u32, @truncate(buffer.len)), .allocator = NullableAllocator.init(allocator), }; } return Slice{ .ptr = untagged(this._unsafe_ptr_do_not_use), - .len = @truncate(u32, this.len), + .len = @as(u32, @truncate(this.len)), }; } @@ -892,7 +892,7 @@ pub const ZigString = extern struct { } return if (this.is16Bit()) - C_API.JSStringCreateWithCharactersNoCopy(@ptrCast([*]const u16, @alignCast(@alignOf([*]const u16), untagged(this._unsafe_ptr_do_not_use))), this.len) + C_API.JSStringCreateWithCharactersNoCopy(@as([*]const u16, @ptrCast(@alignCast(untagged(this._unsafe_ptr_do_not_use)))), this.len) else C_API.JSStringCreateStatic(untagged(this._unsafe_ptr_do_not_use), this.len); } @@ -1019,7 +1019,7 @@ pub const DOMFormData = opaque { const Wrapper = struct { const cb = callback; pub fn run(c: *anyopaque, str: *ZigString) callconv(.C) void { - cb(@ptrCast(Ctx, c), str.*); + cb(@as(Ctx, @ptrCast(c)), str.*); } }; @@ -1631,11 +1631,11 @@ pub const Sizes = @import("../bindings/sizes.zig"); pub const JSUint8Array = opaque { pub const name = "Uint8Array_alias"; pub fn ptr(this: *JSUint8Array) [*]u8 { - return @ptrFromInt(*[*]u8, @intFromPtr(this) + Sizes.Bun_FFI_PointerOffsetToTypedArrayVector).*; + return @as(*[*]u8, @ptrFromInt(@intFromPtr(this) + Sizes.Bun_FFI_PointerOffsetToTypedArrayVector)).*; } pub fn len(this: *JSUint8Array) usize { - return @ptrFromInt(*usize, @intFromPtr(this) + Sizes.Bun_FFI_PointerOffsetToTypedArrayLength).*; + return @as(*usize, @ptrFromInt(@intFromPtr(this) + Sizes.Bun_FFI_PointerOffsetToTypedArrayLength)).*; } pub fn slice(this: *JSUint8Array) []u8 { @@ -1876,7 +1876,7 @@ pub fn PromiseCallback(comptime Type: type, comptime CallbackFunction: fn (*Type arguments: [*]const JSValue, arguments_len: usize, ) callconv(.C) JSValue { - return CallbackFunction(@ptrCast(*Type, @alignCast(@alignOf(*Type), ctx.?)), globalThis, arguments[0..arguments_len]) catch |err| brk: { + return CallbackFunction(@as(*Type, @ptrCast(@alignCast(ctx.?))), globalThis, arguments[0..arguments_len]) catch |err| brk: { break :brk ZigString.init(bun.asByteSlice(@errorName(err))).toErrorInstance(globalThis); }; } @@ -1907,7 +1907,7 @@ pub const AbortSignal = extern opaque { } }; - return this.addListener(@ptrCast(?*anyopaque, ctx), Wrapper.callback); + return this.addListener(@as(?*anyopaque, @ptrCast(ctx)), Wrapper.callback); } pub fn addListener( @@ -2824,7 +2824,7 @@ pub const JSGlobalObject = extern struct { const cppFn = shim.cppFn; pub fn ref(this: *JSGlobalObject) C_API.JSContextRef { - return @ptrCast(C_API.JSContextRef, this); + return @as(C_API.JSContextRef, @ptrCast(this)); } pub const ctx = ref; @@ -2866,16 +2866,16 @@ pub const JSGlobalObject = extern struct { // you most likely need to run // make clean-jsc-bindings // make bindings -j10 - const assertion = this.bunVM_() == @ptrCast(*anyopaque, JSC.VirtualMachine.get()); + const assertion = this.bunVM_() == @as(*anyopaque, @ptrCast(JSC.VirtualMachine.get())); if (!assertion) @breakpoint(); std.debug.assert(assertion); } - return @ptrCast(*JSC.VirtualMachine, @alignCast(std.meta.alignment(JSC.VirtualMachine), this.bunVM_())); + return @as(*JSC.VirtualMachine, @ptrCast(@alignCast(this.bunVM_()))); } /// We can't do the threadlocal check when queued from another thread pub fn bunVMConcurrently(this: *JSGlobalObject) *JSC.VirtualMachine { - return @ptrCast(*JSC.VirtualMachine, @alignCast(@alignOf(JSC.VirtualMachine), this.bunVM_())); + return @as(*JSC.VirtualMachine, @ptrCast(@alignCast(this.bunVM_()))); } pub fn handleRejectedPromises(this: *JSGlobalObject) void { @@ -2943,7 +2943,7 @@ pub const JSArrayIterator = struct { return .{ .array = value, .global = global, - .len = @truncate(u32, value.getLength(global)), + .len = @as(u32, @truncate(value.getLength(global))), }; } @@ -3014,10 +3014,10 @@ pub const JSMap = opaque { pub const JSValueReprInt = i64; pub const JSValue = enum(JSValueReprInt) { zero = 0, - undefined = @bitCast(JSValueReprInt, @as(i64, 0xa)), - null = @bitCast(JSValueReprInt, @as(i64, 0x2)), - true = @bitCast(JSValueReprInt, @as(i64, 0x4)), - false = @bitCast(JSValueReprInt, @as(i64, 0x6)), + undefined = @as(JSValueReprInt, @bitCast(@as(i64, 0xa))), + null = @as(JSValueReprInt, @bitCast(@as(i64, 0x2))), + true = @as(JSValueReprInt, @bitCast(@as(i64, 0x4))), + false = @as(JSValueReprInt, @bitCast(@as(i64, 0x6))), _, pub const Type = JSValueReprInt; @@ -3361,7 +3361,7 @@ pub const JSValue = enum(JSValueReprInt) { }; pub inline fn cast(ptr: anytype) JSValue { - return @enumFromInt(JSValue, @bitCast(i64, @intFromPtr(ptr))); + return @as(JSValue, @enumFromInt(@as(i64, @bitCast(@intFromPtr(ptr))))); } pub fn coerceToInt32(this: JSValue, globalThis: *JSC.JSGlobalObject) i32 { @@ -3426,7 +3426,7 @@ pub const JSValue = enum(JSValueReprInt) { } if (this.isNumber()) { - return @truncate(i32, this.coerceDoubleTruncatingIntoInt64()); + return @as(i32, @truncate(this.coerceDoubleTruncatingIntoInt64())); } return this.coerceToInt32(globalThis); @@ -3441,16 +3441,16 @@ pub const JSValue = enum(JSValueReprInt) { return switch (comptime T) { u32 => toU32(this), u16 => toU16(this), - c_uint => @intCast(c_uint, toU32(this)), - c_int => @intCast(c_int, toInt32(this)), + c_uint => @as(c_uint, @intCast(toU32(this))), + c_int => @as(c_int, @intCast(toInt32(this))), ?AnyPromise => asAnyPromise(this), - u52 => @truncate(u52, @intCast(u64, @max(this.toInt64(), 0))), - i52 => @truncate(i52, @intCast(i52, this.toInt64())), + u52 => @as(u52, @truncate(@as(u64, @intCast(@max(this.toInt64(), 0))))), + i52 => @as(i52, @truncate(@as(i52, @intCast(this.toInt64())))), u64 => toUInt64NoTruncate(this), - u8 => @truncate(u8, toU32(this)), - i16 => @truncate(i16, toInt32(this)), - i8 => @truncate(i8, toInt32(this)), - i32 => @truncate(i32, toInt32(this)), + u8 => @as(u8, @truncate(toU32(this))), + i16 => @as(i16, @truncate(toInt32(this))), + i8 => @as(i8, @truncate(toInt32(this))), + i32 => @as(i32, @truncate(toInt32(this))), i64 => this.toInt64(), bool => this.toBoolean(), else => @compileError("Not implemented yet"), @@ -3473,9 +3473,9 @@ pub const JSValue = enum(JSValueReprInt) { return JSC.C.JSObjectCallAsFunctionReturnValue( globalThis, this.asObjectRef(), - @ptrCast(JSC.C.JSValueRef, globalThis), + @as(JSC.C.JSValueRef, @ptrCast(globalThis)), args.len, - @ptrCast(?[*]const JSC.C.JSValueRef, args.ptr), + @as(?[*]const JSC.C.JSValueRef, @ptrCast(args.ptr)), ); } @@ -3484,9 +3484,9 @@ pub const JSValue = enum(JSValueReprInt) { return JSC.C.JSObjectCallAsFunctionReturnValue( globalThis, this.asObjectRef(), - @ptrCast(JSC.C.JSValueRef, thisValue.asNullableVoid()), + @as(JSC.C.JSValueRef, @ptrCast(thisValue.asNullableVoid())), args.len, - @ptrCast(?[*]const JSC.C.JSValueRef, args.ptr), + @as(?[*]const JSC.C.JSValueRef, @ptrCast(args.ptr)), ); } @@ -3625,7 +3625,7 @@ pub const JSValue = enum(JSValueReprInt) { pub fn createBufferFromLength(globalObject: *JSGlobalObject, len: usize) JSValue { JSC.markBinding(@src()); - return JSBuffer__bufferFromLength(globalObject, @intCast(i64, len)); + return JSBuffer__bufferFromLength(globalObject, @as(i64, @intCast(len))); } pub fn jestSnapshotPrettyFormat(this: JSValue, out: *MutableString, globalObject: *JSGlobalObject) !void { @@ -3643,7 +3643,7 @@ pub const JSValue = enum(JSValueReprInt) { JestPrettyFormat.format( .Debug, globalObject, - @ptrCast([*]const JSValue, &this), + @as([*]const JSValue, @ptrCast(&this)), 1, Writer, Writer, @@ -3704,7 +3704,7 @@ pub const JSValue = enum(JSValueReprInt) { JSC.ZigConsoleClient.format( .Debug, globalObject, - @ptrCast([*]const JSValue, &this), + @as([*]const JSValue, @ptrCast(&this)), 1, Writer, Writer, @@ -3745,12 +3745,12 @@ pub const JSValue = enum(JSValueReprInt) { return switch (comptime Number) { JSValue => number, f32, f64 => jsNumberFromDouble(@as(f64, number)), - c_ushort, u8, i16, i32, c_int, i8, u16 => jsNumberFromInt32(@intCast(i32, number)), - u32, u52, c_uint, i64 => jsNumberFromInt64(@intCast(i64, number)), - usize, u64 => jsNumberFromUint64(@intCast(u64, number)), + c_ushort, u8, i16, i32, c_int, i8, u16 => jsNumberFromInt32(@as(i32, @intCast(number))), + u32, u52, c_uint, i64 => jsNumberFromInt64(@as(i64, @intCast(number))), + usize, u64 => jsNumberFromUint64(@as(u64, @intCast(number))), comptime_int => switch (number) { - 0...std.math.maxInt(i32) => jsNumberFromInt32(@intCast(i32, number)), - else => jsNumberFromInt64(@intCast(i64, number)), + 0...std.math.maxInt(i32) => jsNumberFromInt32(@as(i32, @intCast(number))), + else => jsNumberFromInt64(@as(i64, @intCast(number))), }, else => @compileError("Type transformation missing for number of type: " ++ @typeName(Number)), }; @@ -3860,10 +3860,10 @@ pub const JSValue = enum(JSValueReprInt) { pub fn jsNumberFromInt64(i: i64) JSValue { if (i <= std.math.maxInt(i32)) { - return jsNumberFromInt32(@intCast(i32, i)); + return jsNumberFromInt32(@as(i32, @intCast(i))); } - return jsNumberFromDouble(@floatFromInt(f64, @truncate(i52, i))); + return jsNumberFromDouble(@as(f64, @floatFromInt(@as(i52, @truncate(i))))); } pub inline fn toJS(this: JSValue, _: *const JSGlobalObject) JSValue { @@ -3872,10 +3872,10 @@ pub const JSValue = enum(JSValueReprInt) { pub fn jsNumberFromUint64(i: u64) JSValue { if (i <= std.math.maxInt(i32)) { - return jsNumberFromInt32(@intCast(i32, i)); + return jsNumberFromInt32(@as(i32, @intCast(i))); } - return jsNumberFromDouble(@floatFromInt(f64, @intCast(i52, @truncate(u51, i)))); + return jsNumberFromDouble(@as(f64, @floatFromInt(@as(i52, @intCast(@as(u51, @truncate(i))))))); } pub fn coerceDoubleTruncatingIntoInt64(this: JSValue) i64 { @@ -3889,9 +3889,9 @@ pub const JSValue = enum(JSValueReprInt) { return if (double_value < 0) @as(i64, std.math.minInt(i64)) else @as(i64, std.math.maxInt(i64)); } - return @intFromFloat( + return @as( i64, - double_value, + @intFromFloat(double_value), ); } @@ -4071,7 +4071,7 @@ pub const JSValue = enum(JSValueReprInt) { pub inline fn isCell(this: JSValue) bool { return switch (this) { .zero, .undefined, .null, .true, .false => false, - else => (@bitCast(u64, @intFromEnum(this)) & FFI.NotCellMask) == 0, + else => (@as(u64, @bitCast(@intFromEnum(this))) & FFI.NotCellMask) == 0, }; } @@ -4297,7 +4297,7 @@ pub const JSValue = enum(JSValueReprInt) { } pub fn get(this: JSValue, global: *JSGlobalObject, property: []const u8) ?JSValue { - const value = getIfPropertyExistsImpl(this, global, property.ptr, @intCast(u32, property.len)); + const value = getIfPropertyExistsImpl(this, global, property.ptr, @as(u32, @intCast(property.len))); return if (@intFromEnum(value) != 0) value else return null; } @@ -4547,7 +4547,7 @@ pub const JSValue = enum(JSValueReprInt) { pub fn asNumber(this: JSValue) f64 { if (this.isInt32()) { - return @floatFromInt(f64, this.asInt32()); + return @as(f64, @floatFromInt(this.asInt32())); } if (isNumber(this)) { @@ -4570,15 +4570,15 @@ pub const JSValue = enum(JSValueReprInt) { } pub fn asPtr(this: JSValue, comptime Pointer: type) *Pointer { - return @ptrFromInt(*Pointer, this.asPtrAddress()); + return @as(*Pointer, @ptrFromInt(this.asPtrAddress())); } pub fn fromPtrAddress(addr: anytype) JSValue { - return jsNumber(@floatFromInt(f64, @bitCast(usize, @as(usize, addr)))); + return jsNumber(@as(f64, @floatFromInt(@as(usize, @bitCast(@as(usize, addr)))))); } pub fn asPtrAddress(this: JSValue) usize { - return @bitCast(usize, @intFromFloat(usize, this.asDouble())); + return @as(usize, @bitCast(@as(usize, @intFromFloat(this.asDouble())))); } pub fn fromPtr(addr: anytype) JSValue { @@ -4605,7 +4605,7 @@ pub const JSValue = enum(JSValueReprInt) { if (comptime bun.Environment.allow_assert) { std.debug.assert(this.isNumber()); } - return @intFromFloat(i64, @max(@min(this.asDouble(), std.math.maxInt(i52)), std.math.minInt(i52))); + return @as(i64, @intFromFloat(@max(@min(this.asDouble(), std.math.maxInt(i52)), std.math.minInt(i52)))); } pub fn toInt32(this: JSValue) i32 { @@ -4614,7 +4614,7 @@ pub const JSValue = enum(JSValueReprInt) { } if (this.isNumber()) { - return @truncate(i32, this.asInt52()); + return @as(i32, @truncate(this.asInt52())); } if (comptime bun.Environment.allow_assert) { @@ -4632,11 +4632,11 @@ pub const JSValue = enum(JSValueReprInt) { } pub inline fn toU16(this: JSValue) u16 { - return @truncate(u16, @max(this.toInt32(), 0)); + return @as(u16, @truncate(@max(this.toInt32(), 0))); } pub inline fn toU32(this: JSValue) u32 { - return @intCast(u32, @min(@max(this.toInt64(), 0), std.math.maxInt(u32))); + return @as(u32, @intCast(@min(@max(this.toInt64(), 0), std.math.maxInt(u32)))); } /// This function supports: @@ -4657,7 +4657,7 @@ pub const JSValue = enum(JSValueReprInt) { return 0; } - return @intFromFloat(u64, @max(@min(len, std.math.maxInt(i52)), 0)); + return @as(u64, @intFromFloat(@max(@min(len, std.math.maxInt(i52)), 0))); } /// This function supports: @@ -4678,7 +4678,7 @@ pub const JSValue = enum(JSValueReprInt) { return null; } - return @intFromFloat(u64, @max(@min(len, std.math.maxInt(i52)), 0)); + return @as(u64, @intFromFloat(@max(@min(len, std.math.maxInt(i52)), 0))); } /// Do not use this directly! @@ -4723,19 +4723,19 @@ pub const JSValue = enum(JSValueReprInt) { } pub inline fn asRef(this: JSValue) C_API.JSValueRef { - return @ptrFromInt(C_API.JSValueRef, @bitCast(usize, @intFromEnum(this))); + return @as(C_API.JSValueRef, @ptrFromInt(@as(usize, @bitCast(@intFromEnum(this))))); } pub inline fn c(this: C_API.JSValueRef) JSValue { - return @enumFromInt(JSValue, @bitCast(JSValue.Type, @intFromPtr(this))); + return @as(JSValue, @enumFromInt(@as(JSValue.Type, @bitCast(@intFromPtr(this))))); } pub inline fn fromRef(this: C_API.JSValueRef) JSValue { - return @enumFromInt(JSValue, @bitCast(JSValue.Type, @intFromPtr(this))); + return @as(JSValue, @enumFromInt(@as(JSValue.Type, @bitCast(@intFromPtr(this))))); } pub inline fn asObjectRef(this: JSValue) C_API.JSObjectRef { - return @ptrCast(C_API.JSObjectRef, this.asVoid()); + return @as(C_API.JSObjectRef, @ptrCast(this.asVoid())); } /// When the GC sees a JSValue referenced in the stack @@ -4743,11 +4743,11 @@ pub const JSValue = enum(JSValueReprInt) { /// This mimicks the implementation in JavaScriptCore's C++ pub inline fn ensureStillAlive(this: JSValue) void { if (this.isEmpty() or this.isNumber() or this.isBoolean() or this.isUndefinedOrNull()) return; - std.mem.doNotOptimizeAway(@ptrCast(C_API.JSObjectRef, this.asVoid())); + std.mem.doNotOptimizeAway(@as(C_API.JSObjectRef, @ptrCast(this.asVoid()))); } pub inline fn asNullableVoid(this: JSValue) ?*anyopaque { - return @ptrFromInt(?*anyopaque, @bitCast(usize, @intFromEnum(this))); + return @as(?*anyopaque, @ptrFromInt(@as(usize, @bitCast(@intFromEnum(this))))); } pub inline fn asVoid(this: JSValue) *anyopaque { @@ -4992,7 +4992,7 @@ pub const VM = extern struct { const callback_ = callback; const Wrapper = struct { pub fn run(ptr_: *anyopaque) callconv(.C) void { - var ptr__ = @ptrCast(*Ptr, @alignCast(@alignOf(Ptr), ptr_)); + var ptr__ = @as(*Ptr, @ptrCast(@alignCast(ptr_))); callback_(ptr__); } }; @@ -5190,11 +5190,11 @@ pub const CallFrame = opaque { pub const name = "JSC::CallFrame"; pub fn argumentsPtr(self: *const CallFrame) [*]const JSC.JSValue { - return @ptrCast([*]const JSC.JSValue, @alignCast(alignment, self)) + Sizes.Bun_CallFrame__firstArgument; + return @as([*]align(alignment) const JSC.JSValue, @ptrCast(@alignCast(self))) + Sizes.Bun_CallFrame__firstArgument; } pub fn callee(self: *const CallFrame) JSC.JSValue { - return (@ptrCast([*]const JSC.JSValue, @alignCast(alignment, self)) + Sizes.Bun_CallFrame__callee)[0]; + return (@as([*]align(alignment) const JSC.JSValue, @ptrCast(@alignCast(self))) + Sizes.Bun_CallFrame__callee)[0]; } fn Arguments(comptime max: usize) type { @@ -5239,11 +5239,11 @@ pub const CallFrame = opaque { } pub fn this(self: *const CallFrame) JSC.JSValue { - return (@ptrCast([*]const JSC.JSValue, @alignCast(alignment, self)) + Sizes.Bun_CallFrame__thisArgument)[0]; + return (@as([*]align(alignment) const JSC.JSValue, @ptrCast(@alignCast(self))) + Sizes.Bun_CallFrame__thisArgument)[0]; } pub fn argumentsCount(self: *const CallFrame) usize { - return @intCast(usize, (@ptrCast([*]const JSC.JSValue, @alignCast(alignment, self)) + Sizes.Bun_CallFrame__argumentCountIncludingThis)[0].asInt32() - 1); + return @as(usize, @intCast((@as([*]align(alignment) const JSC.JSValue, @ptrCast(@alignCast(self))) + Sizes.Bun_CallFrame__argumentCountIncludingThis)[0].asInt32() - 1)); } }; @@ -5286,7 +5286,7 @@ const DeinitFunction = *const fn (ctx: *anyopaque, buffer: [*]u8, len: usize) ca pub const JSArray = struct { pub fn from(globalThis: *JSGlobalObject, arguments: []const JSC.JSValue) JSValue { - return JSC.JSValue.c(JSC.C.JSObjectMakeArray(globalThis, arguments.len, @ptrCast(?[*]const JSC.C.JSObjectRef, arguments.ptr), null)); + return JSC.JSValue.c(JSC.C.JSObjectMakeArray(globalThis, arguments.len, @as(?[*]const JSC.C.JSObjectRef, @ptrCast(arguments.ptr)), null)); } }; @@ -5326,7 +5326,7 @@ const private = struct { pub fn NewFunctionPtr(globalObject: *JSGlobalObject, symbolName: ?*const ZigString, argCount: u32, comptime functionPointer: anytype, strong: bool) *anyopaque { JSC.markBinding(@src()); - return private.Bun__CreateFFIFunction(globalObject, symbolName, argCount, @ptrCast(*const anyopaque, &functionPointer), strong); + return private.Bun__CreateFFIFunction(globalObject, symbolName, argCount, @as(*const anyopaque, @ptrCast(&functionPointer)), strong); } pub fn NewFunction( @@ -5373,7 +5373,7 @@ pub fn NewFunctionWithData( globalObject, symbolName, argCount, - @ptrCast(*const anyopaque, &functionPointer), + @as(*const anyopaque, @ptrCast(&functionPointer)), strong, data, ); @@ -5476,7 +5476,7 @@ pub fn Thenable(comptime name: []const u8, comptime Then: type, comptime onResol ) callconv(.C) void { @setRuntimeSafety(false); const args_list = callframe.?.arguments(8); - onResolve(@ptrCast(*Then, @alignCast(std.meta.alignment(Then), args_list.ptr[args_list.len - 1].asEncoded().asPtr)), globalThis, args_list.ptr[0]); + onResolve(@as(*Then, @ptrCast(@alignCast(args_list.ptr[args_list.len - 1].asEncoded().asPtr))), globalThis, args_list.ptr[0]); } pub fn reject( @@ -5485,7 +5485,7 @@ pub fn Thenable(comptime name: []const u8, comptime Then: type, comptime onResol ) callconv(.C) void { @setRuntimeSafety(false); const args_list = callframe.?.arguments(8); - onReject(@ptrCast(*Then, @alignCast(std.meta.alignment(Then), args_list.ptr[args_list.len - 1].asEncoded().asPtr)), globalThis, args_list.ptr[0]); + onReject(@as(*Then, @ptrCast(@alignCast(args_list.ptr[args_list.len - 1].asEncoded().asPtr))), globalThis, args_list.ptr[0]); } pub fn then(ctx: *Then, this: JSValue, globalThis: *JSGlobalObject) void { @@ -5532,7 +5532,7 @@ pub fn JSPropertyIterator(comptime options: JSPropertyIteratorOptions) type { const array_ref = JSC.C.JSObjectCopyPropertyNames(global, object); return .{ .array_ref = array_ref, - .len = @truncate(u32, JSC.C.JSPropertyNameArrayGetCount(array_ref)), + .len = @as(u32, @truncate(JSC.C.JSPropertyNameArrayGetCount(array_ref))), .object = if (comptime options.include_value) object else .{}, .global = if (comptime options.include_value) global else .{}, .value = undefined, diff --git a/src/bun.js/bindings/exports.zig b/src/bun.js/bindings/exports.zig index 8fed85c4a..6ec8ff2b9 100644 --- a/src/bun.js/bindings/exports.zig +++ b/src/bun.js/bindings/exports.zig @@ -119,7 +119,7 @@ pub const ErrorCode = enum(ErrorCodeInt) { _, pub inline fn from(code: anyerror) ErrorCode { - return @enumFromInt(ErrorCode, @intFromError(code)); + return @as(ErrorCode, @enumFromInt(@intFromError(code))); } pub const ParserError = @intFromEnum(ErrorCode.from(error.ParserError)); @@ -241,7 +241,7 @@ pub const ResolvedSource = extern struct { const Mimalloc = @import("../../allocators/mimalloc.zig"); export fn ZigString__free(raw: [*]const u8, len: usize, allocator_: ?*anyopaque) void { - var allocator: std.mem.Allocator = @ptrCast(*std.mem.Allocator, @alignCast(@alignOf(*std.mem.Allocator), allocator_ orelse return)).*; + var allocator: std.mem.Allocator = @as(*std.mem.Allocator, @ptrCast(@alignCast(allocator_ orelse return))).*; var ptr = ZigString.init(raw[0..len]).slice().ptr; if (comptime Environment.allow_assert) { std.debug.assert(Mimalloc.mi_is_in_heap_region(ptr)); @@ -252,7 +252,7 @@ export fn ZigString__free(raw: [*]const u8, len: usize, allocator_: ?*anyopaque) } export fn ZigString__free_global(ptr: [*]const u8, len: usize) void { - var untagged = @ptrFromInt(*anyopaque, @intFromPtr(ZigString.init(ptr[0..len]).slice().ptr)); + var untagged = @as(*anyopaque, @ptrFromInt(@intFromPtr(ZigString.init(ptr[0..len]).slice().ptr))); if (comptime Environment.allow_assert) { std.debug.assert(Mimalloc.mi_is_in_heap_region(ptr)); } @@ -466,7 +466,7 @@ pub const ZigStackTrace = extern struct { var source_line_len = source_lines_iter.getLength(); if (source_line_len > 0) { - var source_lines = try allocator.alloc(Api.SourceLine, @intCast(usize, @max(source_lines_iter.i + 1, 0))); + var source_lines = try allocator.alloc(Api.SourceLine, @as(usize, @intCast(@max(source_lines_iter.i + 1, 0)))); var source_line_buf = try allocator.alloc(u8, source_line_len); source_lines_iter = this.sourceLineIterator(); var remain_buf = source_line_buf[0..]; @@ -521,7 +521,7 @@ pub const ZigStackTrace = extern struct { pub fn getLength(this: *SourceLineIterator) usize { var count: usize = 0; - for (this.trace.source_lines_ptr[0..@intCast(usize, this.i + 1)]) |*line| { + for (this.trace.source_lines_ptr[0..@as(usize, @intCast(this.i + 1))]) |*line| { count += line.length(); } @@ -536,9 +536,9 @@ pub const ZigStackTrace = extern struct { pub fn next(this: *SourceLineIterator) ?SourceLine { if (this.i < 0) return null; - const source_line = this.trace.source_lines_ptr[@intCast(usize, this.i)]; + const source_line = this.trace.source_lines_ptr[@as(usize, @intCast(this.i))]; const result = SourceLine{ - .line = this.trace.source_lines_numbers[@intCast(usize, this.i)], + .line = this.trace.source_lines_numbers[@as(usize, @intCast(this.i))], .text = source_line.toUTF8(bun.default_allocator), }; this.i -= 1; @@ -553,7 +553,7 @@ pub const ZigStackTrace = extern struct { i = j; } } - return SourceLineIterator{ .trace = this, .i = @intCast(i16, i) }; + return SourceLineIterator{ .trace = this, .i = @as(i16, @intCast(i)) }; } }; @@ -594,7 +594,7 @@ pub const ZigStackFrame = extern struct { frame.position.column_stop = this.position.column_stop; frame.position.expression_start = this.position.expression_start; frame.position.expression_stop = this.position.expression_stop; - frame.scope = @enumFromInt(Api.StackFrameScope, @intFromEnum(this.code_type)); + frame.scope = @as(Api.StackFrameScope, @enumFromInt(@intFromEnum(this.code_type))); return frame; } @@ -844,7 +844,7 @@ pub const ZigException = extern struct { pub fn zigException(this: *Holder) *ZigException { if (!this.loaded) { this.zig_exception = ZigException{ - .code = @enumFromInt(JSErrorCode, 255), + .code = @as(JSErrorCode, @enumFromInt(255)), .runtime_type = JSRuntimeType.Nothing, .name = String.empty, .message = String.empty, @@ -1579,7 +1579,7 @@ pub const ZigConsoleClient = struct { var writer = WrappedWriter(Writer){ .ctx = writer_ }; var slice = slice_; var i: u32 = 0; - var len: u32 = @truncate(u32, slice.len); + var len: u32 = @as(u32, @truncate(slice.len)); var any_non_ascii = false; while (i < len) : (i += 1) { switch (slice[i]) { @@ -1606,7 +1606,7 @@ pub const ZigConsoleClient = struct { any_non_ascii = false; slice = slice[@min(slice.len, i + 1)..]; i = 0; - len = @truncate(u32, slice.len); + len = @as(u32, @truncate(slice.len)); const next_value = this.remaining_values[0]; this.remaining_values = this.remaining_values[1..]; switch (token) { @@ -2023,7 +2023,7 @@ pub const ZigConsoleClient = struct { i = -i; } const digits = if (i != 0) - bun.fmt.fastDigitCount(@intCast(usize, i)) + @as(usize, @intFromBool(is_negative)) + bun.fmt.fastDigitCount(@as(usize, @intCast(i))) + @as(usize, @intFromBool(is_negative)) else 1; this.addForNewLine(digits); @@ -2134,7 +2134,7 @@ pub const ZigConsoleClient = struct { writer.print(comptime Output.prettyFmt("<cyan>[Getter]<r>", enable_ansi_colors), .{}); }, .Array => { - const len = @truncate(u32, value.getLength(this.globalThis)); + const len = @as(u32, @truncate(value.getLength(this.globalThis))); if (len == 0) { writer.writeAll("[]"); this.addForNewLine(2); @@ -2265,9 +2265,9 @@ pub const ZigConsoleClient = struct { // this case should never happen return this.printAs(.Undefined, Writer, writer_, .undefined, .Cell, enable_ansi_colors); } else if (value.as(JSC.API.Bun.Timer.TimerObject)) |timer| { - this.addForNewLine("Timeout(# ) ".len + bun.fmt.fastDigitCount(@intCast(u64, @max(timer.id, 0)))); + this.addForNewLine("Timeout(# ) ".len + bun.fmt.fastDigitCount(@as(u64, @intCast(@max(timer.id, 0))))); if (timer.kind == .setInterval) { - this.addForNewLine("repeats ".len + bun.fmt.fastDigitCount(@intCast(u64, @max(timer.id, 0)))); + this.addForNewLine("repeats ".len + bun.fmt.fastDigitCount(@as(u64, @intCast(@max(timer.id, 0))))); writer.print(comptime Output.prettyFmt("<r><blue>Timeout<r> <d>(#<yellow>{d}<r><d>, repeats)<r>", enable_ansi_colors), .{ timer.id, }); @@ -2342,7 +2342,7 @@ pub const ZigConsoleClient = struct { writer.writeAll("Promise { " ++ comptime Output.prettyFmt("<r><cyan>", enable_ansi_colors)); - switch (JSPromise.status(@ptrCast(*JSPromise, value.asObjectRef().?), this.globalThis.vm())) { + switch (JSPromise.status(@as(*JSPromise, @ptrCast(value.asObjectRef().?)), this.globalThis.vm())) { JSPromise.Status.Pending => { writer.writeAll("<pending>"); }, @@ -2751,7 +2751,7 @@ pub const ZigConsoleClient = struct { var j: usize = 0; while (j < length) : (j += 1) { - const child = JSC.JSObject.getIndex(children, this.globalThis, @intCast(u32, j)); + const child = JSC.JSObject.getIndex(children, this.globalThis, @as(u32, @intCast(j))); this.format(Tag.getAdvanced(child, this.globalThis, .{ .hide_global = true }), Writer, writer_, child, this.globalThis, enable_ansi_colors); if (j + 1 < length) { writer.writeAll("\n"); @@ -2881,56 +2881,56 @@ pub const ZigConsoleClient = struct { *@TypeOf(writer), &writer, i8, - @alignCast(std.meta.alignment([]i8), std.mem.bytesAsSlice(i8, slice)), + @as([]align(std.meta.alignment([]i8)) i8, @alignCast(std.mem.bytesAsSlice(i8, slice))), enable_ansi_colors, ), .Int16Array => this.writeTypedArray( *@TypeOf(writer), &writer, i16, - @alignCast(std.meta.alignment([]i16), std.mem.bytesAsSlice(i16, slice)), + @as([]align(std.meta.alignment([]i16)) i16, @alignCast(std.mem.bytesAsSlice(i16, slice))), enable_ansi_colors, ), .Uint16Array => this.writeTypedArray( *@TypeOf(writer), &writer, u16, - @alignCast(std.meta.alignment([]u16), std.mem.bytesAsSlice(u16, slice)), + @as([]align(std.meta.alignment([]u16)) u16, @alignCast(std.mem.bytesAsSlice(u16, slice))), enable_ansi_colors, ), .Int32Array => this.writeTypedArray( *@TypeOf(writer), &writer, i32, - @alignCast(std.meta.alignment([]i32), std.mem.bytesAsSlice(i32, slice)), + @as([]align(std.meta.alignment([]i32)) i32, @alignCast(std.mem.bytesAsSlice(i32, slice))), enable_ansi_colors, ), .Uint32Array => this.writeTypedArray( *@TypeOf(writer), &writer, u32, - @alignCast(std.meta.alignment([]u32), std.mem.bytesAsSlice(u32, slice)), + @as([]align(std.meta.alignment([]u32)) u32, @alignCast(std.mem.bytesAsSlice(u32, slice))), enable_ansi_colors, ), .Float32Array => this.writeTypedArray( *@TypeOf(writer), &writer, f32, - @alignCast(std.meta.alignment([]f32), std.mem.bytesAsSlice(f32, slice)), + @as([]align(std.meta.alignment([]f32)) f32, @alignCast(std.mem.bytesAsSlice(f32, slice))), enable_ansi_colors, ), .Float64Array => this.writeTypedArray( *@TypeOf(writer), &writer, f64, - @alignCast(std.meta.alignment([]f64), std.mem.bytesAsSlice(f64, slice)), + @as([]align(std.meta.alignment([]f64)) f64, @alignCast(std.mem.bytesAsSlice(f64, slice))), enable_ansi_colors, ), .BigInt64Array => this.writeTypedArray( *@TypeOf(writer), &writer, i64, - @alignCast(std.meta.alignment([]i64), std.mem.bytesAsSlice(i64, slice)), + @as([]align(std.meta.alignment([]i64)) i64, @alignCast(std.mem.bytesAsSlice(i64, slice))), enable_ansi_colors, ), .BigUint64Array => { @@ -2938,7 +2938,7 @@ pub const ZigConsoleClient = struct { *@TypeOf(writer), &writer, u64, - @alignCast(std.meta.alignment([]u64), std.mem.bytesAsSlice(u64, slice)), + @as([]align(std.meta.alignment([]u64)) u64, @alignCast(std.mem.bytesAsSlice(u64, slice))), enable_ansi_colors, ); }, @@ -3113,7 +3113,7 @@ pub const ZigConsoleClient = struct { var value: std.time.Timer = result.value orelse return; // get the duration in microseconds // then display it in milliseconds - Output.printElapsed(@floatFromInt(f64, value.read() / std.time.ns_per_us) / std.time.us_per_ms); + Output.printElapsed(@as(f64, @floatFromInt(value.read() / std.time.ns_per_us)) / std.time.us_per_ms); switch (len) { 0 => Output.printErrorln("\n", .{}), else => Output.printErrorln(" {s}", .{chars[0..len]}), @@ -3142,7 +3142,7 @@ pub const ZigConsoleClient = struct { var value: std.time.Timer = (pending_time_logs.get(id) orelse return) orelse return; // get the duration in microseconds // then display it in milliseconds - Output.printElapsed(@floatFromInt(f64, value.read() / std.time.ns_per_us) / std.time.us_per_ms); + Output.printElapsed(@as(f64, @floatFromInt(value.read() / std.time.ns_per_us)) / std.time.us_per_ms); switch (len) { 0 => Output.printErrorln("\n", .{}), else => Output.printErrorln(" {s}", .{chars[0..len]}), @@ -3367,7 +3367,7 @@ pub const ZigConsoleClient = struct { // }; pub inline fn toGlobalContextRef(ptr: *JSGlobalObject) CAPI.JSGlobalContextRef { - return @ptrCast(CAPI.JSGlobalContextRef, ptr); + return @as(CAPI.JSGlobalContextRef, @ptrCast(ptr)); } comptime { diff --git a/src/bun.js/bindings/shimmer.zig b/src/bun.js/bindings/shimmer.zig index 3a6242000..29d12c1db 100644 --- a/src/bun.js/bindings/shimmer.zig +++ b/src/bun.js/bindings/shimmer.zig @@ -163,7 +163,7 @@ pub fn Shimmer(comptime _namespace: []const u8, comptime _name: []const u8, comp if (comptime isNullableType(ExpectedReturnType) != isNullableType(ExternReturnType)) { return value.?; } else if (comptime (@typeInfo(ExpectedReturnType) == .Enum) and (@typeInfo(ExternReturnType) != .Enum)) { - return @enumFromInt(ExpectedReturnType, value); + return @as(ExpectedReturnType, @enumFromInt(value)); } else { return value; } diff --git a/src/bun.js/event_loop.zig b/src/bun.js/event_loop.zig index d9befef8e..2dbe88d47 100644 --- a/src/bun.js/event_loop.zig +++ b/src/bun.js/event_loop.zig @@ -173,7 +173,7 @@ pub const AnyTask = struct { } pub fn wrap(this: ?*anyopaque) void { - @call(.always_inline, Callback, .{@ptrCast(*Type, @alignCast(@alignOf(Type), this.?))}); + @call(.always_inline, Callback, .{@as(*Type, @ptrCast(@alignCast(this.?)))}); } }; } @@ -205,8 +205,8 @@ pub const AnyTaskWithExtraContext = struct { .always_inline, Callback, .{ - @ptrCast(*Type, @alignCast(@alignOf(Type), this.?)), - @ptrCast(*ContextType, @alignCast(@alignOf(ContextType), extra.?)), + @as(*Type, @ptrCast(@alignCast(this.?))), + @as(*ContextType, @ptrCast(@alignCast(extra.?))), }, ); } @@ -503,7 +503,7 @@ pub const EventLoop = struct { } this.tasks.head = if (this.tasks.count == 0) 0 else this.tasks.head; - return @truncate(u32, counter); + return @as(u32, @truncate(counter)); } pub fn tickConcurrent(this: *EventLoop) void { diff --git a/src/bun.js/javascript.zig b/src/bun.js/javascript.zig index 2e6d61952..fb855e047 100644 --- a/src/bun.js/javascript.zig +++ b/src/bun.js/javascript.zig @@ -119,7 +119,7 @@ pub const OpaqueCallback = *const fn (current: ?*anyopaque) callconv(.C) void; pub fn OpaqueWrap(comptime Context: type, comptime Function: fn (this: *Context) void) OpaqueCallback { return struct { pub fn callback(ctx: ?*anyopaque) callconv(.C) void { - var context: *Context = @ptrCast(*Context, @alignCast(@alignOf(Context), ctx.?)); + var context: *Context = @as(*Context, @ptrCast(@alignCast(ctx.?))); @call(.auto, Function, .{context}); } }.callback; @@ -142,7 +142,7 @@ pub const SavedSourceMap = struct { } pub inline fn len(this: SavedMappings) usize { - return @bitCast(u64, this.data[0..8].*); + return @as(u64, @bitCast(this.data[0..8].*)); } pub fn deinit(this: SavedMappings) void { @@ -153,7 +153,7 @@ pub const SavedSourceMap = struct { const result = SourceMap.Mapping.parse( allocator, this.data[16..this.len()], - @bitCast(usize, this.data[8..16].*), + @as(usize, @bitCast(this.data[8..16].*)), 1, ); switch (result) { @@ -203,7 +203,7 @@ pub const SavedSourceMap = struct { var source_map: *MappingList = source_map_; source_map.deinit(default_allocator); } else if (value.get(SavedMappings)) |saved_mappings| { - var saved = SavedMappings{ .data = @ptrCast([*]u8, saved_mappings) }; + var saved = SavedMappings{ .data = @as([*]u8, @ptrCast(saved_mappings)) }; saved.deinit(); } @@ -219,7 +219,7 @@ pub const SavedSourceMap = struct { return Value.from(mapping.value_ptr.*).as(MappingList).*; }, Value.Tag.SavedMappings => { - var saved = SavedMappings{ .data = @ptrCast([*]u8, Value.from(mapping.value_ptr.*).as(MappingList)) }; + var saved = SavedMappings{ .data = @as([*]u8, @ptrCast(Value.from(mapping.value_ptr.*).as(MappingList))) }; defer saved.deinit(); var result = default_allocator.create(MappingList) catch unreachable; result.* = saved.toMapping(default_allocator, path) catch { @@ -264,7 +264,7 @@ export fn Bun__readOriginTimer(vm: *JSC.VirtualMachine) u64 { export fn Bun__readOriginTimerStart(vm: *JSC.VirtualMachine) f64 { // timespce to milliseconds - return @floatCast(f64, (@floatFromInt(f64, vm.origin_timestamp) + JSC.VirtualMachine.origin_relative_epoch) / 1_000_000.0); + return @as(f64, @floatCast((@as(f64, @floatFromInt(vm.origin_timestamp)) + JSC.VirtualMachine.origin_relative_epoch) / 1_000_000.0)); } // comptime { @@ -794,16 +794,16 @@ pub const VirtualMachine = struct { /// We subtract the timestamp from Jan 1, 2000 (Y2K) pub const origin_relative_epoch = 946684800 * std.time.ns_per_s; fn getOriginTimestamp() u64 { - return @truncate( + return @as( u64, - @intCast( + @truncate(@as( u128, // handle if they set their system clock to be before epoch - @max( + @intCast(@max( std.time.nanoTimestamp(), origin_relative_epoch, - ), - ) - origin_relative_epoch, + )), + ) - origin_relative_epoch), ); } @@ -883,7 +883,7 @@ pub const VirtualMachine = struct { } vm.global = ZigGlobalObject.create( &global_classes, - @intCast(i32, global_classes.len), + @as(i32, @intCast(global_classes.len)), vm.console, -1, false, @@ -985,7 +985,7 @@ pub const VirtualMachine = struct { } vm.global = ZigGlobalObject.create( &global_classes, - @intCast(i32, global_classes.len), + @as(i32, @intCast(global_classes.len)), vm.console, -1, smol, @@ -1087,9 +1087,9 @@ pub const VirtualMachine = struct { } vm.global = ZigGlobalObject.create( &global_classes, - @intCast(i32, global_classes.len), + @as(i32, @intCast(global_classes.len)), vm.console, - @intCast(i32, worker.execution_context_id), + @as(i32, @intCast(worker.execution_context_id)), worker.mini, ); vm.regular_event_loop.global = vm.global; @@ -1402,7 +1402,7 @@ pub const VirtualMachine = struct { var vm_ = globalObject.bunVM(); if (vm_.global == globalObject) { - vm_.enqueueTask(Task.init(@ptrCast(*JSC.MicrotaskForDefaultGlobalObject, microtask))); + vm_.enqueueTask(Task.init(@as(*JSC.MicrotaskForDefaultGlobalObject, @ptrCast(microtask)))); } else { vm_.enqueueTask(Task.init(microtask)); } @@ -1685,7 +1685,7 @@ pub const VirtualMachine = struct { err, globalThis.createAggregateError( errors.ptr, - @intCast(u16, errors.len), + @as(u16, @intCast(errors.len)), &ZigString.init( std.fmt.allocPrint(globalThis.allocator(), "{d} errors building \"{}\"", .{ errors.len, @@ -1730,7 +1730,7 @@ pub const VirtualMachine = struct { this.last_reported_error_for_dedupe = result; if (result.isException(this.global.vm())) { - var exception = @ptrCast(*Exception, result.asVoid()); + var exception = @as(*Exception, @ptrCast(result.asVoid())); this.printException( exception, @@ -2001,7 +2001,7 @@ pub const VirtualMachine = struct { iterator(_vm, globalObject, nextValue, ctx.?, false); } inline fn iterator(_: [*c]VM, _: [*c]JSGlobalObject, nextValue: JSValue, ctx: ?*anyopaque, comptime color: bool) void { - var this_ = @ptrFromInt(*@This(), @intFromPtr(ctx)); + var this_ = @as(*@This(), @ptrFromInt(@intFromPtr(ctx))); VirtualMachine.get().printErrorlikeObject(nextValue, null, this_.current_exception_list, Writer, this_.writer, color, allow_side_effects); } }; @@ -2099,7 +2099,7 @@ pub const VirtualMachine = struct { const dir = vm.bundler.fs.top_level_dir; while (i < stack.len) : (i += 1) { - const frame = stack[@intCast(usize, i)]; + const frame = stack[@as(usize, @intCast(i))]; const file_slice = frame.source_url.toUTF8(bun.default_allocator); defer file_slice.deinit(); const func_slice = frame.function_name.toUTF8(bun.default_allocator); @@ -2215,7 +2215,7 @@ pub const VirtualMachine = struct { frames[j] = frame; j += 1; } - exception.stack.frames_len = @truncate(u8, j); + exception.stack.frames_len = @as(u8, @truncate(j)); frames.len = j; } } @@ -2249,7 +2249,7 @@ pub const VirtualMachine = struct { if (strings.getLinesInText( code.slice(), - @intCast(u32, top.position.line), + @as(u32, @intCast(top.position.line)), JSC.ZigException.Holder.source_lines_count, )) |lines| { var source_lines = exception.stack.source_lines_ptr[0..JSC.ZigException.Holder.source_lines_count]; @@ -2260,12 +2260,12 @@ pub const VirtualMachine = struct { var lines_ = lines[0..@min(lines.len, source_lines.len)]; for (lines_, 0..) |line, j| { source_lines[(lines_.len - 1) - j] = String.init(line); - source_line_numbers[j] = top.position.line - @intCast(i32, j) + 1; + source_line_numbers[j] = top.position.line - @as(i32, @intCast(j)) + 1; } - exception.stack.source_lines_len = @intCast(u8, lines_.len); + exception.stack.source_lines_len = @as(u8, @intCast(lines_.len)); - top.position.column_stop = @intCast(i32, source_lines[lines_.len - 1].length()); + top.position.column_stop = @as(i32, @intCast(source_lines[lines_.len - 1].length())); top.position.line_stop = top.position.column_stop; // This expression range is no longer accurate @@ -2372,11 +2372,11 @@ pub const VirtualMachine = struct { ); if (!top.position.isInvalid()) { - var first_non_whitespace = @intCast(u32, top.position.column_start); + var first_non_whitespace = @as(u32, @intCast(top.position.column_start)); while (first_non_whitespace < text.len and text[first_non_whitespace] == ' ') { first_non_whitespace += 1; } - const indent = @intCast(usize, pad) + " | ".len + first_non_whitespace; + const indent = @as(usize, @intCast(pad)) + " | ".len + first_non_whitespace; try writer.writeByteNTimes(' ', indent); try writer.print(comptime Output.prettyFmt( @@ -2572,7 +2572,7 @@ pub const EventListenerMixin = struct { const FetchEventRejectionHandler = struct { pub fn onRejection(_ctx: *anyopaque, err: anyerror, fetch_event: *FetchEvent, value: JSValue) void { onError( - @ptrFromInt(*CtxType, @intFromPtr(_ctx)), + @as(*CtxType, @ptrFromInt(@intFromPtr(_ctx))), err, value, fetch_event.request_context.?, @@ -2940,7 +2940,7 @@ pub fn NewHotReloader(comptime Ctx: type, comptime EventLoopType: type, comptime var path_string: bun.PathString = undefined; var file_hash: @This().Watcher.HashType = last_file_hash; const abs_path: string = brk: { - if (dir_ent.entries.get(@ptrCast([]const u8, changed_name))) |file_ent| { + if (dir_ent.entries.get(@as([]const u8, @ptrCast(changed_name)))) |file_ent| { // reset the file descriptor file_ent.entry.cache.fd = 0; file_ent.entry.need_stat = true; @@ -2950,9 +2950,9 @@ pub fn NewHotReloader(comptime Ctx: type, comptime EventLoopType: type, comptime if (hash == file_hash) { if (file_descriptors[entry_id] != 0) { if (prev_entry_id != entry_id) { - current_task.append(@truncate(u32, entry_id)); + current_task.append(@as(u32, @truncate(entry_id))); ctx.removeAtIndex( - @truncate(u16, entry_id), + @as(u16, @truncate(entry_id)), 0, &.{}, .file, diff --git a/src/bun.js/javascript_core_c_api.zig b/src/bun.js/javascript_core_c_api.zig index aba143a81..367b4e279 100644 --- a/src/bun.js/javascript_core_c_api.zig +++ b/src/bun.js/javascript_core_c_api.zig @@ -9,7 +9,7 @@ const std = @import("std"); const cpp = @import("./bindings/bindings.zig"); const generic = opaque { pub fn value(this: *const @This()) cpp.JSValue { - return @enumFromInt(cpp.JSValue, @bitCast(cpp.JSValue.Type, @intFromPtr(this))); + return @as(cpp.JSValue, @enumFromInt(@as(cpp.JSValue.Type, @bitCast(@intFromPtr(this))))); } pub inline fn bunVM(this: *@This()) *@import("root").bun.JSC.VirtualMachine { diff --git a/src/bun.js/module_loader.zig b/src/bun.js/module_loader.zig index 1bf8dcb12..07e25282f 100644 --- a/src/bun.js/module_loader.zig +++ b/src/bun.js/module_loader.zig @@ -826,7 +826,7 @@ pub const ModuleLoader = struct { else null; resolved_source.commonjs_exports_len = if (commonjs_exports.len > 0) - @truncate(u32, commonjs_exports.len) + @as(u32, @truncate(commonjs_exports.len)) else if (parse_result.ast.exports_kind == .cjs) std.math.maxInt(u32) else @@ -845,7 +845,7 @@ pub const ModuleLoader = struct { else null, .commonjs_exports_len = if (commonjs_exports.len > 0) - @truncate(u32, commonjs_exports.len) + @as(u32, @truncate(commonjs_exports.len)) else if (parse_result.ast.exports_kind == .cjs) std.math.maxInt(u32) else @@ -1228,7 +1228,7 @@ pub const ModuleLoader = struct { else null; resolved_source.commonjs_exports_len = if (commonjs_exports.len > 0) - @truncate(u32, commonjs_exports.len) + @as(u32, @truncate(commonjs_exports.len)) else if (parse_result.ast.exports_kind == .cjs) std.math.maxInt(u32) else @@ -1265,7 +1265,7 @@ pub const ModuleLoader = struct { else null, .commonjs_exports_len = if (commonjs_exports.len > 0) - @truncate(u32, commonjs_exports.len) + @as(u32, @truncate(commonjs_exports.len)) else if (parse_result.ast.exports_kind == .cjs) std.math.maxInt(u32) else @@ -1330,7 +1330,7 @@ pub const ModuleLoader = struct { var encoded = JSC.EncodedJSValue{ .asPtr = globalThis, }; - const globalValue = @enumFromInt(JSC.JSValue, encoded.asInt64); + const globalValue = @as(JSC.JSValue, @enumFromInt(encoded.asInt64)); globalValue.put( globalThis, JSC.ZigString.static("wasmSourceBytes"), diff --git a/src/bun.js/node/dir_iterator.zig b/src/bun.js/node/dir_iterator.zig index dac78e5e2..968fde001 100644 --- a/src/bun.js/node/dir_iterator.zig +++ b/src/bun.js/node/dir_iterator.zig @@ -65,13 +65,13 @@ pub const Iterator = switch (builtin.os.tag) { } self.index = 0; - self.end_index = @intCast(usize, rc); + self.end_index = @as(usize, @intCast(rc)); } - const darwin_entry = @ptrCast(*align(1) os.system.dirent, &self.buf[self.index]); + const darwin_entry = @as(*align(1) os.system.dirent, @ptrCast(&self.buf[self.index])); const next_index = self.index + darwin_entry.reclen(); self.index = next_index; - const name = @ptrCast([*]u8, &darwin_entry.d_name)[0..darwin_entry.d_namlen]; + const name = @as([*]u8, @ptrCast(&darwin_entry.d_name))[0..darwin_entry.d_namlen]; if (strings.eqlComptime(name, ".") or strings.eqlComptime(name, "..") or (darwin_entry.d_ino == 0)) { continue :start_over; @@ -122,11 +122,11 @@ pub const Iterator = switch (builtin.os.tag) { self.index = 0; self.end_index = rc; } - const linux_entry = @ptrCast(*align(1) linux.dirent64, &self.buf[self.index]); + const linux_entry = @as(*align(1) linux.dirent64, @ptrCast(&self.buf[self.index])); const next_index = self.index + linux_entry.reclen(); self.index = next_index; - const name = mem.sliceTo(@ptrCast([*:0]u8, &linux_entry.d_name), 0); + const name = mem.sliceTo(@as([*:0]u8, @ptrCast(&linux_entry.d_name)), 0); // skip . and .. entries if (strings.eqlComptime(name, ".") or strings.eqlComptime(name, "..")) { @@ -196,15 +196,14 @@ pub const Iterator = switch (builtin.os.tag) { } } - const aligned_ptr = @alignCast(@alignOf(w.FILE_BOTH_DIR_INFORMATION), &self.buf[self.index]); - const dir_info = @ptrCast(*w.FILE_BOTH_DIR_INFORMATION, aligned_ptr); + const dir_info: *w.FILE_BOTH_DIR_INFORMATION = @ptrCast(@alignCast(&self.buf[self.index])); if (dir_info.NextEntryOffset != 0) { self.index += dir_info.NextEntryOffset; } else { self.index = self.buf.len; } - const name_utf16le = @ptrCast([*]u16, &dir_info.FileName)[0 .. dir_info.FileNameLength / 2]; + const name_utf16le = @as([*]u16, @ptrCast(&dir_info.FileName))[0 .. dir_info.FileNameLength / 2]; if (mem.eql(u16, name_utf16le, &[_]u16{'.'}) or mem.eql(u16, name_utf16le, &[_]u16{ '.', '.' })) continue; @@ -260,7 +259,7 @@ pub const Iterator = switch (builtin.os.tag) { self.index = 0; self.end_index = bufused; } - const entry = @ptrCast(*align(1) w.dirent_t, &self.buf[self.index]); + const entry = @as(*align(1) w.dirent_t, @ptrCast(&self.buf[self.index])); const entry_size = @sizeOf(w.dirent_t); const name_index = self.index + entry_size; const name = mem.span(self.buf[name_index .. name_index + entry.d_namlen]); diff --git a/src/bun.js/node/fs_events.zig b/src/bun.js/node/fs_events.zig index a3fba5441..54c969d0f 100644 --- a/src/bun.js/node/fs_events.zig +++ b/src/bun.js/node/fs_events.zig @@ -254,7 +254,7 @@ pub const FSEventsLoop = struct { } pub fn wrap(this: ?*anyopaque) void { - @call(.always_inline, Callback, .{@ptrCast(*Type, @alignCast(@alignOf(Type), this.?))}); + @call(.always_inline, Callback, .{@as(*Type, @ptrCast(@alignCast(this.?)))}); } }; } diff --git a/src/bun.js/node/node_fs.zig b/src/bun.js/node/node_fs.zig index 3f298c5c7..8fb769fac 100644 --- a/src/bun.js/node/node_fs.zig +++ b/src/bun.js/node/node_fs.zig @@ -368,7 +368,7 @@ pub const Arguments = struct { }; arguments.eat(); - break :brk @intCast(uid_t, uid_value.toInt32()); + break :brk @as(uid_t, @intCast(uid_value.toInt32())); }; const gid: gid_t = brk: { @@ -385,7 +385,7 @@ pub const Arguments = struct { }; arguments.eat(); - break :brk @intCast(gid_t, gid_value.toInt32()); + break :brk @as(gid_t, @intCast(gid_value.toInt32())); }; return Chown{ .path = path, .uid = uid, .gid = gid }; @@ -438,7 +438,7 @@ pub const Arguments = struct { }; arguments.eat(); - break :brk @intCast(uid_t, uid_value.toInt32()); + break :brk @as(uid_t, @intCast(uid_value.toInt32())); }; const gid: gid_t = brk: { @@ -455,7 +455,7 @@ pub const Arguments = struct { }; arguments.eat(); - break :brk @intCast(gid_t, gid_value.toInt32()); + break :brk @as(gid_t, @intCast(gid_value.toInt32())); }; return Fchown{ .fd = fd, .uid = uid, .gid = gid }; @@ -1672,7 +1672,7 @@ pub const Arguments = struct { } if (arguments.remaining[1].isNumber() or arguments.remaining[1].isBigInt()) - args.position = @intCast(ReadPosition, arguments.remaining[1].to(i52)); + args.position = @as(ReadPosition, @intCast(arguments.remaining[1].to(i52))); arguments.remaining = arguments.remaining[2..]; } else if (current.isObject()) { @@ -1798,7 +1798,7 @@ pub const Arguments = struct { mode: Mode = 0o666, file: PathOrFileDescriptor, data: StringOrBuffer, - dirfd: FileDescriptor = @intCast(FileDescriptor, std.fs.cwd().fd), + dirfd: FileDescriptor = @as(FileDescriptor, @intCast(std.fs.cwd().fd)), pub fn deinit(self: WriteFile) void { self.file.deinit(); @@ -2424,7 +2424,7 @@ pub const Arguments = struct { return CopyFile{ .src = src, .dest = dest, - .mode = @enumFromInt(Constants.Copyfile, mode), + .mode = @as(Constants.Copyfile, @enumFromInt(mode)), }; } }; @@ -2568,7 +2568,7 @@ const Return = struct { ctx.ptr(), &fields.bytesRead, &fields.buffer, - JSC.JSValue.jsNumberFromUint64(@intCast(u52, @min(std.math.maxInt(u52), this.bytes_read))), + JSC.JSValue.jsNumberFromUint64(@as(u52, @intCast(@min(std.math.maxInt(u52), this.bytes_read)))), this.buffer_val, ).asObjectRef(); } @@ -2592,7 +2592,7 @@ const Return = struct { ctx.ptr(), &fields.bytesWritten, &fields.buffer, - JSC.JSValue.jsNumberFromUint64(@intCast(u52, @min(std.math.maxInt(u52), this.bytes_written))), + JSC.JSValue.jsNumberFromUint64(@as(u52, @intCast(@min(std.math.maxInt(u52), this.bytes_written)))), if (this.buffer == .buffer) this.buffer_val else @@ -2805,7 +2805,7 @@ pub const NodeFS = struct { .err => |err| return Maybe(Return.CopyFile){ .err = err }, }; defer { - _ = std.c.ftruncate(dest_fd, @intCast(std.c.off_t, @truncate(u63, wrote))); + _ = std.c.ftruncate(dest_fd, @as(std.c.off_t, @intCast(@as(u63, @truncate(wrote))))); _ = Syscall.close(dest_fd); } @@ -2815,7 +2815,7 @@ pub const NodeFS = struct { // 16 KB is high end of what is okay to use for stack space // good thing we ask for absurdly large stack sizes var buf: [16384]u8 = undefined; - var remain = @intCast(u64, @max(stat_.size, 0)); + var remain = @as(u64, @intCast(@max(stat_.size, 0))); toplevel: while (remain > 0) { const amt = switch (Syscall.read(src_fd, buf[0..@min(buf.len, remain)])) { .result => |result| result, @@ -2913,15 +2913,15 @@ pub const NodeFS = struct { .err => |err| return Maybe(Return.CopyFile){ .err = err }, }; - var size = @intCast(usize, @max(stat_.size, 0)); + var size = @as(usize, @intCast(@max(stat_.size, 0))); defer { - _ = linux.ftruncate(dest_fd, @intCast(i64, @truncate(u63, wrote))); + _ = linux.ftruncate(dest_fd, @as(i64, @intCast(@as(u63, @truncate(wrote))))); _ = Syscall.close(dest_fd); } - var off_in_copy = @bitCast(i64, @as(u64, 0)); - var off_out_copy = @bitCast(i64, @as(u64, 0)); + var off_in_copy = @as(i64, @bitCast(@as(u64, 0))); + var off_out_copy = @as(i64, @bitCast(@as(u64, 0))); if (size == 0) { // copy until EOF @@ -3199,7 +3199,7 @@ pub const NodeFS = struct { .sync => { var buf: [bun.MAX_PATH_BYTES]u8 = undefined; const path = args.path.sliceZWithForceCopy(&buf, true); - const len = @truncate(u16, path.len); + const len = @as(u16, @truncate(path.len)); // First, attempt to create the desired directory // If that fails, then walk back up the path until we have a match @@ -3349,8 +3349,8 @@ pub const NodeFS = struct { }; } // std.c.getErrno(rc) returns SUCCESS if rc is null so we call std.c._errno() directly - const errno = @enumFromInt(std.c.E, std.c._errno().*); - return .{ .err = Syscall.Error{ .errno = @truncate(Syscall.Error.Int, @intFromEnum(errno)), .syscall = .mkdtemp } }; + const errno = @as(std.c.E, @enumFromInt(std.c._errno().*)); + return .{ .err = Syscall.Error{ .errno = @as(Syscall.Error.Int, @truncate(@intFromEnum(errno))), .syscall = .mkdtemp } }; } pub fn open(this: *NodeFS, args: Arguments.Open, comptime flavor: Flavor) Maybe(Return.Open) { switch (comptime flavor) { @@ -3389,7 +3389,7 @@ pub const NodeFS = struct { }, .result => |amt| .{ .result = .{ - .bytes_read = @truncate(u52, amt), + .bytes_read = @as(u52, @truncate(amt)), }, }, }; @@ -3413,7 +3413,7 @@ pub const NodeFS = struct { }, .result => |amt| .{ .result = .{ - .bytes_read = @truncate(u52, amt), + .bytes_read = @as(u52, @truncate(amt)), }, }, }; @@ -3461,7 +3461,7 @@ pub const NodeFS = struct { }, .result => |amt| .{ .result = .{ - .bytes_written = @truncate(u52, amt), + .bytes_written = @as(u52, @truncate(amt)), }, }, }; @@ -3486,7 +3486,7 @@ pub const NodeFS = struct { .err = err, }, .result => |amt| .{ .result = .{ - .bytes_written = @truncate(u52, amt), + .bytes_written = @as(u52, @truncate(amt)), } }, }; }, @@ -3506,7 +3506,7 @@ pub const NodeFS = struct { .err = err, }, .result => |amt| .{ .result = .{ - .bytes_read = @truncate(u52, amt), + .bytes_read = @as(u52, @truncate(amt)), } }, }; }, @@ -3524,7 +3524,7 @@ pub const NodeFS = struct { .err = err, }, .result => |amt| .{ .result = .{ - .bytes_read = @truncate(u52, amt), + .bytes_read = @as(u52, @truncate(amt)), } }, }; }, @@ -3544,7 +3544,7 @@ pub const NodeFS = struct { .err = err, }, .result => |amt| .{ .result = .{ - .bytes_written = @truncate(u52, amt), + .bytes_written = @as(u52, @truncate(amt)), } }, }; }, @@ -3562,7 +3562,7 @@ pub const NodeFS = struct { .err = err, }, .result => |amt| .{ .result = .{ - .bytes_written = @truncate(u52, amt), + .bytes_written = @as(u52, @truncate(amt)), } }, }; }, @@ -3775,21 +3775,21 @@ pub const NodeFS = struct { } // For certain files, the size might be 0 but the file might still have contents. - const size = @intCast( + const size = @as( u64, - @max( + @intCast(@max( @min( stat_.size, - @intCast( + @as( @TypeOf(stat_.size), // Only used in DOMFormData - args.max_size orelse std.math.maxInt( + @intCast(args.max_size orelse std.math.maxInt( JSC.WebCore.Blob.SizeType, - ), + )), ), ), 0, - ), + )), ) + if (comptime string_type == .null_terminated) 1 else 0; var buf = std.ArrayList(u8).init(bun.default_allocator); @@ -3937,20 +3937,20 @@ pub const NodeFS = struct { // on linux, it's absolutely positioned const pos = JSC.Node.Syscall.system.lseek( fd, - @intCast(std.os.off_t, 0), + @as(std.os.off_t, @intCast(0)), std.os.linux.SEEK.CUR, ); switch (JSC.Node.Syscall.getErrno(pos)) { - .SUCCESS => break :brk @intCast(usize, pos), + .SUCCESS => break :brk @as(usize, @intCast(pos)), else => break :preallocate, } }; bun.C.preallocate_file( fd, - @intCast(std.os.off_t, offset), - @intCast(std.os.off_t, buf.len), + @as(std.os.off_t, @intCast(offset)), + @as(std.os.off_t, @intCast(buf.len)), ) catch {}; } } @@ -3973,7 +3973,7 @@ pub const NodeFS = struct { // https://github.com/oven-sh/bun/issues/2931 if ((@intFromEnum(args.flag) & std.os.O.APPEND) == 0) { - _ = ftruncateSync(.{ .fd = fd, .len = @truncate(JSC.WebCore.Blob.SizeType, written) }); + _ = ftruncateSync(.{ .fd = fd, .len = @as(JSC.WebCore.Blob.SizeType, @truncate(written)) }); } return Maybe(Return.WriteFile).success; @@ -4119,7 +4119,7 @@ pub const NodeFS = struct { while (true) { if (Maybe(Return.Rmdir).errnoSys(bun.C.darwin.removefileat(std.os.AT.FDCWD, dest, null, flags), .rmdir)) |errno| { - switch (@enumFromInt(os.E, errno.err.errno)) { + switch (@as(os.E, @enumFromInt(errno.err.errno))) { .AGAIN, .INTR => continue, .NOENT => return Maybe(Return.Rmdir).success, .MLINK => { @@ -4206,7 +4206,7 @@ pub const NodeFS = struct { } if (Maybe(Return.Rm).errnoSys(bun.C.darwin.removefileat(std.os.AT.FDCWD, dest, null, flags), .unlink)) |errno| { - switch (@enumFromInt(os.E, errno.err.errno)) { + switch (@as(os.E, @enumFromInt(errno.err.errno))) { .AGAIN, .INTR => continue, .NOENT => { if (args.force) { diff --git a/src/bun.js/node/node_os.zig b/src/bun.js/node/node_os.zig index 483acb3e2..5710b5c21 100644 --- a/src/bun.js/node/node_os.zig +++ b/src/bun.js/node/node_os.zig @@ -207,7 +207,7 @@ pub const Os = struct { var num_cpus: c.natural_t = 0; var info: [*]local_bindings.processor_cpu_load_info = undefined; var info_size: std.c.mach_msg_type_number_t = 0; - if (local_bindings.host_processor_info(std.c.mach_host_self(), local_bindings.PROCESSOR_CPU_LOAD_INFO, &num_cpus, @ptrCast(*local_bindings.processor_info_array_t, &info), &info_size) != .SUCCESS) { + if (local_bindings.host_processor_info(std.c.mach_host_self(), local_bindings.PROCESSOR_CPU_LOAD_INFO, &num_cpus, @as(*local_bindings.processor_info_array_t, @ptrCast(&info)), &info_size) != .SUCCESS) { return error.no_processor_info; } defer _ = std.c.vm_deallocate(std.c.mach_task_self(), @intFromPtr(info), info_size); @@ -247,10 +247,10 @@ pub const Os = struct { @cInclude("unistd.h"); }); const ticks: i64 = unistd.sysconf(unistd._SC_CLK_TCK); - const multiplier = 1000 / @intCast(u64, ticks); + const multiplier = 1000 / @as(u64, @intCast(ticks)); // Set up each CPU value in the return - const values = JSC.JSValue.createEmptyArray(globalThis, @intCast(u32, num_cpus)); + const values = JSC.JSValue.createEmptyArray(globalThis, @as(u32, @intCast(num_cpus))); var cpu_index: u32 = 0; while (cpu_index < num_cpus) : (cpu_index += 1) { const times = CPUTimes{ @@ -436,8 +436,8 @@ pub const Os = struct { if (helpers.skip(iface) or helpers.isLinkLayer(iface)) continue; const interface_name = std.mem.sliceTo(iface.ifa_name, 0); - const addr = std.net.Address.initPosix(@alignCast(4, @ptrCast(*std.os.sockaddr, iface.ifa_addr))); - const netmask = std.net.Address.initPosix(@alignCast(4, @ptrCast(*std.os.sockaddr, iface.ifa_netmask))); + const addr = std.net.Address.initPosix(@alignCast(@as(*std.os.sockaddr, @ptrCast(iface.ifa_addr)))); + const netmask = std.net.Address.initPosix(@alignCast(@as(*std.os.sockaddr, @ptrCast(iface.ifa_netmask)))); var interface = JSC.JSValue.createEmptyObject(globalThis, 7); @@ -448,7 +448,7 @@ pub const Os = struct { // be converted to a CIDR suffix const maybe_suffix: ?u8 = switch (addr.any.family) { std.os.AF.INET => netmaskToCIDRSuffix(netmask.in.sa.addr), - std.os.AF.INET6 => netmaskToCIDRSuffix(@bitCast(u128, netmask.in6.sa.addr)), + std.os.AF.INET6 => netmaskToCIDRSuffix(@as(u128, @bitCast(netmask.in6.sa.addr))), else => null, }; @@ -500,9 +500,9 @@ pub const Os = struct { // This is the correct link-layer interface entry for the current interface, // cast to a link-layer socket address if (comptime Environment.isLinux) { - break @ptrCast(?*std.os.sockaddr.ll, @alignCast(4, ll_iface.ifa_addr)); + break @as(?*std.os.sockaddr.ll, @ptrCast(@alignCast(ll_iface.ifa_addr))); } else if (comptime Environment.isMac) { - break @ptrCast(?*C.sockaddr_dl, @alignCast(2, ll_iface.ifa_addr)); + break @as(?*C.sockaddr_dl, @ptrCast(@alignCast(ll_iface.ifa_addr))); } else unreachable; } else null; @@ -530,7 +530,7 @@ pub const Os = struct { // Does this entry already exist? if (ret.get(globalThis, interface_name)) |array| { // Add this interface entry to the existing array - const next_index = @intCast(u32, array.getLength(globalThis)); + const next_index = @as(u32, @intCast(array.getLength(globalThis))); array.putIndex(globalThis, next_index, interface); } else { // Add it as an array with this interface as an element @@ -750,7 +750,7 @@ test "netmaskToCIDRSuffix" { }; inline for (ipv6_tests) |t| { const addr = try std.net.Address.parseIp6(t[0], 0); - const bits = @bitCast(u128, addr.in6.sa.addr); + const bits = @as(u128, @bitCast(addr.in6.sa.addr)); try std.testing.expectEqual(@as(?u8, t[1]), netmaskToCIDRSuffix(bits)); } } diff --git a/src/bun.js/node/syscall.zig b/src/bun.js/node/syscall.zig index 5ff0b2f44..4dbb23f0d 100644 --- a/src/bun.js/node/syscall.zig +++ b/src/bun.js/node/syscall.zig @@ -182,7 +182,7 @@ pub fn mkdir(file_path: [:0]const u8, flags: JSC.Node.Mode) Maybe(void) { pub fn fcntl(fd: bun.FileDescriptor, cmd: i32, arg: usize) Maybe(usize) { const result = fcntl_symbol(fd, cmd, arg); if (Maybe(usize).errnoSys(result, .fcntl)) |err| return err; - return .{ .result = @intCast(usize, result) }; + return .{ .result = @as(usize, @intCast(result)) }; } pub fn getErrno(rc: anytype) std.os.E { @@ -191,7 +191,7 @@ pub fn getErrno(rc: anytype) std.os.E { return switch (Type) { comptime_int, usize => std.os.linux.getErrno(@as(usize, rc)), - i32, c_int, isize => std.os.linux.getErrno(@bitCast(usize, @as(isize, rc))), + i32, c_int, isize => std.os.linux.getErrno(@as(usize, @bitCast(@as(isize, rc)))), else => @compileError("Not implemented yet for type " ++ @typeName(Type)), }; } @@ -199,14 +199,14 @@ pub fn getErrno(rc: anytype) std.os.E { pub fn openat(dirfd: bun.FileDescriptor, file_path: [:0]const u8, flags: JSC.Node.Mode, perm: JSC.Node.Mode) Maybe(bun.FileDescriptor) { if (comptime Environment.isMac) { // https://opensource.apple.com/source/xnu/xnu-7195.81.3/libsyscall/wrappers/open-base.c - const rc = bun.AsyncIO.darwin.@"openat$NOCANCEL"(dirfd, file_path.ptr, @intCast(c_uint, flags), @intCast(c_int, perm)); + const rc = bun.AsyncIO.darwin.@"openat$NOCANCEL"(dirfd, file_path.ptr, @as(c_uint, @intCast(flags)), @as(c_int, @intCast(perm))); log("openat({d}, {s}) = {d}", .{ dirfd, file_path, rc }); return switch (Syscall.getErrno(rc)) { - .SUCCESS => .{ .result = @intCast(bun.FileDescriptor, rc) }, + .SUCCESS => .{ .result = @as(bun.FileDescriptor, @intCast(rc)) }, else => |err| .{ .err = .{ - .errno = @truncate(Syscall.Error.Int, @intFromEnum(err)), + .errno = @as(Syscall.Error.Int, @truncate(@intFromEnum(err))), .syscall = .open, }, }, @@ -214,15 +214,15 @@ pub fn openat(dirfd: bun.FileDescriptor, file_path: [:0]const u8, flags: JSC.Nod } while (true) { - const rc = Syscall.system.openat(@intCast(Syscall.system.fd_t, dirfd), file_path, flags, perm); + const rc = Syscall.system.openat(@as(Syscall.system.fd_t, @intCast(dirfd)), file_path, flags, perm); log("openat({d}, {s}) = {d}", .{ dirfd, file_path, rc }); return switch (Syscall.getErrno(rc)) { - .SUCCESS => .{ .result = @intCast(bun.FileDescriptor, rc) }, + .SUCCESS => .{ .result = @as(bun.FileDescriptor, @intCast(rc)) }, .INTR => continue, else => |err| { return Maybe(std.os.fd_t){ .err = .{ - .errno = @truncate(Syscall.Error.Int, @intFromEnum(err)), + .errno = @as(Syscall.Error.Int, @truncate(@intFromEnum(err))), .syscall = .open, }, }; @@ -235,7 +235,7 @@ pub fn openat(dirfd: bun.FileDescriptor, file_path: [:0]const u8, flags: JSC.Nod pub fn open(file_path: [:0]const u8, flags: JSC.Node.Mode, perm: JSC.Node.Mode) Maybe(bun.FileDescriptor) { // this is what open() does anyway. - return openat(@intCast(bun.FileDescriptor, std.fs.cwd().fd), file_path, flags, perm); + return openat(@as(bun.FileDescriptor, @intCast(std.fs.cwd().fd)), file_path, flags, perm); } /// This function will prevent stdout and stderr from being closed. @@ -289,7 +289,7 @@ pub fn write(fd: os.fd_t, bytes: []const u8) Maybe(usize) { return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } else { while (true) { const rc = sys.write(fd, bytes.ptr, adjusted_len); @@ -300,7 +300,7 @@ pub fn write(fd: os.fd_t, bytes: []const u8) Maybe(usize) { return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } unreachable; } @@ -316,7 +316,7 @@ fn veclen(buffers: anytype) usize { pub fn writev(fd: os.fd_t, buffers: []std.os.iovec) Maybe(usize) { if (comptime Environment.isMac) { - const rc = writev_sym(fd, @ptrCast([*]std.os.iovec_const, buffers.ptr), @intCast(i32, buffers.len)); + const rc = writev_sym(fd, @as([*]std.os.iovec_const, @ptrCast(buffers.ptr)), @as(i32, @intCast(buffers.len))); if (comptime Environment.allow_assert) log("writev({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); @@ -324,10 +324,10 @@ pub fn writev(fd: os.fd_t, buffers: []std.os.iovec) Maybe(usize) { return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } else { while (true) { - const rc = writev_sym(fd, @ptrCast([*]std.os.iovec_const, buffers.ptr), buffers.len); + const rc = writev_sym(fd, @as([*]std.os.iovec_const, @ptrCast(buffers.ptr)), buffers.len); if (comptime Environment.allow_assert) log("writev({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); @@ -336,7 +336,7 @@ pub fn writev(fd: os.fd_t, buffers: []std.os.iovec) Maybe(usize) { return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } unreachable; } @@ -344,7 +344,7 @@ pub fn writev(fd: os.fd_t, buffers: []std.os.iovec) Maybe(usize) { pub fn pwritev(fd: os.fd_t, buffers: []std.os.iovec, position: isize) Maybe(usize) { if (comptime Environment.isMac) { - const rc = pwritev_sym(fd, @ptrCast([*]std.os.iovec_const, buffers.ptr), @intCast(i32, buffers.len), position); + const rc = pwritev_sym(fd, @as([*]std.os.iovec_const, @ptrCast(buffers.ptr)), @as(i32, @intCast(buffers.len)), position); if (comptime Environment.allow_assert) log("pwritev({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); @@ -352,10 +352,10 @@ pub fn pwritev(fd: os.fd_t, buffers: []std.os.iovec, position: isize) Maybe(usiz return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } else { while (true) { - const rc = pwritev_sym(fd, @ptrCast([*]std.os.iovec_const, buffers.ptr), buffers.len, position); + const rc = pwritev_sym(fd, @as([*]std.os.iovec_const, @ptrCast(buffers.ptr)), buffers.len, position); if (comptime Environment.allow_assert) log("pwritev({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); @@ -364,7 +364,7 @@ pub fn pwritev(fd: os.fd_t, buffers: []std.os.iovec, position: isize) Maybe(usiz return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } unreachable; } @@ -372,7 +372,7 @@ pub fn pwritev(fd: os.fd_t, buffers: []std.os.iovec, position: isize) Maybe(usiz pub fn readv(fd: os.fd_t, buffers: []std.os.iovec) Maybe(usize) { if (comptime Environment.isMac) { - const rc = readv_sym(fd, buffers.ptr, @intCast(i32, buffers.len)); + const rc = readv_sym(fd, buffers.ptr, @as(i32, @intCast(buffers.len))); if (comptime Environment.allow_assert) log("readv({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); @@ -380,7 +380,7 @@ pub fn readv(fd: os.fd_t, buffers: []std.os.iovec) Maybe(usize) { return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } else { while (true) { const rc = readv_sym(fd, buffers.ptr, buffers.len); @@ -392,7 +392,7 @@ pub fn readv(fd: os.fd_t, buffers: []std.os.iovec) Maybe(usize) { return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } unreachable; } @@ -400,7 +400,7 @@ pub fn readv(fd: os.fd_t, buffers: []std.os.iovec) Maybe(usize) { pub fn preadv(fd: os.fd_t, buffers: []std.os.iovec, position: isize) Maybe(usize) { if (comptime Environment.isMac) { - const rc = preadv_sym(fd, buffers.ptr, @intCast(i32, buffers.len), position); + const rc = preadv_sym(fd, buffers.ptr, @as(i32, @intCast(buffers.len)), position); if (comptime Environment.allow_assert) log("preadv({d}, {d}) = {d}", .{ fd, veclen(buffers), rc }); @@ -408,7 +408,7 @@ pub fn preadv(fd: os.fd_t, buffers: []std.os.iovec, position: isize) Maybe(usize return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } else { while (true) { const rc = preadv_sym(fd, buffers.ptr, buffers.len, position); @@ -420,7 +420,7 @@ pub fn preadv(fd: os.fd_t, buffers: []std.os.iovec, position: isize) Maybe(usize return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } unreachable; } @@ -465,14 +465,14 @@ const fcntl_symbol = system.fcntl; pub fn pread(fd: os.fd_t, buf: []u8, offset: i64) Maybe(usize) { const adjusted_len = @min(buf.len, max_count); - const ioffset = @bitCast(i64, offset); // the OS treats this as unsigned + const ioffset = @as(i64, @bitCast(offset)); // the OS treats this as unsigned while (true) { const rc = pread_sym(fd, buf.ptr, adjusted_len, ioffset); if (Maybe(usize).errnoSys(rc, .pread)) |err| { if (err.getErrno() == .INTR) continue; return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } unreachable; } @@ -485,7 +485,7 @@ else pub fn pwrite(fd: os.fd_t, bytes: []const u8, offset: i64) Maybe(usize) { const adjusted_len = @min(bytes.len, max_count); - const ioffset = @bitCast(i64, offset); // the OS treats this as unsigned + const ioffset = @as(i64, @bitCast(offset)); // the OS treats this as unsigned while (true) { const rc = pwrite_sym(fd, bytes.ptr, adjusted_len, ioffset); return if (Maybe(usize).errnoSysFd(rc, .pwrite, fd)) |err| { @@ -493,7 +493,7 @@ pub fn pwrite(fd: os.fd_t, bytes: []const u8, offset: i64) Maybe(usize) { .INTR => continue, else => return err, } - } else Maybe(usize){ .result = @intCast(usize, rc) }; + } else Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } unreachable; @@ -510,7 +510,7 @@ pub fn read(fd: os.fd_t, buf: []u8) Maybe(usize) { if (Maybe(usize).errnoSys(rc, .read)) |err| { return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } else { while (true) { const rc = sys.read(fd, buf.ptr, adjusted_len); @@ -520,7 +520,7 @@ pub fn read(fd: os.fd_t, buf: []u8) Maybe(usize) { if (err.getErrno() == .INTR) continue; return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } } unreachable; @@ -537,7 +537,7 @@ pub fn recv(fd: os.fd_t, buf: []u8, flag: u32) Maybe(usize) { return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } else { while (true) { const rc = linux.recvfrom(fd, buf.ptr, adjusted_len, flag | os.SOCK.CLOEXEC | linux.MSG.CMSG_CLOEXEC, null, null); @@ -547,7 +547,7 @@ pub fn recv(fd: os.fd_t, buf: []u8, flag: u32) Maybe(usize) { if (err.getErrno() == .INTR) continue; return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } } unreachable; @@ -559,7 +559,7 @@ pub fn send(fd: os.fd_t, buf: []const u8, flag: u32) Maybe(usize) { if (Maybe(usize).errnoSys(rc, .send)) |err| { return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } else { while (true) { const rc = linux.sendto(fd, buf.ptr, buf.len, flag | os.SOCK.CLOEXEC | os.MSG.NOSIGNAL, null, 0); @@ -569,7 +569,7 @@ pub fn send(fd: os.fd_t, buf: []const u8, flag: u32) Maybe(usize) { return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } } unreachable; @@ -583,7 +583,7 @@ pub fn readlink(in: [:0]const u8, buf: []u8) Maybe(usize) { if (err.getErrno() == .INTR) continue; return err; } - return Maybe(usize){ .result = @intCast(usize, rc) }; + return Maybe(usize){ .result = @as(usize, @intCast(rc)) }; } unreachable; } @@ -741,16 +741,16 @@ fn mmap( fd: os.fd_t, offset: u64, ) Maybe([]align(mem.page_size) u8) { - const ioffset = @bitCast(i64, offset); // the OS treats this as unsigned + const ioffset = @as(i64, @bitCast(offset)); // the OS treats this as unsigned const rc = std.c.mmap(ptr, length, prot, flags, fd, ioffset); const fail = std.c.MAP.FAILED; if (rc == fail) { return Maybe([]align(mem.page_size) u8){ - .err = .{ .errno = @truncate(Syscall.Error.Int, @intFromEnum(std.c.getErrno(@bitCast(i64, @intFromPtr(fail))))), .syscall = .mmap }, + .err = .{ .errno = @as(Syscall.Error.Int, @truncate(@intFromEnum(std.c.getErrno(@as(i64, @bitCast(@intFromPtr(fail))))))), .syscall = .mmap }, }; } - return Maybe([]align(mem.page_size) u8){ .result = @ptrCast([*]align(mem.page_size) u8, @alignCast(mem.page_size, rc))[0..length] }; + return Maybe([]align(mem.page_size) u8){ .result = @as([*]align(mem.page_size) u8, @ptrCast(@alignCast(rc)))[0..length] }; } pub fn mmapFile(path: [:0]const u8, flags: u32, wanted_size: ?usize, offset: usize) Maybe([]align(mem.page_size) u8) { @@ -759,13 +759,13 @@ pub fn mmapFile(path: [:0]const u8, flags: u32, wanted_size: ?usize, offset: usi .err => |err| return .{ .err = err }, }; - var size = std.math.sub(usize, @intCast(usize, switch (fstat(fd)) { + var size = std.math.sub(usize, @as(usize, @intCast(switch (fstat(fd)) { .result => |result| result.size, .err => |err| { _ = close(fd); return .{ .err = err }; }, - }), offset) catch 0; + })), offset) catch 0; if (wanted_size) |size_| size = @min(size, size_); @@ -804,7 +804,7 @@ pub const Error = struct { pub const Int: type = std.math.IntFittingRange(0, max_errno_value + 5); errno: Int, - syscall: Syscall.Tag = @enumFromInt(Syscall.Tag, 0), + syscall: Syscall.Tag = @as(Syscall.Tag, @enumFromInt(0)), path: []const u8 = "", fd: i32 = -1, @@ -813,7 +813,7 @@ pub const Error = struct { } pub fn fromCode(errno: os.E, syscall: Syscall.Tag) Error { - return .{ .errno = @truncate(Int, @intFromEnum(errno)), .syscall = syscall }; + return .{ .errno = @as(Int, @truncate(@intFromEnum(errno))), .syscall = syscall }; } pub fn format(self: Error, comptime fmt: []const u8, opts: std.fmt.FormatOptions, writer: anytype) !void { @@ -824,16 +824,16 @@ pub const Error = struct { pub const retry = Error{ .errno = if (Environment.isLinux) - @intCast(Int, @intFromEnum(os.E.AGAIN)) + @as(Int, @intCast(@intFromEnum(os.E.AGAIN))) else if (Environment.isMac) - @intCast(Int, @intFromEnum(os.E.WOULDBLOCK)) + @as(Int, @intCast(@intFromEnum(os.E.WOULDBLOCK))) else - @intCast(Int, @intFromEnum(os.E.INTR)), + @as(Int, @intCast(@intFromEnum(os.E.INTR))), .syscall = .retry, }; pub inline fn getErrno(this: Error) os.E { - return @enumFromInt(os.E, this.errno); + return @as(os.E, @enumFromInt(this.errno)); } pub inline fn withPath(this: Error, path: anytype) Error { @@ -848,7 +848,7 @@ pub const Error = struct { return Error{ .errno = this.errno, .syscall = this.syscall, - .fd = @intCast(i32, fd), + .fd = @as(i32, @intCast(fd)), }; } @@ -878,7 +878,7 @@ pub const Error = struct { // errno label if (this.errno > 0 and this.errno < C.SystemErrno.max) { - const system_errno = @enumFromInt(C.SystemErrno, this.errno); + const system_errno = @as(C.SystemErrno, @enumFromInt(this.errno)); err.code = bun.String.static(@tagName(system_errno)); if (C.SystemErrno.labels.get(system_errno)) |label| { err.message = bun.String.static(label); @@ -935,9 +935,9 @@ pub fn setPipeCapacityOnLinux(fd: bun.FileDescriptor, capacity: usize) Maybe(usi } pub fn getMaxPipeSizeOnLinux() usize { - return @intCast( + return @as( usize, - bun.once(struct { + @intCast(bun.once(struct { fn once() c_int { const strings = bun.strings; const default_out_size = 512 * 1024; @@ -963,8 +963,8 @@ pub fn getMaxPipeSizeOnLinux() usize { // we set the absolute max to 8 MB because honestly that's a huge pipe // my current linux machine only goes up to 1 MB, so that's very unlikely to be hit - return @min(@truncate(c_int, max_pipe_size -| 32), 1024 * 1024 * 8); + return @min(@as(c_int, @truncate(max_pipe_size -| 32)), 1024 * 1024 * 8); } - }.once, c_int), + }.once, c_int)), ); } diff --git a/src/bun.js/node/types.zig b/src/bun.js/node/types.zig index 0b19c7fcc..975a281e5 100644 --- a/src/bun.js/node/types.zig +++ b/src/bun.js/node/types.zig @@ -139,7 +139,7 @@ pub fn Maybe(comptime ResultType: type) type { pub inline fn getErrno(this: @This()) os.E { return switch (this) { .result => os.E.SUCCESS, - .err => |err| @enumFromInt(os.E, err.errno), + .err => |err| @as(os.E, @enumFromInt(err.errno)), }; } @@ -148,7 +148,7 @@ pub fn Maybe(comptime ResultType: type) type { .SUCCESS => null, else => |err| @This(){ // always truncate - .err = .{ .errno = @truncate(Syscall.Error.Int, @intFromEnum(err)) }, + .err = .{ .errno = @as(Syscall.Error.Int, @truncate(@intFromEnum(err))) }, }, }; } @@ -158,7 +158,7 @@ pub fn Maybe(comptime ResultType: type) type { .SUCCESS => null, else => |err| @This(){ // always truncate - .err = .{ .errno = @truncate(Syscall.Error.Int, @intFromEnum(err)), .syscall = syscall }, + .err = .{ .errno = @as(Syscall.Error.Int, @truncate(@intFromEnum(err))), .syscall = syscall }, }, }; } @@ -169,9 +169,9 @@ pub fn Maybe(comptime ResultType: type) type { else => |err| @This(){ // always truncate .err = .{ - .errno = @truncate(Syscall.Error.Int, @intFromEnum(err)), + .errno = @as(Syscall.Error.Int, @truncate(@intFromEnum(err))), .syscall = syscall, - .fd = @intCast(i32, fd), + .fd = @as(i32, @intCast(fd)), }, }, }; @@ -182,7 +182,7 @@ pub fn Maybe(comptime ResultType: type) type { .SUCCESS => null, else => |err| @This(){ // always truncate - .err = .{ .errno = @truncate(Syscall.Error.Int, @intFromEnum(err)), .syscall = syscall, .path = bun.asByteSlice(path) }, + .err = .{ .errno = @as(Syscall.Error.Int, @truncate(@intFromEnum(err))), .syscall = syscall, .path = bun.asByteSlice(path) }, }, }; } @@ -203,7 +203,7 @@ pub const StringOrBuffer = union(Tag) { } pub export fn external_string_finalizer(_: ?*anyopaque, _: JSC.C.JSStringRef, buffer: *anyopaque, byteLength: usize) void { - bun.default_allocator.free(@ptrCast([*]const u8, buffer)[0..byteLength]); + bun.default_allocator.free(@as([*]const u8, @ptrCast(buffer))[0..byteLength]); } pub fn toJS(this: StringOrBuffer, ctx: JSC.C.JSContextRef, exception: JSC.C.ExceptionRef) JSC.C.JSValueRef { @@ -846,7 +846,7 @@ pub const VectorArrayBuffer = struct { bufferlist.ensureTotalCapacityPrecise(len) catch @panic("Failed to allocate memory for ArrayBuffer[]"); while (i < len) { - const element = val.getIndex(globalObject, @truncate(u32, i)); + const element = val.getIndex(globalObject, @as(u32, @truncate(i))); if (!element.isCell()) { JSC.throwInvalidArguments("Expected ArrayBufferView[]", .{}, globalObject, exception); @@ -906,7 +906,7 @@ pub const ArgumentsSlice = struct { } pub fn from(vm: *JSC.VirtualMachine, arguments: []const JSC.JSValueRef) ArgumentsSlice { - return init(vm, @ptrCast([*]const JSC.JSValue, arguments.ptr)[0..arguments.len]); + return init(vm, @as([*]const JSC.JSValue, @ptrCast(arguments.ptr))[0..arguments.len]); } pub fn init(vm: *JSC.VirtualMachine, arguments: []const JSC.JSValue) ArgumentsSlice { return ArgumentsSlice{ @@ -918,7 +918,7 @@ pub const ArgumentsSlice = struct { } pub inline fn len(this: *const ArgumentsSlice) u16 { - return @truncate(u16, this.remaining.len); + return @as(u16, @truncate(this.remaining.len)); } pub fn eat(this: *ArgumentsSlice) void { if (this.remaining.len == 0) { @@ -952,7 +952,7 @@ pub fn fileDescriptorFromJS(ctx: JSC.C.JSContextRef, value: JSC.JSValue, excepti return null; } - return @truncate(bun.FileDescriptor, fd); + return @as(bun.FileDescriptor, @truncate(fd)); } // Node.js docs: @@ -965,7 +965,7 @@ pub fn timeLikeFromJS(globalThis: *JSC.JSGlobalObject, value: JSC.JSValue, _: JS return null; } - return @truncate(TimeLike, @intFromFloat(i64, milliseconds / @as(f64, std.time.ms_per_s))); + return @as(TimeLike, @truncate(@as(i64, @intFromFloat(milliseconds / @as(f64, std.time.ms_per_s))))); } if (!value.isNumber() and !value.isString()) { @@ -977,12 +977,12 @@ pub fn timeLikeFromJS(globalThis: *JSC.JSGlobalObject, value: JSC.JSValue, _: JS return null; } - return @truncate(TimeLike, @intFromFloat(i64, seconds)); + return @as(TimeLike, @truncate(@as(i64, @intFromFloat(seconds)))); } pub fn modeFromJS(ctx: JSC.C.JSContextRef, value: JSC.JSValue, exception: JSC.C.ExceptionRef) ?Mode { const mode_int = if (value.isNumber()) - @truncate(Mode, value.to(Mode)) + @as(Mode, @truncate(value.to(Mode))) else brk: { if (value.isUndefinedOrNull()) return null; @@ -1062,7 +1062,7 @@ pub const PathOrFileDescriptor = union(Tag) { pub fn toJS(this: JSC.Node.PathOrFileDescriptor, ctx: JSC.C.JSContextRef, exception: JSC.C.ExceptionRef) JSC.C.JSValueRef { return switch (this) { .path => this.path.toJS(ctx, exception), - .fd => JSC.JSValue.jsNumberFromInt32(@intCast(i32, this.fd)).asRef(), + .fd => JSC.JSValue.jsNumberFromInt32(@as(i32, @intCast(this.fd))).asRef(), }; } }; @@ -1167,7 +1167,7 @@ pub const FileSystemFlags = enum(Mode) { pub fn fromJS(ctx: JSC.C.JSContextRef, val: JSC.JSValue, exception: JSC.C.ExceptionRef) ?FileSystemFlags { if (val.isNumber()) { const number = val.coerce(i32, ctx); - return @enumFromInt(FileSystemFlags, @intCast(Mode, @max(number, 0))); + return @as(FileSystemFlags, @enumFromInt(@as(Mode, @intCast(@max(number, 0))))); } const jsType = val.jsType(); @@ -1198,7 +1198,7 @@ pub const FileSystemFlags = enum(Mode) { inline else => |is_16bit| { const chars = if (is_16bit) str.utf16SliceAligned() else str.slice(); - if (std.ascii.isDigit(@truncate(u8, chars[0]))) { + if (std.ascii.isDigit(@as(u8, @truncate(chars[0])))) { // node allows "0o644" as a string :( if (is_16bit) { const slice = str.toSlice(bun.default_allocator); @@ -1223,7 +1223,7 @@ pub const FileSystemFlags = enum(Mode) { return null; }; - return @enumFromInt(FileSystemFlags, @intCast(Mode, flags)); + return @as(FileSystemFlags, @enumFromInt(@as(Mode, @intCast(flags)))); } return null; @@ -1235,7 +1235,7 @@ pub const Date = enum(u64) { _, pub fn toJS(this: Date, ctx: JSC.C.JSContextRef, exception: JSC.C.ExceptionRef) JSC.C.JSValueRef { - const seconds = @floatCast(f64, @floatFromInt(f64, @intFromEnum(this)) * 1000.0); + const seconds = @as(f64, @floatCast(@as(f64, @floatFromInt(@intFromEnum(this))) * 1000.0)); const unix_timestamp = JSC.JSValue.jsNumber(seconds); const array: [1]JSC.C.JSValueRef = .{unix_timestamp.asObjectRef()}; const obj = JSC.C.JSObjectMakeDate(ctx, 1, &array, exception); @@ -1272,34 +1272,34 @@ fn StatsDataType(comptime T: type) type { const ctime = stat_.ctime(); return @This(){ - .dev = @truncate(T, @intCast(i64, stat_.dev)), - .ino = @truncate(T, @intCast(i64, stat_.ino)), - .mode = @truncate(T, @intCast(i64, stat_.mode)), - .nlink = @truncate(T, @intCast(i64, stat_.nlink)), - .uid = @truncate(T, @intCast(i64, stat_.uid)), - .gid = @truncate(T, @intCast(i64, stat_.gid)), - .rdev = @truncate(T, @intCast(i64, stat_.rdev)), - .size = @truncate(T, @intCast(i64, stat_.size)), - .blksize = @truncate(T, @intCast(i64, stat_.blksize)), - .blocks = @truncate(T, @intCast(i64, stat_.blocks)), - .atime_ms = (@floatFromInt(f64, @max(atime.tv_sec, 0)) * std.time.ms_per_s) + (@floatFromInt(f64, @intCast(usize, @max(atime.tv_nsec, 0))) / std.time.ns_per_ms), - .mtime_ms = (@floatFromInt(f64, @max(mtime.tv_sec, 0)) * std.time.ms_per_s) + (@floatFromInt(f64, @intCast(usize, @max(mtime.tv_nsec, 0))) / std.time.ns_per_ms), - .ctime_ms = (@floatFromInt(f64, @max(ctime.tv_sec, 0)) * std.time.ms_per_s) + (@floatFromInt(f64, @intCast(usize, @max(ctime.tv_nsec, 0))) / std.time.ns_per_ms), - .atime = @enumFromInt(Date, @intCast(u64, @max(atime.tv_sec, 0))), - .mtime = @enumFromInt(Date, @intCast(u64, @max(mtime.tv_sec, 0))), - .ctime = @enumFromInt(Date, @intCast(u64, @max(ctime.tv_sec, 0))), + .dev = @as(T, @truncate(@as(i64, @intCast(stat_.dev)))), + .ino = @as(T, @truncate(@as(i64, @intCast(stat_.ino)))), + .mode = @as(T, @truncate(@as(i64, @intCast(stat_.mode)))), + .nlink = @as(T, @truncate(@as(i64, @intCast(stat_.nlink)))), + .uid = @as(T, @truncate(@as(i64, @intCast(stat_.uid)))), + .gid = @as(T, @truncate(@as(i64, @intCast(stat_.gid)))), + .rdev = @as(T, @truncate(@as(i64, @intCast(stat_.rdev)))), + .size = @as(T, @truncate(@as(i64, @intCast(stat_.size)))), + .blksize = @as(T, @truncate(@as(i64, @intCast(stat_.blksize)))), + .blocks = @as(T, @truncate(@as(i64, @intCast(stat_.blocks)))), + .atime_ms = (@as(f64, @floatFromInt(@max(atime.tv_sec, 0))) * std.time.ms_per_s) + (@as(f64, @floatFromInt(@as(usize, @intCast(@max(atime.tv_nsec, 0))))) / std.time.ns_per_ms), + .mtime_ms = (@as(f64, @floatFromInt(@max(mtime.tv_sec, 0))) * std.time.ms_per_s) + (@as(f64, @floatFromInt(@as(usize, @intCast(@max(mtime.tv_nsec, 0))))) / std.time.ns_per_ms), + .ctime_ms = (@as(f64, @floatFromInt(@max(ctime.tv_sec, 0))) * std.time.ms_per_s) + (@as(f64, @floatFromInt(@as(usize, @intCast(@max(ctime.tv_nsec, 0))))) / std.time.ns_per_ms), + .atime = @as(Date, @enumFromInt(@as(u64, @intCast(@max(atime.tv_sec, 0))))), + .mtime = @as(Date, @enumFromInt(@as(u64, @intCast(@max(mtime.tv_sec, 0))))), + .ctime = @as(Date, @enumFromInt(@as(u64, @intCast(@max(ctime.tv_sec, 0))))), // Linux doesn't include this info in stat // maybe it does in statx, but do you really need birthtime? If you do please file an issue. .birthtime_ms = if (Environment.isLinux) 0 else - @truncate(T, @intCast(i64, if (stat_.birthtime().tv_nsec > 0) (@intCast(usize, stat_.birthtime().tv_nsec) / std.time.ns_per_ms) else 0)), + @as(T, @truncate(@as(i64, @intCast(if (stat_.birthtime().tv_nsec > 0) (@as(usize, @intCast(stat_.birthtime().tv_nsec)) / std.time.ns_per_ms) else 0)))), .birthtime = if (Environment.isLinux) - @enumFromInt(Date, 0) + @as(Date, @enumFromInt(0)) else - @enumFromInt(Date, @intCast(u64, @max(stat_.birthtime().tv_sec, 0))), + @as(Date, @enumFromInt(@as(u64, @intCast(@max(stat_.birthtime().tv_sec, 0))))), }; } }; @@ -1375,33 +1375,33 @@ pub const Stats = union(enum) { fn modeInternal(this: *This) i32 { return switch (this.*) { - .big => @truncate(i32, this.big.mode), + .big => @as(i32, @truncate(this.big.mode)), .small => this.small.mode, }; } pub fn isBlockDevice(this: *This) JSC.JSValue { - return JSC.JSValue.jsBoolean(os.S.ISBLK(@intCast(Mode, this.modeInternal()))); + return JSC.JSValue.jsBoolean(os.S.ISBLK(@as(Mode, @intCast(this.modeInternal())))); } pub fn isCharacterDevice(this: *This) JSC.JSValue { - return JSC.JSValue.jsBoolean(os.S.ISCHR(@intCast(Mode, this.modeInternal()))); + return JSC.JSValue.jsBoolean(os.S.ISCHR(@as(Mode, @intCast(this.modeInternal())))); } pub fn isDirectory(this: *This) JSC.JSValue { - return JSC.JSValue.jsBoolean(os.S.ISDIR(@intCast(Mode, this.modeInternal()))); + return JSC.JSValue.jsBoolean(os.S.ISDIR(@as(Mode, @intCast(this.modeInternal())))); } pub fn isFIFO(this: *This) JSC.JSValue { - return JSC.JSValue.jsBoolean(os.S.ISFIFO(@intCast(Mode, this.modeInternal()))); + return JSC.JSValue.jsBoolean(os.S.ISFIFO(@as(Mode, @intCast(this.modeInternal())))); } pub fn isFile(this: *This) JSC.JSValue { - return JSC.JSValue.jsBoolean(os.S.ISREG(@intCast(Mode, this.modeInternal()))); + return JSC.JSValue.jsBoolean(os.S.ISREG(@as(Mode, @intCast(this.modeInternal())))); } pub fn isSocket(this: *This) JSC.JSValue { - return JSC.JSValue.jsBoolean(os.S.ISSOCK(@intCast(Mode, this.modeInternal()))); + return JSC.JSValue.jsBoolean(os.S.ISSOCK(@as(Mode, @intCast(this.modeInternal())))); } // Node.js says this method is only valid on the result of lstat() @@ -1410,7 +1410,7 @@ pub const Stats = union(enum) { // // See https://nodejs.org/api/fs.html#statsissymboliclink pub fn isSymbolicLink(this: *This) JSC.JSValue { - return JSC.JSValue.jsBoolean(os.S.ISLNK(@intCast(Mode, this.modeInternal()))); + return JSC.JSValue.jsBoolean(os.S.ISLNK(@as(Mode, @intCast(this.modeInternal())))); } pub fn finalize(this: *This) callconv(.C) void { @@ -2204,7 +2204,7 @@ pub const Process = struct { // However, this might be called many times in a row, so we use a pre-allocated buffer // that way we don't have to worry about garbage collector JSC.VirtualMachine.get().bundler.fs.top_level_dir = std.os.getcwd(&JSC.VirtualMachine.get().bundler.fs.top_level_dir_buf) catch { - _ = Syscall.chdir(@ptrCast([:0]const u8, JSC.VirtualMachine.get().bundler.fs.top_level_dir)); + _ = Syscall.chdir(@as([:0]const u8, @ptrCast(JSC.VirtualMachine.get().bundler.fs.top_level_dir))); return JSC.toInvalidArguments("Invalid path", .{}, globalObject.ref()); }; @@ -2220,13 +2220,13 @@ pub const Process = struct { pub fn exit(globalObject: *JSC.JSGlobalObject, code: i32) callconv(.C) void { var vm = globalObject.bunVM(); if (vm.worker) |worker| { - vm.exit_handler.exit_code = @truncate(u8, @max(code, 0)); + vm.exit_handler.exit_code = @as(u8, @truncate(@max(code, 0))); worker.terminate(); return; } vm.onExit(); - std.os.exit(@truncate(u8, @intCast(u32, @max(code, 0)))); + std.os.exit(@as(u8, @truncate(@as(u32, @intCast(@max(code, 0)))))); } pub export const Bun__version: [*:0]const u8 = "v" ++ bun.Global.package_json_version; diff --git a/src/bun.js/test/diff_format.zig b/src/bun.js/test/diff_format.zig index 4558a5f39..46afa8d0b 100644 --- a/src/bun.js/test/diff_format.zig +++ b/src/bun.js/test/diff_format.zig @@ -104,7 +104,7 @@ pub const DiffFormatter = struct { ZigConsoleClient.format( .Debug, this.globalObject, - @ptrCast([*]const JSValue, &received), + @as([*]const JSValue, @ptrCast(&received)), 1, Writer, Writer, @@ -118,7 +118,7 @@ pub const DiffFormatter = struct { ZigConsoleClient.format( .Debug, this.globalObject, - @ptrCast([*]const JSValue, &this.expected), + @as([*]const JSValue, @ptrCast(&this.expected)), 1, Writer, Writer, diff --git a/src/bun.js/test/expect.zig b/src/bun.js/test/expect.zig index 12f7011fb..e7209e683 100644 --- a/src/bun.js/test/expect.zig +++ b/src/bun.js/test/expect.zig @@ -117,7 +117,7 @@ pub const Expect = struct { const now = std.time.Instant.now() catch unreachable; const pending_test = Jest.runner.?.pending_test.?; const elapsed = @divFloor(now.since(pending_test.started_at), std.time.ns_per_ms); - const remaining = @truncate(u32, Jest.runner.?.last_test_timeout_timer_duration -| elapsed); + const remaining = @as(u32, @truncate(Jest.runner.?.last_test_timeout_timer_duration -| elapsed)); if (!globalThis.bunVM().waitForPromiseWithTimeout(promise, remaining)) { pending_test.timeout(); @@ -2139,7 +2139,7 @@ pub const Expect = struct { active_test_expectation_counter.actual += 1; const not = this.flags.not; - var pass = value.jsType().isArray() and @intCast(i32, value.getLength(globalThis)) == size.toInt32(); + var pass = value.jsType().isArray() and @as(i32, @intCast(value.getLength(globalThis))) == size.toInt32(); if (not) pass = !pass; if (pass) return thisValue; @@ -3003,7 +3003,7 @@ pub const Expect = struct { const times = arguments[0].coerce(i32, globalObject); - var pass = @intCast(i32, calls.getLength(globalObject)) == times; + var pass = @as(i32, @intCast(calls.getLength(globalObject))) == times; const not = this.flags.not; if (not) pass = !pass; diff --git a/src/bun.js/test/jest.zig b/src/bun.js/test/jest.zig index 4c97b5c77..429b79bcc 100644 --- a/src/bun.js/test/jest.zig +++ b/src/bun.js/test/jest.zig @@ -127,7 +127,7 @@ pub const TestRunner = struct { if (this.last_test_timeout_timer_duration != milliseconds) { this.last_test_timeout_timer_duration = milliseconds; - this.test_timeout_timer.?.set(this, onTestTimeout, @intCast(i32, milliseconds), @intCast(i32, milliseconds)); + this.test_timeout_timer.?.set(this, onTestTimeout, @as(i32, @intCast(milliseconds)), @as(i32, @intCast(milliseconds))); } } } @@ -209,7 +209,7 @@ pub const TestRunner = struct { pub fn addTestCount(this: *TestRunner, count: u32) u32 { this.tests.ensureUnusedCapacity(this.allocator, count) catch unreachable; - const start = @truncate(Test.ID, this.tests.len); + const start = @as(Test.ID, @truncate(this.tests.len)); this.tests.len += count; var statuses = this.tests.items(.status)[start..][0..count]; @memset(statuses, Test.Status.pending); @@ -218,15 +218,15 @@ pub const TestRunner = struct { } pub fn getOrPutFile(this: *TestRunner, file_path: string) *DescribeScope { - var entry = this.index.getOrPut(this.allocator, @truncate(u32, bun.hash(file_path))) catch unreachable; + var entry = this.index.getOrPut(this.allocator, @as(u32, @truncate(bun.hash(file_path)))) catch unreachable; if (entry.found_existing) { return this.files.items(.module_scope)[entry.value_ptr.*]; } var scope = this.allocator.create(DescribeScope) catch unreachable; - const file_id = @truncate(File.ID, this.files.len); + const file_id = @as(File.ID, @truncate(this.files.len)); scope.* = DescribeScope{ .file_id = file_id, - .test_id_start = @truncate(Test.ID, this.tests.len), + .test_id_start = @as(Test.ID, @truncate(this.tests.len)), }; this.files.append(this.allocator, .{ .module_scope = scope, .source = logger.Source.initEmptyFile(file_path) }) catch unreachable; entry.value_ptr.* = file_id; @@ -502,7 +502,7 @@ pub const Jest = struct { JSError(getAllocator(ctx), "Run \"bun test\" to run a test", .{}, ctx, exception); return js.JSValueMakeUndefined(ctx); }; - const arguments = @ptrCast([]const JSC.JSValue, arguments_); + const arguments = @as([]const JSC.JSValue, @ptrCast(arguments_)); if (arguments.len < 1 or !arguments[0].isString()) { JSError(getAllocator(ctx), "Bun.jest() expects a string filename", .{}, ctx, exception); @@ -1077,7 +1077,7 @@ pub const DescribeScope = struct { const file = this.file_id; const allocator = getAllocator(globalObject); var tests: []TestScope = this.tests.items; - const end = @truncate(TestRunner.Test.ID, tests.len); + const end = @as(TestRunner.Test.ID, @truncate(tests.len)); this.pending_tests = std.DynamicBitSetUnmanaged.initFull(allocator, end) catch unreachable; if (end == 0) { @@ -1384,7 +1384,7 @@ pub const TestRunnerTask = struct { fn deinit(this: *TestRunnerTask) void { var vm = JSC.VirtualMachine.get(); if (vm.onUnhandledRejectionCtx) |ctx| { - if (ctx == @ptrCast(*anyopaque, this)) { + if (ctx == @as(*anyopaque, @ptrCast(this))) { vm.onUnhandledRejectionCtx = null; } } @@ -1457,14 +1457,14 @@ inline fn createScope( var timeout_ms: u32 = Jest.runner.?.default_timeout_ms; if (options.isNumber()) { - timeout_ms = @intCast(u32, @max(args[2].coerce(i32, globalThis), 0)); + timeout_ms = @as(u32, @intCast(@max(args[2].coerce(i32, globalThis), 0))); } else if (options.isObject()) { if (options.get(globalThis, "timeout")) |timeout| { if (!timeout.isNumber()) { globalThis.throwPretty("{s} expects timeout to be a number", .{signature}); return .zero; } - timeout_ms = @intCast(u32, @max(timeout.coerce(i32, globalThis), 0)); + timeout_ms = @as(u32, @intCast(@max(timeout.coerce(i32, globalThis), 0))); } if (options.get(globalThis, "retry")) |retries| { if (!retries.isNumber()) { @@ -1642,7 +1642,7 @@ pub fn printGithubAnnotation(exception: *JSC.ZigException) void { var i: i16 = 0; while (i < frames.len) : (i += 1) { - const frame = frames[@intCast(usize, i)]; + const frame = frames[@as(usize, @intCast(i))]; const source_url = frame.source_url.toUTF8(allocator); defer source_url.deinit(); const file = bun.path.relative(dir, source_url.slice()); diff --git a/src/bun.js/test/pretty_format.zig b/src/bun.js/test/pretty_format.zig index e907dd711..7d334d8e7 100644 --- a/src/bun.js/test/pretty_format.zig +++ b/src/bun.js/test/pretty_format.zig @@ -549,7 +549,7 @@ pub const JestPrettyFormat = struct { var writer = WrappedWriter(Writer){ .ctx = writer_ }; var slice = slice_; var i: u32 = 0; - var len: u32 = @truncate(u32, slice.len); + var len: u32 = @as(u32, @truncate(slice.len)); var any_non_ascii = false; while (i < len) : (i += 1) { switch (slice[i]) { @@ -576,7 +576,7 @@ pub const JestPrettyFormat = struct { any_non_ascii = false; slice = slice[@min(slice.len, i + 1)..]; i = 0; - len = @truncate(u32, slice.len); + len = @as(u32, @truncate(slice.len)); const next_value = this.remaining_values[0]; this.remaining_values = this.remaining_values[1..]; switch (token) { @@ -1047,7 +1047,7 @@ pub const JestPrettyFormat = struct { i = -i; } const digits = if (i != 0) - bun.fmt.fastDigitCount(@intCast(usize, i)) + @as(usize, @intFromBool(is_negative)) + bun.fmt.fastDigitCount(@as(usize, @intCast(i))) + @as(usize, @intFromBool(is_negative)) else 1; this.addForNewLine(digits); @@ -1139,7 +1139,7 @@ pub const JestPrettyFormat = struct { } }, .Array => { - const len = @truncate(u32, value.getLength(this.globalThis)); + const len = @as(u32, @truncate(value.getLength(this.globalThis))); if (len == 0) { writer.writeAll("[]"); this.addForNewLine(2); @@ -1250,9 +1250,9 @@ pub const JestPrettyFormat = struct { enable_ansi_colors, ); } else if (value.as(JSC.API.Bun.Timer.TimerObject)) |timer| { - this.addForNewLine("Timeout(# ) ".len + bun.fmt.fastDigitCount(@intCast(u64, @max(timer.id, 0)))); + this.addForNewLine("Timeout(# ) ".len + bun.fmt.fastDigitCount(@as(u64, @intCast(@max(timer.id, 0))))); if (timer.kind == .setInterval) { - this.addForNewLine("repeats ".len + bun.fmt.fastDigitCount(@intCast(u64, @max(timer.id, 0)))); + this.addForNewLine("repeats ".len + bun.fmt.fastDigitCount(@as(u64, @intCast(@max(timer.id, 0))))); writer.print(comptime Output.prettyFmt("<r><blue>Timeout<r> <d>(#<yellow>{d}<r><d>, repeats)<r>", enable_ansi_colors), .{ timer.id, }); @@ -1670,7 +1670,7 @@ pub const JestPrettyFormat = struct { var j: usize = 0; while (j < length) : (j += 1) { - const child = JSC.JSObject.getIndex(children, this.globalThis, @intCast(u32, j)); + const child = JSC.JSObject.getIndex(children, this.globalThis, @as(u32, @intCast(j))); this.format(Tag.get(child, this.globalThis), Writer, writer_, child, this.globalThis, enable_ansi_colors); if (j + 1 < length) { writer.writeAll("\n"); @@ -1827,7 +1827,7 @@ pub const JestPrettyFormat = struct { if (slice.len > 0) { switch (jsType) { .Int8Array => { - const slice_with_type = @alignCast(std.meta.alignment([]i8), std.mem.bytesAsSlice(i8, slice)); + const slice_with_type: []align(std.meta.alignment([]i8)) i8 = @alignCast(std.mem.bytesAsSlice(i8, slice)); this.indent += 1; defer this.indent -|= 1; for (slice_with_type) |el| { @@ -1837,7 +1837,7 @@ pub const JestPrettyFormat = struct { } }, .Int16Array => { - const slice_with_type = @alignCast(std.meta.alignment([]i16), std.mem.bytesAsSlice(i16, slice)); + const slice_with_type: []align(std.meta.alignment([]i16)) i16 = @alignCast(std.mem.bytesAsSlice(i16, slice)); this.indent += 1; defer this.indent -|= 1; for (slice_with_type) |el| { @@ -1847,7 +1847,7 @@ pub const JestPrettyFormat = struct { } }, .Uint16Array => { - const slice_with_type = @alignCast(std.meta.alignment([]u16), std.mem.bytesAsSlice(u16, slice)); + const slice_with_type: []align(std.meta.alignment([]u16)) u16 = @alignCast(std.mem.bytesAsSlice(u16, slice)); this.indent += 1; defer this.indent -|= 1; for (slice_with_type) |el| { @@ -1857,7 +1857,7 @@ pub const JestPrettyFormat = struct { } }, .Int32Array => { - const slice_with_type = @alignCast(std.meta.alignment([]i32), std.mem.bytesAsSlice(i32, slice)); + const slice_with_type: []align(std.meta.alignment([]i32)) i32 = @alignCast(std.mem.bytesAsSlice(i32, slice)); this.indent += 1; defer this.indent -|= 1; for (slice_with_type) |el| { @@ -1867,7 +1867,7 @@ pub const JestPrettyFormat = struct { } }, .Uint32Array => { - const slice_with_type = @alignCast(std.meta.alignment([]u32), std.mem.bytesAsSlice(u32, slice)); + const slice_with_type: []align(std.meta.alignment([]u32)) u32 = @alignCast(std.mem.bytesAsSlice(u32, slice)); this.indent += 1; defer this.indent -|= 1; for (slice_with_type) |el| { @@ -1877,7 +1877,7 @@ pub const JestPrettyFormat = struct { } }, .Float32Array => { - const slice_with_type = @alignCast(std.meta.alignment([]f32), std.mem.bytesAsSlice(f32, slice)); + const slice_with_type: []align(std.meta.alignment([]f32)) f32 = @alignCast(std.mem.bytesAsSlice(f32, slice)); this.indent += 1; defer this.indent -|= 1; for (slice_with_type) |el| { @@ -1887,7 +1887,7 @@ pub const JestPrettyFormat = struct { } }, .Float64Array => { - const slice_with_type = @alignCast(std.meta.alignment([]f64), std.mem.bytesAsSlice(f64, slice)); + const slice_with_type: []align(std.meta.alignment([]f64)) f64 = @alignCast(std.mem.bytesAsSlice(f64, slice)); this.indent += 1; defer this.indent -|= 1; for (slice_with_type) |el| { @@ -1897,7 +1897,7 @@ pub const JestPrettyFormat = struct { } }, .BigInt64Array => { - const slice_with_type = @alignCast(std.meta.alignment([]i64), std.mem.bytesAsSlice(i64, slice)); + const slice_with_type: []align(std.meta.alignment([]i64)) i64 = @alignCast(std.mem.bytesAsSlice(i64, slice)); this.indent += 1; defer this.indent -|= 1; for (slice_with_type) |el| { @@ -1907,7 +1907,7 @@ pub const JestPrettyFormat = struct { } }, .BigUint64Array => { - const slice_with_type = @alignCast(std.meta.alignment([]u64), std.mem.bytesAsSlice(u64, slice)); + const slice_with_type: []align(std.meta.alignment([]u64)) u64 = @alignCast(std.mem.bytesAsSlice(u64, slice)); this.indent += 1; defer this.indent -|= 1; for (slice_with_type) |el| { @@ -1919,7 +1919,7 @@ pub const JestPrettyFormat = struct { // Uint8Array, Uint8ClampedArray, DataView, ArrayBuffer else => { - var slice_with_type = @alignCast(std.meta.alignment([]u8), std.mem.bytesAsSlice(u8, slice)); + var slice_with_type: []align(std.meta.alignment([]u8)) u8 = @alignCast(std.mem.bytesAsSlice(u8, slice)); this.indent += 1; defer this.indent -|= 1; for (slice_with_type) |el| { diff --git a/src/bun.js/webcore.zig b/src/bun.js/webcore.zig index 8cb9ec80a..5fdc64c82 100644 --- a/src/bun.js/webcore.zig +++ b/src/bun.js/webcore.zig @@ -419,7 +419,7 @@ pub const Crypto = struct { var cost: ?usize = null; var parallelization: ?usize = null; var maxmem: usize = 32 * 1024 * 1024; - const keylen = @intCast(u32, @truncate(i33, keylen_int)); + const keylen = @as(u32, @intCast(@as(i33, @truncate(keylen_int)))); if (options) |options_value| outer: { if (options_value.isUndefined() or options_value == .zero) @@ -441,7 +441,7 @@ pub const Crypto = struct { .{}, ); } else if (N_int != 0) { - cost = @intCast(usize, N_int); + cost = @as(usize, @intCast(N_int)); } } @@ -456,7 +456,7 @@ pub const Crypto = struct { .{}, ); } else if (r_int != 0) { - blockSize = @intCast(usize, r_int); + blockSize = @as(usize, @intCast(r_int)); } } @@ -471,7 +471,7 @@ pub const Crypto = struct { .{}, ); } else if (p_int != 0) { - parallelization = @intCast(usize, p_int); + parallelization = @as(usize, @intCast(p_int)); } } @@ -485,7 +485,7 @@ pub const Crypto = struct { .{}, ); } else if (p_int != 0) { - maxmem = @intCast(usize, p_int); + maxmem = @as(usize, @intCast(p_int)); } } } @@ -664,7 +664,7 @@ pub const Crypto = struct { ) callconv(.C) JSC.JSValue { var slice = array.slice(); randomData(globalThis, slice.ptr, slice.len); - return @enumFromInt(JSC.JSValue, @bitCast(i64, @intFromPtr(array))); + return @as(JSC.JSValue, @enumFromInt(@as(i64, @bitCast(@intFromPtr(array))))); } fn randomData( diff --git a/src/bun.js/webcore/blob.zig b/src/bun.js/webcore/blob.zig index 7e0b7f24b..f2332a764 100644 --- a/src/bun.js/webcore/blob.zig +++ b/src/bun.js/webcore/blob.zig @@ -217,7 +217,7 @@ pub const Blob = struct { pub const WriteError = error{}; pub fn write(this: StructuredCloneWriter, bytes: []const u8) WriteError!usize { - this.impl(this.ctx, bytes.ptr, @truncate(u32, bytes.len)); + this.impl(this.ctx, bytes.ptr, @as(u32, @truncate(bytes.len))); return bytes.len; } }; @@ -229,9 +229,9 @@ pub const Blob = struct { ) !void { try writer.writeIntNative(u8, serialization_version); - try writer.writeIntNative(u64, @intCast(u64, this.offset)); + try writer.writeIntNative(u64, @as(u64, @intCast(this.offset))); - try writer.writeIntNative(u32, @truncate(u32, this.content_type.len)); + try writer.writeIntNative(u32, @as(u32, @truncate(this.content_type.len))); _ = try writer.write(this.content_type); try writer.writeIntNative(u8, @intFromBool(this.content_type_was_set)); @@ -329,7 +329,7 @@ pub const Blob = struct { switch (pathlike_tag) { .fd => { - const fd = @intCast(i32, try reader.readIntNative(u32)); + const fd = @as(i32, @intCast(try reader.readIntNative(u32))); var blob = try allocator.create(Blob); blob.* = Blob.findOrCreateFileFromPath( @@ -369,7 +369,7 @@ pub const Blob = struct { }, }; blob.allocator = allocator; - blob.offset = @intCast(u52, offset); + blob.offset = @as(u52, @intCast(offset)); if (content_type.len > 0) { blob.content_type = content_type; blob.content_type_allocated = true; @@ -736,9 +736,9 @@ pub const Blob = struct { return JSPromise.resolvedPromiseValue(ctx.ptr(), cloned.toJS(ctx)).asObjectRef(); } else if (destination_type == .bytes and source_type == .file) { var fake_call_frame: [8]JSC.JSValue = undefined; - @memset(@ptrCast([*]u8, &fake_call_frame)[0..@sizeOf(@TypeOf(fake_call_frame))], 0); + @memset(@as([*]u8, @ptrCast(&fake_call_frame))[0..@sizeOf(@TypeOf(fake_call_frame))], 0); const blob_value = - source_blob.getSlice(ctx, @ptrCast(*JSC.CallFrame, &fake_call_frame)); + source_blob.getSlice(ctx, @as(*JSC.CallFrame, @ptrCast(&fake_call_frame))); return JSPromise.resolvedPromiseValue( ctx.ptr(), @@ -1010,7 +1010,7 @@ pub const Blob = struct { // we only truncate if it's a path // if it's a file descriptor, we assume they want manual control over that behavior if (truncate) { - _ = JSC.Node.Syscall.system.ftruncate(fd, @intCast(i64, written)); + _ = JSC.Node.Syscall.system.ftruncate(fd, @as(i64, @intCast(written))); } if (needs_open) { @@ -1076,7 +1076,7 @@ pub const Blob = struct { var written: usize = 0; defer { if (truncate) { - _ = JSC.Node.Syscall.system.ftruncate(fd, @intCast(i64, written)); + _ = JSC.Node.Syscall.system.ftruncate(fd, @as(i64, @intCast(written))); } if (needs_open) { @@ -1298,18 +1298,18 @@ pub const Blob = struct { switch (file.pathlike) { .fd => |fd| { - try writer.writeIntNative(u32, @intCast(u32, fd)); + try writer.writeIntNative(u32, @as(u32, @intCast(fd))); }, .path => |path| { const path_slice = path.slice(); - try writer.writeIntNative(u32, @truncate(u32, path_slice.len)); + try writer.writeIntNative(u32, @as(u32, @truncate(path_slice.len))); _ = try writer.write(path_slice); }, } }, .bytes => |bytes| { const slice = bytes.slice(); - try writer.writeIntNative(u32, @truncate(u32, slice.len)); + try writer.writeIntNative(u32, @as(u32, @truncate(slice.len))); _ = try writer.write(slice); }, } @@ -1409,7 +1409,7 @@ pub const Blob = struct { this.file_blob.store.?.data.file.pathlike.path; this.system_error = (JSC.Node.Syscall.Error{ - .errno = @intCast(JSC.Node.Syscall.Error.Int, -completion.result), + .errno = @as(JSC.Node.Syscall.Error.Int, @intCast(-completion.result)), .path = path_string.slice(), .syscall = .open, }).toSystemError(); @@ -1544,7 +1544,7 @@ pub const Blob = struct { } }; - return try ReadFile.createWithCtx(allocator, store, @ptrCast(*anyopaque, context), Handler.run, off, max_len); + return try ReadFile.createWithCtx(allocator, store, @as(*anyopaque, @ptrCast(context)), Handler.run, off, max_len); } pub fn doRead(this: *ReadFile) void { @@ -1605,11 +1605,11 @@ pub const Blob = struct { pub fn onRead(this: *ReadFile, completion: *HTTPClient.NetworkThread.Completion, result: AsyncIO.ReadError!usize) void { defer this.doReadLoop(); - this.read_len = @truncate(SizeType, result catch |err| { + this.read_len = @as(SizeType, @truncate(result catch |err| { if (@hasField(HTTPClient.NetworkThread.Completion, "result")) { this.errno = AsyncIO.asError(-completion.result); this.system_error = (JSC.Node.Syscall.Error{ - .errno = @intCast(JSC.Node.Syscall.Error.Int, -completion.result), + .errno = @as(JSC.Node.Syscall.Error.Int, @intCast(-completion.result)), .syscall = .read, }).toSystemError(); } else { @@ -1627,7 +1627,7 @@ pub const Blob = struct { this.read_len = 0; return; - }); + })); } fn runAsync(this: *ReadFile, task: *ReadFileTask) void { @@ -1689,7 +1689,7 @@ pub const Blob = struct { if (stat.size > 0 and std.os.S.ISREG(stat.mode)) { this.size = @min( - @truncate(SizeType, @intCast(SizeType, @max(@intCast(i64, stat.size), 0))), + @as(SizeType, @truncate(@as(SizeType, @intCast(@max(@as(i64, @intCast(stat.size)), 0))))), this.max_length, ); // read up to 4k at a time if @@ -1730,7 +1730,7 @@ pub const Blob = struct { fn doReadLoop(this: *ReadFile) void { this.read_off += this.read_len; - var remain = this.buffer[@min(this.read_off, @truncate(Blob.SizeType, this.buffer.len))..]; + var remain = this.buffer[@min(this.read_off, @as(Blob.SizeType, @truncate(this.buffer.len)))..]; if (remain.len > 0 and this.errno == null) { this.doRead(); @@ -1805,7 +1805,7 @@ pub const Blob = struct { allocator, file_blob, bytes_blob, - @ptrCast(*anyopaque, context), + @as(*anyopaque, @ptrCast(context)), Handler.run, ); } @@ -1849,7 +1849,7 @@ pub const Blob = struct { const wrote = this.wrote; bun.default_allocator.destroy(this); - cb(cb_ctx, .{ .result = @truncate(SizeType, wrote) }); + cb(cb_ctx, .{ .result = @as(SizeType, @truncate(wrote)) }); } pub fn run(this: *WriteFile, task: *WriteFileTask) void { this.io_task = task; @@ -1858,7 +1858,7 @@ pub const Blob = struct { pub fn onWrite(this: *WriteFile, _: *HTTPClient.NetworkThread.Completion, result: AsyncIO.WriteError!usize) void { defer this.doWriteLoop(); - this.wrote += @truncate(SizeType, result catch |errno| { + this.wrote += @as(SizeType, @truncate(result catch |errno| { this.errno = errno; this.system_error = this.system_error orelse JSC.SystemError{ .code = bun.String.static(bun.asByteSlice(@errorName(errno))), @@ -1867,7 +1867,7 @@ pub const Blob = struct { this.wrote = 0; return; - }); + })); } fn runAsync(this: *WriteFile) void { @@ -1920,12 +1920,12 @@ pub const Blob = struct { }; const unsupported_directory_error = SystemError{ - .errno = @intCast(c_int, @intFromEnum(bun.C.SystemErrno.EISDIR)), + .errno = @as(c_int, @intCast(@intFromEnum(bun.C.SystemErrno.EISDIR))), .message = bun.String.static("That doesn't work on folders"), .syscall = bun.String.static("fstat"), }; const unsupported_non_regular_file_error = SystemError{ - .errno = @intCast(c_int, @intFromEnum(bun.C.SystemErrno.ENOTSUP)), + .errno = @as(c_int, @intCast(@intFromEnum(bun.C.SystemErrno.ENOTSUP))), .message = bun.String.static("Non-regular files aren't supported yet"), .syscall = bun.String.static("fstat"), }; @@ -2127,7 +2127,7 @@ pub const Blob = struct { const dest_fd = this.destination_fd; defer { - this.read_len = @truncate(SizeType, total_written); + this.read_len = @as(SizeType, @truncate(total_written)); } var has_unset_append = false; @@ -2158,14 +2158,14 @@ pub const Blob = struct { } this.system_error = (JSC.Node.Syscall.Error{ - .errno = @intCast(JSC.Node.Syscall.Error.Int, @intFromEnum(linux.E.INVAL)), + .errno = @as(JSC.Node.Syscall.Error.Int, @intCast(@intFromEnum(linux.E.INVAL))), .syscall = TryWith.tag.get(use).?, }).toSystemError(); return AsyncIO.asError(linux.E.INVAL); }, else => |errno| { this.system_error = (JSC.Node.Syscall.Error{ - .errno = @intCast(JSC.Node.Syscall.Error.Int, @intFromEnum(errno)), + .errno = @as(JSC.Node.Syscall.Error.Int, @intCast(@intFromEnum(errno))), .syscall = TryWith.tag.get(use).?, }).toSystemError(); return AsyncIO.asError(errno); @@ -2252,15 +2252,15 @@ pub const Blob = struct { } if (this.doClonefile()) { - if (this.max_length != Blob.max_size and this.max_length < @intCast(SizeType, stat_.?.size)) { + if (this.max_length != Blob.max_size and this.max_length < @as(SizeType, @intCast(stat_.?.size))) { // If this fails...well, there's not much we can do about it. _ = bun.C.truncate( this.destination_file_store.pathlike.path.sliceZAssume(), - @intCast(std.os.off_t, this.max_length), + @as(std.os.off_t, @intCast(this.max_length)), ); - this.read_len = @intCast(SizeType, this.max_length); + this.read_len = @as(SizeType, @intCast(this.max_length)); } else { - this.read_len = @intCast(SizeType, stat_.?.size); + this.read_len = @as(SizeType, @intCast(stat_.?.size)); } return; } else |_| { @@ -2313,7 +2313,7 @@ pub const Blob = struct { } if (stat.size != 0) { - this.max_length = @max(@min(@intCast(SizeType, stat.size), this.max_length), this.offset) - this.offset; + this.max_length = @max(@min(@as(SizeType, @intCast(stat.size)), this.max_length), this.offset) - this.offset; if (this.max_length == 0) { this.doClose(); return; @@ -2375,8 +2375,8 @@ pub const Blob = struct { return; }; - if (stat.size != 0 and @intCast(SizeType, stat.size) > this.max_length) { - _ = darwin.ftruncate(this.destination_fd, @intCast(std.os.off_t, this.max_length)); + if (stat.size != 0 and @as(SizeType, @intCast(stat.size)) > this.max_length) { + _ = darwin.ftruncate(this.destination_fd, @as(std.os.off_t, @intCast(this.max_length))); } this.doClose(); @@ -2426,8 +2426,8 @@ pub const Blob = struct { pub fn init(bytes: []u8, allocator: std.mem.Allocator) ByteStore { return .{ .ptr = bytes.ptr, - .len = @truncate(SizeType, bytes.len), - .cap = @truncate(SizeType, bytes.len), + .len = @as(SizeType, @truncate(bytes.len)), + .cap = @as(SizeType, @truncate(bytes.len)), .allocator = allocator, }; } @@ -2470,7 +2470,7 @@ pub const Blob = struct { return JSValue.jsUndefined(); } - recommended_chunk_size = @intCast(SizeType, @max(0, @truncate(i52, arguments[0].toInt64()))); + recommended_chunk_size = @as(SizeType, @intCast(@max(0, @as(i52, @truncate(arguments[0].toInt64()))))); } return JSC.WebCore.ReadableStream.fromBlob( globalThis, @@ -2665,7 +2665,7 @@ pub const Blob = struct { var relativeStart: i64 = 0; // If the optional end parameter is not used as a parameter when making this call, let relativeEnd be size. - var relativeEnd: i64 = @intCast(i64, this.size); + var relativeEnd: i64 = @as(i64, @intCast(this.size)); if (args.ptr[0].isString()) { args.ptr[2] = args.ptr[0]; @@ -2684,10 +2684,10 @@ pub const Blob = struct { const start = start_.toInt64(); if (start < 0) { // If the optional start parameter is negative, let relativeStart be start + size. - relativeStart = @intCast(i64, @max(start +% @intCast(i64, this.size), 0)); + relativeStart = @as(i64, @intCast(@max(start +% @as(i64, @intCast(this.size)), 0))); } else { // Otherwise, let relativeStart be start. - relativeStart = @min(@intCast(i64, start), @intCast(i64, this.size)); + relativeStart = @min(@as(i64, @intCast(start)), @as(i64, @intCast(this.size))); } } } @@ -2698,10 +2698,10 @@ pub const Blob = struct { // If end is negative, let relativeEnd be max((size + end), 0). if (end < 0) { // If the optional start parameter is negative, let relativeStart be start + size. - relativeEnd = @intCast(i64, @max(end +% @intCast(i64, this.size), 0)); + relativeEnd = @as(i64, @intCast(@max(end +% @as(i64, @intCast(this.size)), 0))); } else { // Otherwise, let relativeStart be start. - relativeEnd = @min(@intCast(i64, end), @intCast(i64, this.size)); + relativeEnd = @min(@as(i64, @intCast(end)), @as(i64, @intCast(this.size))); } } } @@ -2731,12 +2731,12 @@ pub const Blob = struct { } } - const len = @intCast(SizeType, @max(relativeEnd -| relativeStart, 0)); + const len = @as(SizeType, @intCast(@max(relativeEnd -| relativeStart, 0))); // This copies over the is_all_ascii flag // which is okay because this will only be a <= slice var blob = this.dupe(); - blob.offset = @intCast(SizeType, relativeStart); + blob.offset = @as(SizeType, @intCast(relativeStart)); blob.size = len; // infer the content type if it was not specified @@ -2909,8 +2909,8 @@ pub const Blob = struct { } fn toJSTime(sec: isize, nsec: isize) JSTimeType { - const millisec = @intCast(u64, @divTrunc(nsec, std.time.ns_per_ms)); - return @truncate(JSTimeType, @intCast(u64, sec * std.time.ms_per_s) + millisec); + const millisec = @as(u64, @intCast(@divTrunc(nsec, std.time.ns_per_ms))); + return @as(JSTimeType, @truncate(@as(u64, @intCast(sec * std.time.ms_per_s)) + millisec)); } /// resolve file stat like size, last_modified @@ -2920,7 +2920,7 @@ pub const Blob = struct { switch (JSC.Node.Syscall.stat(store.data.file.pathlike.path.sliceZ(&buffer))) { .result => |stat| { store.data.file.max_size = if (std.os.S.ISREG(stat.mode) or stat.size > 0) - @truncate(SizeType, @intCast(u64, @max(stat.size, 0))) + @as(SizeType, @truncate(@as(u64, @intCast(@max(stat.size, 0))))) else Blob.max_size; store.data.file.mode = stat.mode; @@ -2934,7 +2934,7 @@ pub const Blob = struct { switch (JSC.Node.Syscall.fstat(store.data.file.pathlike.fd)) { .result => |stat| { store.data.file.max_size = if (std.os.S.ISREG(stat.mode) or stat.size > 0) - @truncate(SizeType, @intCast(u64, @max(stat.size, 0))) + @as(SizeType, @truncate(@as(u64, @intCast(@max(stat.size, 0))))) else Blob.max_size; store.data.file.mode = stat.mode; @@ -3027,7 +3027,7 @@ pub const Blob = struct { store.?.is_all_ascii = is_all_ascii; } return Blob{ - .size = @truncate(SizeType, bytes.len), + .size = @as(SizeType, @truncate(bytes.len)), .store = store, .allocator = null, .content_type = "", @@ -3038,7 +3038,7 @@ pub const Blob = struct { pub fn init(bytes: []u8, allocator: std.mem.Allocator, globalThis: *JSGlobalObject) Blob { return Blob{ - .size = @truncate(SizeType, bytes.len), + .size = @as(SizeType, @truncate(bytes.len)), .store = if (bytes.len > 0) Blob.Store.init(bytes, allocator) catch unreachable else @@ -3057,7 +3057,7 @@ pub const Blob = struct { ) Blob { var bytes = allocator.dupe(u8, bytes_) catch @panic("Out of memory"); return Blob{ - .size = @truncate(SizeType, bytes_.len), + .size = @as(SizeType, @truncate(bytes_.len)), .store = if (bytes.len > 0) Blob.Store.init(bytes, allocator) catch unreachable else @@ -3183,7 +3183,7 @@ pub const Blob = struct { .result => |result| { const bytes = result.buf; if (blob.size > 0) - blob.size = @min(@truncate(u32, bytes.len), blob.size); + blob.size = @min(@as(u32, @truncate(bytes.len)), blob.size); const value = Function(&blob, globalThis, bytes, .temporary); // invalid JSON needs to be rejected @@ -3537,7 +3537,7 @@ pub const Blob = struct { var sliced = top_value.toSlice(global, bun.default_allocator); const is_all_ascii = !sliced.isAllocated(); if (!sliced.isAllocated() and sliced.len > 0) { - sliced.ptr = @ptrCast([*]const u8, (try bun.default_allocator.dupe(u8, sliced.slice())).ptr); + sliced.ptr = @as([*]const u8, @ptrCast((try bun.default_allocator.dupe(u8, sliced.slice())).ptr)); sliced.allocator = NullableAllocator.init(bun.default_allocator); } @@ -3750,8 +3750,8 @@ pub const AnyBlob = union(enum) { pub inline fn fastSize(this: *const AnyBlob) Blob.SizeType { return switch (this.*) { .Blob => this.Blob.size, - .WTFStringImpl => @truncate(Blob.SizeType, this.WTFStringImpl.byteLength()), - else => @truncate(Blob.SizeType, this.slice().len), + .WTFStringImpl => @as(Blob.SizeType, @truncate(this.WTFStringImpl.byteLength())), + else => @as(Blob.SizeType, @truncate(this.slice().len)), }; } @@ -3884,8 +3884,8 @@ pub const AnyBlob = union(enum) { pub inline fn size(this: *const AnyBlob) Blob.SizeType { return switch (this.*) { .Blob => this.Blob.size, - .WTFStringImpl => @truncate(Blob.SizeType, this.WTFStringImpl.utf8ByteLength()), - else => @truncate(Blob.SizeType, this.slice().len), + .WTFStringImpl => @as(Blob.SizeType, @truncate(this.WTFStringImpl.utf8ByteLength())), + else => @as(Blob.SizeType, @truncate(this.slice().len)), }; } @@ -4054,7 +4054,7 @@ pub const InlineBlob = extern struct { if (second.len > 0) @memcpy(bytes_slice[first.len..][0..second.len], second); - inline_blob.len = @truncate(@TypeOf(inline_blob.len), total); + inline_blob.len = @as(@TypeOf(inline_blob.len), @truncate(total)); return inline_blob; } @@ -4062,7 +4062,7 @@ pub const InlineBlob = extern struct { std.debug.assert(data.len <= available_bytes); var blob = InlineBlob{ - .len = @intCast(IntSize, data.len), + .len = @as(IntSize, @intCast(data.len)), .was_string = was_string, }; diff --git a/src/bun.js/webcore/body.zig b/src/bun.js/webcore/body.zig index 028b104b2..169ac8fa4 100644 --- a/src/bun.js/webcore/body.zig +++ b/src/bun.js/webcore/body.zig @@ -176,7 +176,7 @@ pub const Body = struct { if (response_init.fastGet(ctx, .status)) |status_value| { const number = status_value.coerceToInt64(ctx); if ((200 <= number and number < 600) or number == 101) { - result.status_code = @truncate(u16, @intCast(u32, number)); + result.status_code = @as(u16, @truncate(@as(u32, @intCast(number)))); } else { const err = ctx.createRangeErrorInstance("The status provided ({d}) must be 101 or in the range of [200, 599]", .{number}); ctx.throwValue(err); @@ -365,8 +365,8 @@ pub const Body = struct { pub fn size(this: *const Value) Blob.SizeType { return switch (this.*) { .Blob => this.Blob.size, - .InternalBlob => @truncate(Blob.SizeType, this.InternalBlob.sliceConst().len), - .WTFStringImpl => @truncate(Blob.SizeType, this.WTFStringImpl.utf8ByteLength()), + .InternalBlob => @as(Blob.SizeType, @truncate(this.InternalBlob.sliceConst().len)), + .WTFStringImpl => @as(Blob.SizeType, @truncate(this.WTFStringImpl.utf8ByteLength())), // .InlineBlob => @truncate(Blob.SizeType, this.InlineBlob.sliceConst().len), else => 0, }; @@ -375,8 +375,8 @@ pub const Body = struct { pub fn fastSize(this: *const Value) Blob.SizeType { return switch (this.*) { .Blob => this.Blob.size, - .InternalBlob => @truncate(Blob.SizeType, this.InternalBlob.sliceConst().len), - .WTFStringImpl => @truncate(Blob.SizeType, this.WTFStringImpl.byteSlice().len), + .InternalBlob => @as(Blob.SizeType, @truncate(this.InternalBlob.sliceConst().len)), + .WTFStringImpl => @as(Blob.SizeType, @truncate(this.WTFStringImpl.byteSlice().len)), // .InlineBlob => @truncate(Blob.SizeType, this.InlineBlob.sliceConst().len), else => 0, }; @@ -481,11 +481,11 @@ pub const Body = struct { reader.context.setup(); if (drain_result == .estimated_size) { - reader.context.highWaterMark = @truncate(Blob.SizeType, drain_result.estimated_size); - reader.context.size_hint = @truncate(Blob.SizeType, drain_result.estimated_size); + reader.context.highWaterMark = @as(Blob.SizeType, @truncate(drain_result.estimated_size)); + reader.context.size_hint = @as(Blob.SizeType, @truncate(drain_result.estimated_size)); } else if (drain_result == .owned) { reader.context.buffer = drain_result.owned.list; - reader.context.size_hint = @truncate(Blob.SizeType, drain_result.owned.size_hint); + reader.context.size_hint = @as(Blob.SizeType, @truncate(drain_result.owned.size_hint)); } locked.readable = .{ diff --git a/src/bun.js/webcore/encoding.zig b/src/bun.js/webcore/encoding.zig index dd47ccc29..42256a9ca 100644 --- a/src/bun.js/webcore/encoding.zig +++ b/src/bun.js/webcore/encoding.zig @@ -229,7 +229,7 @@ pub const TextEncoder = struct { result.written = 3; } const sized: [2]u32 = .{ result.read, result.written }; - return @bitCast(u64, sized); + return @as(u64, @bitCast(sized)); } pub export fn TextEncoder__encodeInto8( @@ -243,7 +243,7 @@ pub const TextEncoder = struct { const result: strings.EncodeIntoResult = strings.copyLatin1IntoUTF8(output, []const u8, input); const sized: [2]u32 = .{ result.read, result.written }; - return @bitCast(u64, sized); + return @as(u64, @bitCast(sized)); } }; @@ -462,7 +462,7 @@ pub const TextDecoder = struct { return ZigString.init(EncodingLabel.label.get(this.encoding).?).toValue(globalThis); } const Vector16 = std.meta.Vector(16, u16); - const max_16_ascii: Vector16 = @splat(16, @as(u16, 127)); + const max_16_ascii: Vector16 = @splat(@as(u16, 127)); fn decodeUTF16WithAlignment( _: *TextDecoder, @@ -477,12 +477,12 @@ pub const TextDecoder = struct { const vec: strings.AsciiU16Vector = slice[i..][0..strings.ascii_u16_vector_size].*; if ((@reduce( .Or, - @bitCast( + @as( strings.AsciiVectorU16U1, - vec > strings.max_u16_ascii, - ) | @bitCast( + @bitCast(vec > strings.max_u16_ascii), + ) | @as( strings.AsciiVectorU16U1, - vec < strings.min_u16_ascii, + @bitCast(vec < strings.min_u16_ascii), ), ) == 0)) { break; @@ -502,7 +502,7 @@ pub const TextDecoder = struct { return ZigString.init16(slice).toValueGC(ctx); } else { var str = ZigString.init(""); - str._unsafe_ptr_do_not_use = @ptrCast([*]const u8, slice.ptr); + str._unsafe_ptr_do_not_use = @as([*]const u8, @ptrCast(slice.ptr)); str.len = slice.len; str.markUTF16(); return str.toValueGC(ctx.ptr()); @@ -575,7 +575,7 @@ pub const TextDecoder = struct { var full = buffer.toOwnedSlice(allocator) catch @panic("TODO"); var out = ZigString.init(""); - out._unsafe_ptr_do_not_use = @ptrCast([*]u8, full.ptr); + out._unsafe_ptr_do_not_use = @as([*]u8, @ptrCast(full.ptr)); out.len = full.len; out.markUTF16(); return out.toValueGC(ctx.ptr()); @@ -660,7 +660,7 @@ pub const TextDecoder = struct { EncodingLabel.@"UTF-16LE" => { if (std.mem.isAligned(@intFromPtr(buffer_slice.ptr), @alignOf([*]const u16))) { - return this.decodeUTF16WithAlignment([]const u16, @alignCast(2, std.mem.bytesAsSlice(u16, buffer_slice)), globalThis); + return this.decodeUTF16WithAlignment([]align(2) const u16, @as([]align(2) const u16, @alignCast(std.mem.bytesAsSlice(u16, buffer_slice))), globalThis); } return this.decodeUTF16WithAlignment([]align(1) const u16, std.mem.bytesAsSlice(u16, buffer_slice), globalThis); @@ -701,7 +701,7 @@ pub const TextDecoder = struct { pub const Encoder = struct { export fn Bun__encoding__writeLatin1(input: [*]const u8, len: usize, to: [*]u8, to_len: usize, encoding: u8) usize { - return switch (@enumFromInt(JSC.Node.Encoding, encoding)) { + return switch (@as(JSC.Node.Encoding, @enumFromInt(encoding))) { .utf8 => writeU8(input, len, to, to_len, .utf8), .latin1 => writeU8(input, len, to, to_len, .ascii), .ascii => writeU8(input, len, to, to_len, .ascii), @@ -714,7 +714,7 @@ pub const Encoder = struct { } catch 0; } export fn Bun__encoding__writeUTF16(input: [*]const u16, len: usize, to: [*]u8, to_len: usize, encoding: u8) usize { - return switch (@enumFromInt(JSC.Node.Encoding, encoding)) { + return switch (@as(JSC.Node.Encoding, @enumFromInt(encoding))) { .utf8 => writeU16(input, len, to, to_len, .utf8, false), .latin1 => writeU16(input, len, to, to_len, .ascii, false), .ascii => writeU16(input, len, to, to_len, .ascii, false), @@ -727,7 +727,7 @@ pub const Encoder = struct { } catch 0; } export fn Bun__encoding__byteLengthLatin1(input: [*]const u8, len: usize, encoding: u8) usize { - return switch (@enumFromInt(JSC.Node.Encoding, encoding)) { + return switch (@as(JSC.Node.Encoding, @enumFromInt(encoding))) { .utf8 => byteLengthU8(input, len, .utf8), .latin1 => byteLengthU8(input, len, .ascii), .ascii => byteLengthU8(input, len, .ascii), @@ -740,7 +740,7 @@ pub const Encoder = struct { }; } export fn Bun__encoding__byteLengthUTF16(input: [*]const u16, len: usize, encoding: u8) usize { - return switch (@enumFromInt(JSC.Node.Encoding, encoding)) { + return switch (@as(JSC.Node.Encoding, @enumFromInt(encoding))) { .utf8 => byteLengthU16(input, len, .utf8), .latin1 => byteLengthU16(input, len, .ascii), .ascii => byteLengthU16(input, len, .ascii), @@ -753,7 +753,7 @@ pub const Encoder = struct { }; } export fn Bun__encoding__constructFromLatin1(globalObject: *JSGlobalObject, input: [*]const u8, len: usize, encoding: u8) JSValue { - var slice = switch (@enumFromInt(JSC.Node.Encoding, encoding)) { + var slice = switch (@as(JSC.Node.Encoding, @enumFromInt(encoding))) { .hex => constructFromU8(input, len, .hex), .ascii => constructFromU8(input, len, .ascii), .base64url => constructFromU8(input, len, .base64url), @@ -766,7 +766,7 @@ pub const Encoder = struct { return JSC.JSValue.createBuffer(globalObject, slice, globalObject.bunVM().allocator); } export fn Bun__encoding__constructFromUTF16(globalObject: *JSGlobalObject, input: [*]const u16, len: usize, encoding: u8) JSValue { - var slice = switch (@enumFromInt(JSC.Node.Encoding, encoding)) { + var slice = switch (@as(JSC.Node.Encoding, @enumFromInt(encoding))) { .base64 => constructFromU16(input, len, .base64), .hex => constructFromU16(input, len, .hex), .base64url => constructFromU16(input, len, .base64url), @@ -785,7 +785,7 @@ pub const Encoder = struct { } export fn Bun__encoding__toString(input: [*]const u8, len: usize, globalObject: *JSC.JSGlobalObject, encoding: u8) JSValue { - return switch (@enumFromInt(JSC.Node.Encoding, encoding)) { + return switch (@as(JSC.Node.Encoding, @enumFromInt(encoding))) { .ucs2 => toString(input, len, globalObject, .utf16le), .utf16le => toString(input, len, globalObject, .utf16le), .utf8 => toString(input, len, globalObject, .utf8), @@ -931,12 +931,12 @@ pub const Encoder = struct { if (std.mem.isAligned(@intFromPtr(to_ptr), @alignOf([*]u16))) { var buf = input[0..len]; - var output = @ptrCast([*]u16, @alignCast(@alignOf(u16), to_ptr))[0 .. to_len / 2]; + var output = @as([*]u16, @ptrCast(@alignCast(to_ptr)))[0 .. to_len / 2]; var written = strings.copyLatin1IntoUTF16([]u16, output, []const u8, buf).written; return written * 2; } else { var buf = input[0..len]; - var output = @ptrCast([*]align(1) u16, to_ptr)[0 .. to_len / 2]; + var output = @as([*]align(1) u16, @ptrCast(to_ptr))[0 .. to_len / 2]; var written = strings.copyLatin1IntoUTF16([]align(1) u16, output, []const u8, buf).written; return written * 2; @@ -1007,7 +1007,7 @@ pub const Encoder = struct { if (allow_partial_write) { const bytes_input_len = len * 2; const written = @min(bytes_input_len, to_len); - const input_u8 = @ptrCast([*]const u8, input); + const input_u8 = @as([*]const u8, @ptrCast(input)); strings.copyU16IntoU8(to[0..written], []const u8, input_u8[0..written]); return written; } else { @@ -1016,7 +1016,7 @@ pub const Encoder = struct { if (written < 2) return 0; const fixed_len = (written / 2) * 2; - const input_u8 = @ptrCast([*]const u8, input); + const input_u8 = @as([*]const u8, @ptrCast(input)); strings.copyU16IntoU8(to[0..written], []const u8, input_u8[0..fixed_len]); return fixed_len; } @@ -1140,7 +1140,7 @@ pub const Encoder = struct { var input_bytes = std.mem.sliceAsBytes(input[0..len]); @memcpy(to[0..input_bytes.len], input_bytes); for (to[0..len], 0..) |c, i| { - to[i] = @as(u8, @truncate(u7, c)); + to[i] = @as(u8, @as(u7, @truncate(c))); } return to; diff --git a/src/bun.js/webcore/request.zig b/src/bun.js/webcore/request.zig index cff2ef2f3..75d4e63cd 100644 --- a/src/bun.js/webcore/request.zig +++ b/src/bun.js/webcore/request.zig @@ -120,7 +120,7 @@ pub const Request = struct { pub fn estimatedSize(this: *Request) callconv(.C) usize { return this.reported_estimated_size orelse brk: { - this.reported_estimated_size = @truncate(u63, this.body.value.estimatedSize() + this.sizeOfURL() + @sizeOf(Request)); + this.reported_estimated_size = @as(u63, @truncate(this.body.value.estimatedSize() + this.sizeOfURL() + @sizeOf(Request))); break :brk this.reported_estimated_size.?; }; } diff --git a/src/bun.js/webcore/response.zig b/src/bun.js/webcore/response.zig index f27e7f9aa..5987f749b 100644 --- a/src/bun.js/webcore/response.zig +++ b/src/bun.js/webcore/response.zig @@ -83,9 +83,9 @@ pub const Response = struct { pub fn estimatedSize(this: *Response) callconv(.C) usize { return this.reported_estimated_size orelse brk: { - this.reported_estimated_size = @intCast( + this.reported_estimated_size = @as( u63, - this.body.value.estimatedSize() + this.url.len + this.status_text.len + @sizeOf(Response), + @intCast(this.body.value.estimatedSize() + this.url.len + this.status_text.len + @sizeOf(Response)), ); break :brk this.reported_estimated_size.?; }; @@ -411,7 +411,7 @@ pub const Response = struct { if (args.nextEat()) |init| { if (init.isUndefinedOrNull()) {} else if (init.isNumber()) { - response.body.init.status_code = @intCast(u16, @min(@max(0, init.toInt32()), std.math.maxInt(u16))); + response.body.init.status_code = @as(u16, @intCast(@min(@max(0, init.toInt32()), std.math.maxInt(u16)))); } else { if (Body.Init.init(getAllocator(globalThis), globalThis, init) catch null) |_init| { response.body.init = _init; @@ -457,7 +457,7 @@ pub const Response = struct { if (args.nextEat()) |init| { if (init.isUndefinedOrNull()) {} else if (init.isNumber()) { - response.body.init.status_code = @intCast(u16, @min(@max(0, init.toInt32()), std.math.maxInt(u16))); + response.body.init.status_code = @as(u16, @intCast(@min(@max(0, init.toInt32()), std.math.maxInt(u16)))); } else { if (Body.Init.init(getAllocator(globalThis), globalThis, init) catch null) |_init| { response.body.init = _init; @@ -827,7 +827,7 @@ pub const Fetch = struct { .body = .{ .init = .{ .headers = FetchHeaders.createFromPicoHeaders(http_response.headers), - .status_code = @truncate(u16, http_response.status_code), + .status_code = @as(u16, @truncate(http_response.status_code)), }, .value = this.toBodyValue(), }, @@ -838,7 +838,7 @@ pub const Fetch = struct { const allocator = bun.default_allocator; var response = allocator.create(Response) catch unreachable; response.* = this.toResponse(allocator); - return Response.makeMaybePooled(@ptrCast(js.JSContextRef, this.global_this), response); + return Response.makeMaybePooled(@as(js.JSContextRef, @ptrCast(this.global_this)), response); } pub fn get( @@ -1375,7 +1375,7 @@ pub const Fetch = struct { } const original_size = body.Blob.size; - const stat_size = @intCast(Blob.SizeType, stat.size); + const stat_size = @as(Blob.SizeType, @intCast(stat.size)); const blob_size = if (std.os.S.ISREG(stat.mode)) stat_size else @@ -1509,7 +1509,7 @@ pub const Headers = struct { if (options.body) |body| { if (body.hasContentTypeFromUser() and (fetch_headers_ref == null or !fetch_headers_ref.?.fastHas(.ContentType))) { header_count += 1; - buf_len += @truncate(u32, body.contentType().len + "Content-Type".len); + buf_len += @as(u32, @truncate(body.contentType().len + "Content-Type".len)); break :brk true; } } @@ -1536,7 +1536,7 @@ pub const Headers = struct { bun.copy(u8, headers.buf.items[buf_len_before_content_type + "Content-Type".len ..], options.body.?.contentType()); values[header_count - 1] = .{ .offset = buf_len_before_content_type + @as(u32, "Content-Type".len), - .length = @truncate(u32, options.body.?.contentType().len), + .length = @as(u32, @truncate(options.body.?.contentType().len)), }; } @@ -1696,7 +1696,7 @@ pub const FetchEvent = struct { defer { if (!VirtualMachine.get().had_errors) { - Output.printElapsed(@floatFromInt(f64, (request_context.timer.lap())) / std.time.ns_per_ms); + Output.printElapsed(@as(f64, @floatFromInt((request_context.timer.lap()))) / std.time.ns_per_ms); Output.prettyError( " <b>{s}<r><d> - <b>{d}<r> <d>transpiled, <d><b>{d}<r> <d>imports<r>\n", diff --git a/src/bun.js/webcore/streams.zig b/src/bun.js/webcore/streams.zig index 343ce37ab..0e14fedee 100644 --- a/src/bun.js/webcore/streams.zig +++ b/src/bun.js/webcore/streams.zig @@ -326,20 +326,20 @@ pub const ReadableStream = struct { pub fn init(filedes: bun.FileDescriptor) StreamTag { var bytes = [8]u8{ 1, 0, 0, 0, 0, 0, 0, 0 }; - const filedes_ = @bitCast([8]u8, @as(usize, @truncate(u56, @intCast(usize, filedes)))); + const filedes_ = @as([8]u8, @bitCast(@as(usize, @as(u56, @truncate(@as(usize, @intCast(filedes))))))); bytes[1..8].* = filedes_[0..7].*; - return @enumFromInt(StreamTag, @bitCast(u64, bytes)); + return @as(StreamTag, @enumFromInt(@as(u64, @bitCast(bytes)))); } pub fn fd(this: StreamTag) bun.FileDescriptor { - var bytes = @bitCast([8]u8, @intFromEnum(this)); + var bytes = @as([8]u8, @bitCast(@intFromEnum(this))); if (bytes[0] != 1) { return bun.invalid_fd; } var out: u64 = 0; - @bitCast([8]u8, out)[0..7].* = bytes[1..8].*; - return @intCast(bun.FileDescriptor, out); + @as([8]u8, @bitCast(out))[0..7].* = bytes[1..8].*; + return @as(bun.FileDescriptor, @intCast(out)); } }; }; @@ -381,7 +381,7 @@ pub const StreamStart = union(Tag) { return JSC.JSValue.jsUndefined(); }, .chunk_size => |chunk| { - return JSC.JSValue.jsNumber(@intCast(Blob.SizeType, chunk)); + return JSC.JSValue.jsNumber(@as(Blob.SizeType, @intCast(chunk))); }, .err => |err| { globalThis.vm().throwError(globalThis, err.toJSC(globalThis)); @@ -400,7 +400,7 @@ pub const StreamStart = union(Tag) { if (value.get(globalThis, "chunkSize")) |chunkSize| { if (chunkSize.isNumber()) - return .{ .chunk_size = @intCast(Blob.SizeType, @truncate(i52, chunkSize.toInt64())) }; + return .{ .chunk_size = @as(Blob.SizeType, @intCast(@as(i52, @truncate(chunkSize.toInt64())))) }; } return .{ .empty = {} }; @@ -435,7 +435,7 @@ pub const StreamStart = union(Tag) { if (value.get(globalThis, "highWaterMark")) |chunkSize| { if (chunkSize.isNumber()) { empty = false; - chunk_size = @intCast(JSC.WebCore.Blob.SizeType, @max(0, @truncate(i51, chunkSize.toInt64()))); + chunk_size = @as(JSC.WebCore.Blob.SizeType, @intCast(@max(0, @as(i51, @truncate(chunkSize.toInt64()))))); } } @@ -454,7 +454,7 @@ pub const StreamStart = union(Tag) { if (value.get(globalThis, "highWaterMark")) |chunkSize| { if (chunkSize.isNumber()) - chunk_size = @intCast(JSC.WebCore.Blob.SizeType, @max(0, @truncate(i51, chunkSize.toInt64()))); + chunk_size = @as(JSC.WebCore.Blob.SizeType, @intCast(@max(0, @as(i51, @truncate(chunkSize.toInt64()))))); } if (value.get(globalThis, "path")) |path| { @@ -491,7 +491,7 @@ pub const StreamStart = union(Tag) { if (value.get(globalThis, "highWaterMark")) |chunkSize| { if (chunkSize.isNumber()) { empty = false; - chunk_size = @intCast(JSC.WebCore.Blob.SizeType, @max(256, @truncate(i51, chunkSize.toInt64()))); + chunk_size = @as(JSC.WebCore.Blob.SizeType, @intCast(@max(256, @as(i51, @truncate(chunkSize.toInt64()))))); } } @@ -820,7 +820,7 @@ pub const Signal = struct { ptr: *anyopaque = dead, vtable: VTable = VTable.Dead, - pub const dead = @ptrFromInt(*anyopaque, 0xaaaaaaaa); + pub const dead = @as(*anyopaque, @ptrFromInt(0xaaaaaaaa)); pub fn clear(this: *Signal) void { this.ptr = dead; @@ -888,21 +888,21 @@ pub const Signal = struct { const Functions = struct { fn onClose(this: *anyopaque, err: ?Syscall.Error) void { if (comptime !@hasDecl(Wrapped, "onClose")) - Wrapped.close(@ptrCast(*Wrapped, @alignCast(std.meta.alignment(Wrapped), this)), err) + Wrapped.close(@as(*Wrapped, @ptrCast(@alignCast(this))), err) else - Wrapped.onClose(@ptrCast(*Wrapped, @alignCast(std.meta.alignment(Wrapped), this)), err); + Wrapped.onClose(@as(*Wrapped, @ptrCast(@alignCast(this))), err); } fn onReady(this: *anyopaque, amount: ?Blob.SizeType, offset: ?Blob.SizeType) void { if (comptime !@hasDecl(Wrapped, "onReady")) - Wrapped.ready(@ptrCast(*Wrapped, @alignCast(std.meta.alignment(Wrapped), this)), amount, offset) + Wrapped.ready(@as(*Wrapped, @ptrCast(@alignCast(this))), amount, offset) else - Wrapped.onReady(@ptrCast(*Wrapped, @alignCast(std.meta.alignment(Wrapped), this)), amount, offset); + Wrapped.onReady(@as(*Wrapped, @ptrCast(@alignCast(this))), amount, offset); } fn onStart(this: *anyopaque) void { if (comptime !@hasDecl(Wrapped, "onStart")) - Wrapped.start(@ptrCast(*Wrapped, @alignCast(std.meta.alignment(Wrapped), this))) + Wrapped.start(@as(*Wrapped, @ptrCast(@alignCast(this)))) else - Wrapped.onStart(@ptrCast(*Wrapped, @alignCast(std.meta.alignment(Wrapped), this))); + Wrapped.onStart(@as(*Wrapped, @ptrCast(@alignCast(this)))); } }; @@ -922,7 +922,7 @@ pub const Sink = struct { used: bool = false, pub const pending = Sink{ - .ptr = @ptrFromInt(*anyopaque, 0xaaaaaaaa), + .ptr = @as(*anyopaque, @ptrFromInt(0xaaaaaaaa)), .vtable = undefined, }; @@ -1034,19 +1034,19 @@ pub const Sink = struct { ) VTable { const Functions = struct { pub fn onWrite(this: *anyopaque, data: StreamResult) StreamResult.Writable { - return Wrapped.write(@ptrCast(*Wrapped, @alignCast(std.meta.alignment(Wrapped), this)), data); + return Wrapped.write(@as(*Wrapped, @ptrCast(@alignCast(this))), data); } pub fn onConnect(this: *anyopaque, signal: Signal) JSC.Node.Maybe(void) { - return Wrapped.connect(@ptrCast(*Wrapped, @alignCast(std.meta.alignment(Wrapped), this)), signal); + return Wrapped.connect(@as(*Wrapped, @ptrCast(@alignCast(this))), signal); } pub fn onWriteLatin1(this: *anyopaque, data: StreamResult) StreamResult.Writable { - return Wrapped.writeLatin1(@ptrCast(*Wrapped, @alignCast(std.meta.alignment(Wrapped), this)), data); + return Wrapped.writeLatin1(@as(*Wrapped, @ptrCast(@alignCast(this))), data); } pub fn onWriteUTF16(this: *anyopaque, data: StreamResult) StreamResult.Writable { - return Wrapped.writeUTF16(@ptrCast(*Wrapped, @alignCast(std.meta.alignment(Wrapped), this)), data); + return Wrapped.writeUTF16(@as(*Wrapped, @ptrCast(@alignCast(this))), data); } pub fn onEnd(this: *anyopaque, err: ?Syscall.Error) JSC.Node.Maybe(void) { - return Wrapped.end(@ptrCast(*Wrapped, @alignCast(std.meta.alignment(Wrapped), this)), err); + return Wrapped.end(@as(*Wrapped, @ptrCast(@alignCast(this))), err); } }; @@ -1361,13 +1361,13 @@ pub const FileSink = struct { }, .PIPE => { this.cleanup(); - this.pending.consumed = @truncate(Blob.SizeType, total - initial); + this.pending.consumed = @as(Blob.SizeType, @truncate(total - initial)); return .{ .done = {} }; }, else => {}, } this.pending.result = .{ .err = res.err }; - this.pending.consumed = @truncate(Blob.SizeType, total - initial); + this.pending.consumed = @as(Blob.SizeType, @truncate(total - initial)); return .{ .err = res.err }; } @@ -1404,7 +1404,7 @@ pub const FileSink = struct { poll.flags.remove(.writable); std.debug.assert(poll.flags.contains(.poll_writable)); } - this.pending.consumed = @truncate(Blob.SizeType, total - initial); + this.pending.consumed = @as(Blob.SizeType, @truncate(total - initial)); return .{ .pending = &this.pending, @@ -1428,9 +1428,9 @@ pub const FileSink = struct { } this.pending.result = .{ - .owned = @truncate(Blob.SizeType, total), + .owned = @as(Blob.SizeType, @truncate(total)), }; - this.pending.consumed = @truncate(Blob.SizeType, total - initial); + this.pending.consumed = @as(Blob.SizeType, @truncate(total - initial)); if (is_fifo and remain.len == 0 and this.isWatching()) { this.unwatch(fd); @@ -1452,7 +1452,7 @@ pub const FileSink = struct { } } this.pending.run(); - return .{ .owned = @truncate(Blob.SizeType, total - initial) }; + return .{ .owned = @as(Blob.SizeType, @truncate(total - initial)) }; } pub fn flushFromJS(this: *FileSink, globalThis: *JSGlobalObject, _: bool) JSC.Node.Maybe(JSValue) { @@ -1546,7 +1546,7 @@ pub const FileSink = struct { } if (comptime Environment.isMac) { - _ = this.flushMaybePollWithSizeAndBuffer(this.buffer.slice(), @intCast(usize, @max(writable, 0))); + _ = this.flushMaybePollWithSizeAndBuffer(this.buffer.slice(), @as(usize, @intCast(@max(writable, 0)))); } else { _ = this.flushMaybePollWithSizeAndBuffer(this.buffer.slice(), std.math.maxInt(usize)); } @@ -1618,7 +1618,7 @@ pub const FileSink = struct { if (this.next) |*next| { return next.writeUTF16(data); } - const len = this.buffer.writeUTF16(this.allocator, @ptrCast([*]const u16, @alignCast(@alignOf(u16), data.slice().ptr))[0..std.mem.bytesAsSlice(u16, data.slice()).len]) catch { + const len = this.buffer.writeUTF16(this.allocator, @as([*]const u16, @ptrCast(@alignCast(data.slice().ptr)))[0..std.mem.bytesAsSlice(u16, data.slice()).len]) catch { return .{ .err = Syscall.Error.oom }; }; @@ -1834,7 +1834,7 @@ pub const ArrayBufferSink = struct { if (this.next) |*next| { return next.writeUTF16(data); } - const len = this.bytes.writeUTF16(this.allocator, @ptrCast([*]const u16, @alignCast(@alignOf(u16), data.slice().ptr))[0..std.mem.bytesAsSlice(u16, data.slice()).len]) catch { + const len = this.bytes.writeUTF16(this.allocator, @as([*]const u16, @ptrCast(@alignCast(data.slice().ptr)))[0..std.mem.bytesAsSlice(u16, data.slice()).len]) catch { return .{ .err = Syscall.Error.oom }; }; this.signal.ready(null, null); @@ -1912,15 +1912,15 @@ pub fn NewJSSink(comptime SinkType: type, comptime name_: []const u8) type { pub fn init(cpp: JSValue) Signal { // this one can be null @setRuntimeSafety(false); - return Signal.initWithType(SinkSignal, @ptrFromInt(*SinkSignal, @bitCast(usize, @intFromEnum(cpp)))); + return Signal.initWithType(SinkSignal, @as(*SinkSignal, @ptrFromInt(@as(usize, @bitCast(@intFromEnum(cpp)))))); } pub fn close(this: *@This(), _: ?Syscall.Error) void { - onClose(@bitCast(SinkSignal, @intFromPtr(this)).cpp, JSValue.jsUndefined()); + onClose(@as(SinkSignal, @bitCast(@intFromPtr(this))).cpp, JSValue.jsUndefined()); } pub fn ready(this: *@This(), _: ?Blob.SizeType, _: ?Blob.SizeType) void { - onReady(@bitCast(SinkSignal, @intFromPtr(this)).cpp, JSValue.jsUndefined(), JSValue.jsUndefined()); + onReady(@as(SinkSignal, @bitCast(@intFromPtr(this))).cpp, JSValue.jsUndefined(), JSValue.jsUndefined()); } pub fn start(_: *@This()) void {} @@ -1983,7 +1983,7 @@ pub fn NewJSSink(comptime SinkType: type, comptime name_: []const u8) type { } pub fn finalize(ptr: *anyopaque) callconv(.C) void { - var this = @ptrCast(*ThisSink, @alignCast(std.meta.alignment(ThisSink), ptr)); + var this = @as(*ThisSink, @ptrCast(@alignCast(ptr))); this.sink.finalize(); } @@ -1996,7 +1996,7 @@ pub fn NewJSSink(comptime SinkType: type, comptime name_: []const u8) type { if (this.sink.signal.isDead()) return; this.sink.signal.clear(); - const value = @enumFromInt(JSValue, @bitCast(JSC.JSValueReprInt, @intFromPtr(ptr))); + const value = @as(JSValue, @enumFromInt(@as(JSC.JSValueReprInt, @bitCast(@intFromPtr(ptr))))); value.unprotect(); detachPtr(value); } @@ -2006,15 +2006,14 @@ pub fn NewJSSink(comptime SinkType: type, comptime name_: []const u8) type { } fn getThis(globalThis: *JSGlobalObject, callframe: *const JSC.CallFrame) ?*ThisSink { - return @ptrCast( + return @as( *ThisSink, - @alignCast( - std.meta.alignment(ThisSink), + @ptrCast(@alignCast( fromJS( globalThis, callframe.this(), ) orelse return null, - ), + )), ); } @@ -2134,7 +2133,7 @@ pub fn NewJSSink(comptime SinkType: type, comptime name_: []const u8) type { pub fn close(globalThis: *JSGlobalObject, sink_ptr: ?*anyopaque) callconv(.C) JSValue { JSC.markBinding(@src()); - var this = @ptrCast(*ThisSink, @alignCast(std.meta.alignment(ThisSink), sink_ptr orelse return invalidThis(globalThis))); + var this = @as(*ThisSink, @ptrCast(@alignCast(sink_ptr orelse return invalidThis(globalThis)))); if (comptime @hasDecl(SinkType, "getPendingError")) { if (this.sink.getPendingError()) |err| { @@ -2233,7 +2232,7 @@ pub fn NewJSSink(comptime SinkType: type, comptime name_: []const u8) type { pub fn endWithSink(ptr: *anyopaque, globalThis: *JSGlobalObject) callconv(.C) JSValue { JSC.markBinding(@src()); - var this = @ptrCast(*ThisSink, @alignCast(std.meta.alignment(ThisSink), ptr)); + var this = @as(*ThisSink, @ptrCast(@alignCast(ptr))); if (comptime @hasDecl(SinkType, "getPendingError")) { if (this.sink.getPendingError()) |err| { @@ -2296,7 +2295,7 @@ pub fn NewJSSink(comptime SinkType: type, comptime name_: []const u8) type { // pub fn connect(globalThis: *JSGlobalObject, callframe: *JSC.CallFrame) callconv(.C) JSValue { // JSC.markBinding(@src()); -// var this = @ptrCast(*ThisSocket, @alignCast(std.meta.alignment(ThisSocket), fromJS(globalThis, callframe.this()) orelse { +// var this = @ptrCast(*ThisSocket, @alignCast( fromJS(globalThis, callframe.this()) orelse { // const err = JSC.toTypeError(JSC.Node.ErrorCode.ERR_INVALID_THIS, "Expected Socket", .{}, globalThis); // globalThis.vm().throwError(globalThis, err); // return JSC.JSValue.jsUndefined(); @@ -2346,10 +2345,10 @@ pub fn HTTPServerWritable(comptime ssl: bool) type { } fn handleWrote(this: *@This(), amount1: usize) void { - const amount = @truncate(Blob.SizeType, amount1); + const amount = @as(Blob.SizeType, @truncate(amount1)); this.offset += amount; this.wrote += amount; - this.buffer.len -|= @truncate(u32, amount); + this.buffer.len -|= @as(u32, @truncate(amount)); if (this.offset >= this.buffer.len) { this.offset = 0; @@ -2405,7 +2404,7 @@ pub fn HTTPServerWritable(comptime ssl: bool) type { // do not write more than available // if we do, it will cause this to be delayed until the next call, each time - const to_write = @min(@truncate(Blob.SizeType, write_offset), @as(Blob.SizeType, this.buffer.len)); + const to_write = @min(@as(Blob.SizeType, @truncate(write_offset)), @as(Blob.SizeType, this.buffer.len)); // figure out how much data exactly to write const readable = this.readableSlice()[0..to_write]; @@ -2415,7 +2414,7 @@ pub fn HTTPServerWritable(comptime ssl: bool) type { return true; } - this.handleWrote(@truncate(Blob.SizeType, readable.len)); + this.handleWrote(@as(Blob.SizeType, @truncate(readable.len))); const initial_wrote = this.wrote; if (this.buffer.len > 0 and !this.done) { @@ -2429,7 +2428,7 @@ pub fn HTTPServerWritable(comptime ssl: bool) type { // pending_flush or callback could have caused another send() // so we check again if we should report readiness if (!this.done and !this.requested_end and !this.hasBackpressure()) { - const pending = @truncate(Blob.SizeType, write_offset) -| to_write; + const pending = @as(Blob.SizeType, @truncate(write_offset)) -| to_write; const written_after_flush = this.wrote - initial_wrote; const to_report = pending - @min(written_after_flush, pending); @@ -2499,7 +2498,7 @@ pub fn HTTPServerWritable(comptime ssl: bool) type { const success = this.send(slice); if (success) { - this.handleWrote(@truncate(Blob.SizeType, slice.len)); + this.handleWrote(@as(Blob.SizeType, @truncate(slice.len))); return .{ .result = JSValue.jsNumber(slice.len) }; } @@ -2525,7 +2524,7 @@ pub fn HTTPServerWritable(comptime ssl: bool) type { assert(slice.len > 0); const success = this.send(slice); if (success) { - this.handleWrote(@truncate(Blob.SizeType, slice.len)); + this.handleWrote(@as(Blob.SizeType, @truncate(slice.len))); return .{ .result = JSC.JSPromise.resolvedPromiseValue(globalThis, JSValue.jsNumber(slice.len)) }; } @@ -2560,7 +2559,7 @@ pub fn HTTPServerWritable(comptime ssl: bool) type { } const bytes = data.slice(); - const len = @truncate(Blob.SizeType, bytes.len); + const len = @as(Blob.SizeType, @truncate(bytes.len)); log("write({d})", .{bytes.len}); if (this.buffer.len == 0 and len >= this.highWaterMark) { @@ -2612,7 +2611,7 @@ pub fn HTTPServerWritable(comptime ssl: bool) type { } const bytes = data.slice(); - const len = @truncate(Blob.SizeType, bytes.len); + const len = @as(Blob.SizeType, @truncate(bytes.len)); log("writeLatin1({d})", .{bytes.len}); if (this.buffer.len == 0 and len >= this.highWaterMark) { @@ -2679,7 +2678,7 @@ pub fn HTTPServerWritable(comptime ssl: bool) type { // we must always buffer UTF-16 // we assume the case of all-ascii UTF-16 string is pretty uncommon - const written = this.buffer.writeUTF16(this.allocator, @alignCast(2, std.mem.bytesAsSlice(u16, bytes))) catch { + const written = this.buffer.writeUTF16(this.allocator, @alignCast(std.mem.bytesAsSlice(u16, bytes))) catch { return .{ .err = Syscall.Error.fromCode(.NOMEM, .write) }; }; @@ -2688,13 +2687,13 @@ pub fn HTTPServerWritable(comptime ssl: bool) type { if (readable.len >= this.highWaterMark or this.hasBackpressure()) { if (this.send(readable)) { this.handleWrote(readable.len); - return .{ .owned = @intCast(Blob.SizeType, written) }; + return .{ .owned = @as(Blob.SizeType, @intCast(written)) }; } this.res.onWritable(*@This(), onWritable, this); } - return .{ .owned = @intCast(Blob.SizeType, written) }; + return .{ .owned = @as(Blob.SizeType, @intCast(written)) }; } // In this case, it's always an error @@ -3126,7 +3125,7 @@ pub const ByteBlobLoader = struct { return .{ .done = {} }; } - const copied = @intCast(Blob.SizeType, temporary.len); + const copied = @as(Blob.SizeType, @intCast(temporary.len)); this.remain -|= copied; this.offset +|= copied; @@ -3156,8 +3155,8 @@ pub const ByteBlobLoader = struct { temporary = temporary[0..@min(16384, @min(temporary.len, this.remain))]; var cloned = bun.ByteList.init(temporary).listManaged(bun.default_allocator).clone() catch @panic("Out of memory"); - this.offset +|= @truncate(Blob.SizeType, cloned.items.len); - this.remain -|= @truncate(Blob.SizeType, cloned.items.len); + this.offset +|= @as(Blob.SizeType, @truncate(cloned.items.len)); + this.remain -|= @as(Blob.SizeType, @truncate(cloned.items.len)); return bun.ByteList.fromList(cloned); } @@ -3192,7 +3191,7 @@ pub const Pipe = struct { pub fn New(comptime Type: type, comptime Function: anytype) type { return struct { pub fn pipe(self: *anyopaque, stream: StreamResult, allocator: std.mem.Allocator) void { - Function(@ptrCast(*Type, @alignCast(@alignOf(Type), self)), stream, allocator); + Function(@as(*Type, @ptrCast(@alignCast(self))), stream, allocator); } pub fn init(self: *Type) Pipe { @@ -3306,14 +3305,14 @@ pub const ByteStream = struct { this.pending.result = .{ .into_array_and_done = .{ .value = this.value(), - .len = @truncate(Blob.SizeType, to_copy.len), + .len = @as(Blob.SizeType, @truncate(to_copy.len)), }, }; } else { this.pending.result = .{ .into_array = .{ .value = this.value(), - .len = @truncate(Blob.SizeType, to_copy.len), + .len = @as(Blob.SizeType, @truncate(to_copy.len)), }, }; } @@ -3402,7 +3401,7 @@ pub const ByteStream = struct { return .{ .into_array_and_done = .{ .value = view, - .len = @truncate(Blob.SizeType, to_write), + .len = @as(Blob.SizeType, @truncate(to_write)), }, }; } @@ -3410,7 +3409,7 @@ pub const ByteStream = struct { return .{ .into_array = .{ .value = view, - .len = @truncate(Blob.SizeType, to_write), + .len = @as(Blob.SizeType, @truncate(to_write)), }, }; } @@ -3501,9 +3500,9 @@ pub const ReadResult = union(enum) { else if (owned) StreamResult{ .owned = bun.ByteList.init(slice) } else if (done) - StreamResult{ .into_array_and_done = .{ .len = @truncate(Blob.SizeType, slice.len), .value = view } } + StreamResult{ .into_array_and_done = .{ .len = @as(Blob.SizeType, @truncate(slice.len)), .value = view } } else - StreamResult{ .into_array = .{ .len = @truncate(Blob.SizeType, slice.len), .value = view } }; + StreamResult{ .into_array = .{ .len = @as(Blob.SizeType, @truncate(slice.len)), .value = view } }; }, }; } @@ -3604,7 +3603,7 @@ pub const FIFO = struct { return @as(u32, 0); } - return @intCast(u32, @max(len, 0)); + return @as(u32, @intCast(@max(len, 0))); } pub fn adjustPipeCapacityOnLinux(this: *FIFO, current: usize, max: usize) void { @@ -3635,7 +3634,7 @@ pub const FIFO = struct { if (!is_readable and (this.close_on_empty_read or poll.isHUP())) { // it might be readable actually this.close_on_empty_read = true; - switch (bun.isReadable(@intCast(std.os.fd_t, poll.fd))) { + switch (bun.isReadable(@as(std.os.fd_t, @intCast(poll.fd)))) { .ready => { this.close_on_empty_read = false; return null; @@ -3658,7 +3657,7 @@ pub const FIFO = struct { // this happens if we've registered a watcher but we haven't // ticked the event loop since registering it - switch (bun.isReadable(@intCast(std.os.fd_t, poll.fd))) { + switch (bun.isReadable(@as(std.os.fd_t, @intCast(poll.fd)))) { .ready => { poll.flags.insert(.readable); return null; @@ -3701,7 +3700,7 @@ pub const FIFO = struct { } if (size_or_offset != std.math.maxInt(@TypeOf(size_or_offset))) - this.to_read = @intCast(u32, @max(size_or_offset, 0)); + this.to_read = @as(u32, @intCast(@max(size_or_offset, 0))); return this.to_read; } @@ -3727,7 +3726,7 @@ pub const FIFO = struct { var auto_sizer = this.auto_sizer orelse return; if (comptime Environment.isMac) { if (sizeOrOffset > 0) { - this.buf = auto_sizer.resize(@intCast(usize, sizeOrOffset)) catch return; + this.buf = auto_sizer.resize(@as(usize, @intCast(sizeOrOffset))) catch return; } else { this.buf = auto_sizer.resize(8096) catch return; } @@ -3739,14 +3738,14 @@ pub const FIFO = struct { // On Linux, we end up calling ioctl() twice if we don't do this if (comptime Environment.isMac) // i33 holds the same amount of unsigned space as a u32, so we truncate it there before casting - @intCast(u32, @truncate(i33, sizeOrOffset)) + @as(u32, @intCast(@as(i33, @truncate(sizeOrOffset)))) else null, ); if (read_result == .read) { if (this.to_read) |*to_read| { - to_read.* = to_read.* -| @truncate(u32, read_result.read.len); + to_read.* = to_read.* -| @as(u32, @truncate(read_result.read.len)); } } @@ -3781,7 +3780,7 @@ pub const FIFO = struct { if (read_result == .read) { if (this.to_read) |*to_read| { - to_read.* = to_read.* -| @truncate(u32, read_result.read.len); + to_read.* = to_read.* -| @as(u32, @truncate(read_result.read.len)); } } @@ -3804,7 +3803,7 @@ pub const FIFO = struct { ) ReadResult { const available_to_read = this.getAvailableToRead( if (kqueue_read_amt != null) - @intCast(i64, kqueue_read_amt.?) + @as(i64, @intCast(kqueue_read_amt.?)) else std.math.maxInt(i64), ); @@ -3981,7 +3980,7 @@ pub const File = struct { if ((flags & std.os.O.NONBLOCK) == 0) { auto_close = true; fd = switch (Syscall.fcntl(fd, std.os.F.DUPFD, 0)) { - .result => |_fd| @intCast(@TypeOf(fd), _fd), + .result => |_fd| @as(@TypeOf(fd), @intCast(_fd)), .err => |err| return .{ .err = err }, }; @@ -4018,14 +4017,14 @@ pub const File = struct { return .{ .err = Syscall.Error.fromCode(.INVAL, .fstat) }; } - file.mode = @intCast(JSC.Node.Mode, stat.mode); + file.mode = @as(JSC.Node.Mode, @intCast(stat.mode)); this.mode = file.mode; this.seekable = std.os.S.ISREG(stat.mode); file.seekable = this.seekable; if (this.seekable) { - this.remaining_bytes = @intCast(Blob.SizeType, stat.size); + this.remaining_bytes = @as(Blob.SizeType, @intCast(stat.size)); file.max_size = this.remaining_bytes; if (this.remaining_bytes == 0) { @@ -4063,11 +4062,11 @@ pub const File = struct { } pub fn onRead(this: *File, completion: *HTTPClient.NetworkThread.Completion, result: AsyncIO.ReadError!usize) void { - this.concurrent.read = @truncate(Blob.SizeType, result catch |err| { + this.concurrent.read = @as(Blob.SizeType, @truncate(result catch |err| { if (@hasField(HTTPClient.NetworkThread.Completion, "result")) { this.pending.result = .{ .err = Syscall.Error{ - .errno = @intCast(Syscall.Error.Int, -completion.result), + .errno = @as(Syscall.Error.Int, @intCast(-completion.result)), .syscall = .read, }, }; @@ -4075,7 +4074,7 @@ pub const File = struct { this.pending.result = .{ .err = Syscall.Error{ // this is too hacky - .errno = @truncate(Syscall.Error.Int, @intCast(u16, @max(1, @intFromError(err)))), + .errno = @as(Syscall.Error.Int, @truncate(@as(u16, @intCast(@max(1, @intFromError(err)))))), .syscall = .read, }, }; @@ -4083,7 +4082,7 @@ pub const File = struct { this.concurrent.read = 0; scheduleMainThreadTask(this); return; - }); + })); scheduleMainThreadTask(this); } @@ -4108,7 +4107,7 @@ pub const File = struct { return; }, .result => |result| { - this.concurrent.read += @intCast(Blob.SizeType, result); + this.concurrent.read += @as(Blob.SizeType, @intCast(result)); remaining = remaining[result..]; if (result == 0) { @@ -4155,7 +4154,7 @@ pub const File = struct { this.pending.result = .{ .into_array = .{ .value = view, - .len = @truncate(Blob.SizeType, this.concurrent.read), + .len = @as(Blob.SizeType, @truncate(this.concurrent.read)), }, }; } else { @@ -4214,7 +4213,7 @@ pub const File = struct { if (this.scheduled_count == 0) { this.buf = buf; this.view.set(globalThis, view); - this.scheduleAsync(@truncate(Blob.SizeType, buf.len), globalThis); + this.scheduleAsync(@as(Blob.SizeType, @truncate(buf.len)), globalThis); } return .{ .pending = &this.pending }; }, @@ -4240,7 +4239,7 @@ pub const File = struct { } }, .result => |result| { - this.remaining_bytes -|= @truncate(@TypeOf(this.remaining_bytes), result); + this.remaining_bytes -|= @as(@TypeOf(this.remaining_bytes), @truncate(result)); if (result == 0) { return .{ .done = {} }; @@ -4468,7 +4467,7 @@ pub const FileReader = struct { if (this.readable().* == .File) { const chunk_size = this.readable().File.calculateChunkSize(std.math.maxInt(usize)); - return .{ .chunk_size = @truncate(Blob.SizeType, chunk_size) }; + return .{ .chunk_size = @as(Blob.SizeType, @truncate(chunk_size)) }; } return .{ .chunk_size = if (this.user_chunk_size == 0) default_fifo_chunk_size else this.user_chunk_size }; @@ -4596,8 +4595,8 @@ pub fn NewReadyWatcher( } pub fn unwatch(this: *Context, fd_: anytype) void { - const fd = @intCast(c_int, fd_); - std.debug.assert(@intCast(c_int, this.poll_ref.?.fd) == fd); + const fd = @as(c_int, @intCast(fd_)); + std.debug.assert(@as(c_int, @intCast(this.poll_ref.?.fd)) == fd); std.debug.assert( this.poll_ref.?.unregister(JSC.VirtualMachine.get().uws_event_loop.?) == .result, ); @@ -4625,7 +4624,7 @@ pub fn NewReadyWatcher( } pub fn watch(this: *Context, fd_: anytype) void { - const fd = @intCast(c_int, fd_); + const fd = @as(c_int, @intCast(fd_)); var poll_ref: *JSC.FilePoll = this.poll_ref orelse brk: { this.poll_ref = JSC.FilePoll.init( JSC.VirtualMachine.get(), diff --git a/src/bun.zig b/src/bun.zig index bd50af6f6..41efb8f58 100644 --- a/src/bun.zig +++ b/src/bun.zig @@ -176,9 +176,9 @@ pub const fmt = struct { pub fn size(value: anytype) SizeFormatter { return switch (@TypeOf(value)) { f64, f32, f128 => SizeFormatter{ - .value = @intFromFloat(u64, value), + .value = @as(u64, @intFromFloat(value)), }, - else => SizeFormatter{ .value = @intCast(u64, value) }, + else => SizeFormatter{ .value = @as(u64, @intCast(value)) }, }; } @@ -231,7 +231,7 @@ pub const fmt = struct { comptime var i: usize = 0; inline while (i < buf.len) : (i += 1) { // value relative to the current nibble - buf[i] = table[@as(u8, @truncate(u4, value >> comptime ((buf.len - i - 1) * 4))) & 0xF]; + buf[i] = table[@as(u8, @as(u4, @truncate(value >> comptime ((buf.len - i - 1) * 4)))) & 0xF]; } return buf; @@ -288,12 +288,12 @@ pub const MAX_PATH_BYTES: usize = if (Environment.isWasm) 1024 else std.fs.MAX_P pub inline fn cast(comptime To: type, value: anytype) To { if (comptime std.meta.trait.isIntegral(@TypeOf(value))) { - return @ptrFromInt(To, @bitCast(usize, value)); + return @as(To, @ptrFromInt(@as(usize, @bitCast(value)))); } // TODO: file issue about why std.meta.Child only is necessary on Linux aarch64 // it should be necessary on all targets - return @ptrCast(To, @alignCast(@alignOf(std.meta.Child(To)), value)); + return @ptrCast(@alignCast(value)); } extern fn strlen(ptr: [*c]const u8) usize; @@ -327,7 +327,7 @@ pub fn len(value: anytype) usize { .Many => { const sentinel_ptr = info.sentinel orelse @compileError("length of pointer with no sentinel"); - const sentinel = @ptrCast(*align(1) const info.child, sentinel_ptr).*; + const sentinel = @as(*align(1) const info.child, @ptrCast(sentinel_ptr)).*; return indexOfSentinel(info.child, sentinel, value); }, @@ -406,7 +406,7 @@ pub fn span(ptr: anytype) Span(@TypeOf(ptr)) { const l = len(ptr); const ptr_info = @typeInfo(Result).Pointer; if (ptr_info.sentinel) |s_ptr| { - const s = @ptrCast(*align(1) const ptr_info.child, s_ptr).*; + const s = @as(*align(1) const ptr_info.child, @ptrCast(s_ptr)).*; return ptr[0..l :s]; } else { return ptr[0..l]; @@ -572,7 +572,7 @@ pub fn hashWithSeed(seed: u64, content: []const u8) u64 { pub fn hash32(content: []const u8) u32 { const res = hash(content); - return @truncate(u32, res); + return @as(u32, @truncate(res)); } pub const HiveArray = @import("./hive_array.zig").HiveArray; @@ -688,8 +688,8 @@ pub inline fn isSliceInBuffer(slice: []const u8, buffer: []const u8) bool { pub fn rangeOfSliceInBuffer(slice: []const u8, buffer: []const u8) ?[2]u32 { if (!isSliceInBuffer(slice, buffer)) return null; const r = [_]u32{ - @truncate(u32, @intFromPtr(slice.ptr) -| @intFromPtr(buffer.ptr)), - @truncate(u32, slice.len), + @as(u32, @truncate(@intFromPtr(slice.ptr) -| @intFromPtr(buffer.ptr))), + @as(u32, @truncate(slice.len)), }; if (comptime Environment.allow_assert) std.debug.assert(strings.eqlLong(slice, buffer[r[0]..][0..r[1]], false)); @@ -732,7 +732,7 @@ pub fn getenvZ(path_: [:0]const u8) ?[]const u8 { // These wrappers exist to use our strings.eqlLong function pub const StringArrayHashMapContext = struct { pub fn hash(_: @This(), s: []const u8) u32 { - return @truncate(u32, std.hash.Wyhash.hash(0, s)); + return @as(u32, @truncate(std.hash.Wyhash.hash(0, s))); } pub fn eql(_: @This(), a: []const u8, b: []const u8, _: usize) bool { return strings.eqlLong(a, b, true); @@ -751,7 +751,7 @@ pub const StringArrayHashMapContext = struct { pub fn hash(this: @This(), s: []const u8) u32 { if (s.ptr == this.input.ptr and s.len == this.input.len) return this.value; - return @truncate(u32, std.hash.Wyhash.hash(0, s)); + return @as(u32, @truncate(std.hash.Wyhash.hash(0, s))); } pub fn eql(_: @This(), a: []const u8, b: []const u8) bool { @@ -882,7 +882,7 @@ pub const SignalCode = enum(u8) { } pub fn from(value: anytype) SignalCode { - return @enumFromInt(SignalCode, @truncate(u7, std.mem.asBytes(&value)[0])); + return @as(SignalCode, @enumFromInt(@as(u7, @truncate(std.mem.asBytes(&value)[0])))); } pub fn format(self: SignalCode, comptime _: []const u8, _: fmt.FormatOptions, writer: anytype) !void { @@ -965,8 +965,8 @@ pub fn ComptimeEnumMap(comptime T: type) type { /// Ignores default struct values. pub fn zero(comptime Type: type) Type { var out: [@sizeOf(Type)]u8 align(@alignOf(Type)) = undefined; - @memset(@ptrCast([*]u8, &out)[0..out.len], 0); - return @bitCast(Type, out); + @memset(@as([*]u8, @ptrCast(&out))[0..out.len], 0); + return @as(Type, @bitCast(out)); } pub const c_ares = @import("./deps/c_ares.zig"); pub const URL = @import("./url.zig").URL; @@ -1016,7 +1016,7 @@ fn lenSliceTo(ptr: anytype, comptime end: meta.Elem(@TypeOf(ptr))) usize { .One => switch (@typeInfo(ptr_info.child)) { .Array => |array_info| { if (array_info.sentinel) |sentinel_ptr| { - const sentinel = @ptrCast(*align(1) const array_info.child, sentinel_ptr).*; + const sentinel = @as(*align(1) const array_info.child, @ptrCast(sentinel_ptr)).*; if (sentinel == end) { return indexOfSentinel(array_info.child, end, ptr); } @@ -1026,7 +1026,7 @@ fn lenSliceTo(ptr: anytype, comptime end: meta.Elem(@TypeOf(ptr))) usize { else => {}, }, .Many => if (ptr_info.sentinel) |sentinel_ptr| { - const sentinel = @ptrCast(*align(1) const ptr_info.child, sentinel_ptr).*; + const sentinel = @as(*align(1) const ptr_info.child, @ptrCast(sentinel_ptr)).*; // We may be looking for something other than the sentinel, // but iterating past the sentinel would be a bug so we need // to check for both. @@ -1040,7 +1040,7 @@ fn lenSliceTo(ptr: anytype, comptime end: meta.Elem(@TypeOf(ptr))) usize { }, .Slice => { if (ptr_info.sentinel) |sentinel_ptr| { - const sentinel = @ptrCast(*align(1) const ptr_info.child, sentinel_ptr).*; + const sentinel = @as(*align(1) const ptr_info.child, @ptrCast(sentinel_ptr)).*; if (sentinel == end) { return indexOfSentinel(ptr_info.child, sentinel, ptr); } @@ -1070,7 +1070,7 @@ fn SliceTo(comptime T: type, comptime end: meta.Elem(T)) type { // to find the value searched for, which is only the case if it matches // the sentinel of the type passed. if (array_info.sentinel) |sentinel_ptr| { - const sentinel = @ptrCast(*align(1) const array_info.child, sentinel_ptr).*; + const sentinel = @as(*align(1) const array_info.child, @ptrCast(sentinel_ptr)).*; if (end == sentinel) { new_ptr_info.sentinel = &end; } else { @@ -1085,7 +1085,7 @@ fn SliceTo(comptime T: type, comptime end: meta.Elem(T)) type { // to find the value searched for, which is only the case if it matches // the sentinel of the type passed. if (ptr_info.sentinel) |sentinel_ptr| { - const sentinel = @ptrCast(*align(1) const ptr_info.child, sentinel_ptr).*; + const sentinel = @as(*align(1) const ptr_info.child, @ptrCast(sentinel_ptr)).*; if (end == sentinel) { new_ptr_info.sentinel = &end; } else { @@ -1123,7 +1123,7 @@ pub fn sliceTo(ptr: anytype, comptime end: meta.Elem(@TypeOf(ptr))) SliceTo(@Typ const length = lenSliceTo(ptr, end); const ptr_info = @typeInfo(Result).Pointer; if (ptr_info.sentinel) |s_ptr| { - const s = @ptrCast(*align(1) const ptr_info.child, s_ptr).*; + const s = @as(*align(1) const ptr_info.child, @ptrCast(s_ptr)).*; return ptr[0..length :s]; } else { return ptr[0..length]; @@ -1139,7 +1139,7 @@ pub fn cstring(input: []const u8) [:0]const u8 { input.ptr[input.len] == 0, ); } - return @ptrCast([*:0]const u8, input.ptr)[0..input.len :0]; + return @as([*:0]const u8, @ptrCast(input.ptr))[0..input.len :0]; } pub const Semver = @import("./install/semver.zig"); @@ -1267,10 +1267,10 @@ pub fn reloadProcess( const exec_path = (allocator.dupeZ(u8, std.fs.selfExePathAlloc(allocator) catch unreachable) catch unreachable).ptr; // we clone argv so that the memory address isn't the same as the libc one - const argv = @ptrCast([*:null]?[*:0]const u8, dupe_argv.ptr); + const argv = @as([*:null]?[*:0]const u8, @ptrCast(dupe_argv.ptr)); // we clone envp so that the memory address of environment variables isn't the same as the libc one - const envp = @ptrCast([*:null]?[*:0]const u8, environ.ptr); + const envp = @as([*:null]?[*:0]const u8, @ptrCast(environ.ptr)); // Clear the terminal if (clear_terminal) { @@ -1295,7 +1295,7 @@ pub fn reloadProcess( C.POSIX_SPAWN_SETEXEC | C.POSIX_SPAWN_SETSIGDEF | C.POSIX_SPAWN_SETSIGMASK, ) catch unreachable; - switch (PosixSpawn.spawnZ(exec_path, actions, attrs, @ptrCast([*:null]?[*:0]const u8, argv), @ptrCast([*:null]?[*:0]const u8, envp))) { + switch (PosixSpawn.spawnZ(exec_path, actions, attrs, @as([*:null]?[*:0]const u8, @ptrCast(argv)), @as([*:null]?[*:0]const u8, @ptrCast(envp)))) { .err => |err| { Output.panic("Unexpected error while reloading: {d} {s}", .{ err.errno, @tagName(err.getErrno()) }); }, diff --git a/src/bundler/bundle_v2.zig b/src/bundler/bundle_v2.zig index 1fd77f5f2..b70bac229 100644 --- a/src/bundler/bundle_v2.zig +++ b/src/bundler/bundle_v2.zig @@ -150,7 +150,7 @@ pub const ThreadPool = struct { if (existing_thread_pool) |pool| { this.pool = pool; } else { - var cpu_count = @truncate(u32, @max(std.Thread.getCpuCount() catch 2, 2)); + var cpu_count = @as(u32, @truncate(@max(std.Thread.getCpuCount() catch 2, 2))); if (v2.bundler.env.map.get("GOMAXPROCS")) |max_procs| { if (std.fmt.parseInt(u32, max_procs, 10)) |cpu_count_| { @@ -158,7 +158,7 @@ pub const ThreadPool = struct { } else |_| {} } - cpu_count = @max(@min(cpu_count, @truncate(u32, 128 - 1)), 2); + cpu_count = @max(@min(cpu_count, @as(u32, @truncate(128 - 1))), 2); this.pool = try v2.graph.allocator.create(ThreadPoolLib); this.pool.* = ThreadPoolLib.init(.{ .max_threads = cpu_count, @@ -584,7 +584,7 @@ pub const BundleV2 = struct { path.* = path.dupeAlloc(this.graph.allocator) catch @panic("Ran out of memory"); // We need to parse this - const source_index = Index.init(@intCast(u32, this.graph.ast.len)); + const source_index = Index.init(@as(u32, @intCast(this.graph.ast.len))); entry.value_ptr.* = source_index.get(); out_source_index = source_index; this.graph.ast.append(bun.default_allocator, JSAst.empty) catch unreachable; @@ -795,7 +795,7 @@ pub const BundleV2 = struct { const entry_points = try router.getEntryPoints(); try this.graph.entry_points.ensureUnusedCapacity(this.graph.allocator, entry_points.len); try this.graph.input_files.ensureUnusedCapacity(this.graph.allocator, entry_points.len); - try this.graph.path_to_source_index_map.ensureUnusedCapacity(this.graph.allocator, @truncate(u32, entry_points.len)); + try this.graph.path_to_source_index_map.ensureUnusedCapacity(this.graph.allocator, @as(u32, @truncate(entry_points.len))); for (entry_points) |entry_point| { const resolved = this.bundler.resolveEntryPoint(entry_point) catch continue; @@ -809,7 +809,7 @@ pub const BundleV2 = struct { // Setup entry points try this.graph.entry_points.ensureUnusedCapacity(this.graph.allocator, user_entry_points.len); try this.graph.input_files.ensureUnusedCapacity(this.graph.allocator, user_entry_points.len); - try this.graph.path_to_source_index_map.ensureUnusedCapacity(this.graph.allocator, @truncate(u32, user_entry_points.len)); + try this.graph.path_to_source_index_map.ensureUnusedCapacity(this.graph.allocator, @as(u32, @truncate(user_entry_points.len))); for (user_entry_points) |entry_point| { const resolved = this.bundler.resolveEntryPoint(entry_point) catch continue; @@ -915,7 +915,7 @@ pub const BundleV2 = struct { all_imported_files.setIntersection(react_client_component_boundary); if (all_imported_files.findFirstSet() == null) continue; - const source_index = Index.init(@intCast(u32, this.graph.ast.len)); + const source_index = Index.init(@as(u32, @intCast(this.graph.ast.len))); var shadow = ShadowEntryPoint{ .from_source_index = entry_point_source_index.get(), @@ -944,7 +944,7 @@ pub const BundleV2 = struct { ); if (this.graph.shadow_entry_point_range.loc.start < 0) { - this.graph.shadow_entry_point_range.loc.start = @intCast(i32, source_index.get()); + this.graph.shadow_entry_point_range.loc.start = @as(i32, @intCast(source_index.get())); } this.graph.ast.append(bun.default_allocator, JSAst.empty) catch unreachable; @@ -1015,7 +1015,7 @@ pub const BundleV2 = struct { this.waitForParse(); - minify_duration.* = @intCast(u64, @divTrunc(@truncate(i64, std.time.nanoTimestamp()) - @truncate(i64, bun.CLI.start_time), @as(i64, std.time.ns_per_ms))); + minify_duration.* = @as(u64, @intCast(@divTrunc(@as(i64, @truncate(std.time.nanoTimestamp())) - @as(i64, @truncate(bun.CLI.start_time)), @as(i64, std.time.ns_per_ms)))); source_code_size.* = this.source_code_length; if (this.graph.use_directive_entry_points.len > 0) { @@ -1108,7 +1108,7 @@ pub const BundleV2 = struct { ), ) catch unreachable; additional_files[index].push(this.graph.allocator, AdditionalFile{ - .output_file = @truncate(u32, additional_output_files.items.len - 1), + .output_file = @as(u32, @truncate(additional_output_files.items.len - 1)), }) catch unreachable; } } @@ -1279,7 +1279,7 @@ pub const BundleV2 = struct { to_assign_on_sourcemap = result; } - output_files_js.putIndex(globalThis, @intCast(u32, i), result); + output_files_js.putIndex(globalThis, @as(u32, @intCast(i)), result); } root_obj.put(globalThis, JSC.ZigString.static("outputs"), output_files_js); @@ -1444,7 +1444,7 @@ pub const BundleV2 = struct { this.free_list.appendSlice(&.{ result.namespace, result.path }) catch {}; // We need to parse this - const source_index = Index.init(@intCast(u32, this.graph.ast.len)); + const source_index = Index.init(@as(u32, @intCast(this.graph.ast.len))); existing.value_ptr.* = source_index.get(); out_source_index = source_index; this.graph.ast.append(bun.default_allocator, JSAst.empty) catch unreachable; @@ -1643,7 +1643,7 @@ pub const BundleV2 = struct { } defer { - if (this.graph.pool.pool.threadpool_context == @ptrCast(?*anyopaque, this.graph.pool)) { + if (this.graph.pool.pool.threadpool_context == @as(?*anyopaque, @ptrCast(this.graph.pool))) { this.graph.pool.pool.threadpool_context = null; } @@ -1892,7 +1892,7 @@ pub const BundleV2 = struct { } } - if (this.enqueueOnResolvePluginIfNeeded(source.index.get(), import_record, source.path.text, @truncate(u32, i), ast.target)) { + if (this.enqueueOnResolvePluginIfNeeded(source.index.get(), import_record, source.path.text, @as(u32, @truncate(i)), ast.target)) { continue; } @@ -2052,9 +2052,9 @@ pub const BundleV2 = struct { defer { if (diff > 0) - _ = @atomicRmw(usize, &graph.parse_pending, .Add, @intCast(usize, diff), .Monotonic) + _ = @atomicRmw(usize, &graph.parse_pending, .Add, @as(usize, @intCast(diff)), .Monotonic) else - _ = @atomicRmw(usize, &graph.parse_pending, .Sub, @intCast(usize, -diff), .Monotonic); + _ = @atomicRmw(usize, &graph.parse_pending, .Sub, @as(usize, @intCast(-diff)), .Monotonic); } var resolve_queue = ResolveQueue.init(this.graph.allocator); @@ -2212,7 +2212,7 @@ pub const BundleV2 = struct { record.source_index.value = source_index; if (getRedirectId(result.ast.redirect_import_record_index)) |compare| { - if (compare == @truncate(u32, i)) { + if (compare == @as(u32, @truncate(i))) { graph.path_to_source_index_map.put( graph.allocator, result.source.path.hashKey(), @@ -3083,8 +3083,8 @@ const LinkerGraph = struct { var source_symbols = &this.symbols.symbols_for_source.slice()[source_index]; var ref = Ref.init( - @truncate(Ref.Int, source_symbols.len), - @truncate(Ref.Int, source_index), + @as(Ref.Int, @truncate(source_symbols.len)), + @as(Ref.Int, @truncate(source_index)), false, ); ref.tag = .symbol; @@ -3127,7 +3127,7 @@ const LinkerGraph = struct { part: js_ast.Part, ) !u32 { var parts: *js_ast.Part.List = &graph.ast.items(.parts)[id]; - const part_id = @truncate(u32, parts.len); + const part_id = @as(u32, @truncate(parts.len)); try parts.push(graph.allocator, part); var top_level_symbol_to_parts_overlay: ?*TopLevelSymbolToParts = null; @@ -3239,7 +3239,7 @@ const LinkerGraph = struct { for (part_ids, new_dependencies) |part_id, *dependency| { dependency.* = .{ .source_index = source_index_to_import_from, - .part_index = @truncate(u32, part_id), + .part_index = @as(u32, @truncate(part_id)), }; } } @@ -3345,7 +3345,7 @@ const LinkerGraph = struct { // Loop #2: For each import in the entire module graph for (this.reachable_files) |source_id| { const use_directive = this.useDirectiveBoundary(source_id.get()); - const source_i32 = @intCast(i32, source_id.get()); + const source_i32 = @as(i32, @intCast(source_id.get())); const is_shadow_entrypoint = shadow_entry_point_range.contains(source_i32); // If the reachable file has a "use client"; at the top @@ -3421,7 +3421,7 @@ const LinkerGraph = struct { files.items(.distance_from_entry_point), file.distance_from_entry_point, ); - this.stable_source_indices = @ptrCast([]const u32, stable_source_indices); + this.stable_source_indices = @as([]const u32, @ptrCast(stable_source_indices)); } { @@ -3442,7 +3442,7 @@ const LinkerGraph = struct { } if (count > 0) { - try const_values.ensureTotalCapacity(this.allocator, @truncate(u32, count)); + try const_values.ensureTotalCapacity(this.allocator, @as(u32, @truncate(count))); for (this.ast.items(.const_values)) |const_value| { for (const_value.keys(), const_value.values()) |key, value| { const_values.putAssumeCapacityNoClobber(key, value); @@ -3612,7 +3612,7 @@ const LinkerContext = struct { source.contents, // We don't support sourcemaps for source files with more than 2^31 lines - @intCast(i32, @truncate(u31, approximate_line_count)), + @as(i32, @intCast(@as(u31, @truncate(approximate_line_count)))), ); } @@ -3695,8 +3695,8 @@ const LinkerContext = struct { ) void { this.source_maps.line_offset_wait_group.init(); this.source_maps.quoted_contents_wait_group.init(); - this.source_maps.line_offset_wait_group.counter = @truncate(u32, reachable.len); - this.source_maps.quoted_contents_wait_group.counter = @truncate(u32, reachable.len); + this.source_maps.line_offset_wait_group.counter = @as(u32, @truncate(reachable.len)); + this.source_maps.quoted_contents_wait_group.counter = @as(u32, @truncate(reachable.len)); this.source_maps.line_offset_tasks = this.allocator.alloc(SourceMapData.Task, reachable.len) catch unreachable; this.source_maps.quoted_contents_tasks = this.allocator.alloc(SourceMapData.Task, reachable.len) catch unreachable; @@ -3724,7 +3724,7 @@ const LinkerContext = struct { } pub fn scheduleTasks(this: *LinkerContext, batch: ThreadPoolLib.Batch) void { - _ = this.pending_task_count.fetchAdd(@truncate(u32, batch.len), .Monotonic); + _ = this.pending_task_count.fetchAdd(@as(u32, @truncate(batch.len)), .Monotonic); this.parse_graph.pool.pool.schedule(batch); } @@ -3748,7 +3748,7 @@ const LinkerContext = struct { ); if (this.options.source_maps != .none) { - this.computeDataForSourceMap(@ptrCast([]Index.Int, reachable)); + this.computeDataForSourceMap(@as([]Index.Int, @ptrCast(reachable))); } if (comptime FeatureFlags.help_catch_memory_issues) { @@ -3815,7 +3815,7 @@ const LinkerContext = struct { // Create chunks for entry points for (entry_source_indices, 0..) |source_index, entry_id_| { - const entry_bit = @truncate(Chunk.EntryPoint.ID, entry_id_); + const entry_bit = @as(Chunk.EntryPoint.ID, @truncate(entry_id_)); var entry_bits = &this.graph.files.items(.entry_bits)[source_index]; entry_bits.set(entry_bit); @@ -3844,7 +3844,7 @@ const LinkerContext = struct { allocator: std.mem.Allocator, source_id: u32, pub fn next(c: *@This(), chunk_id: usize) void { - _ = c.chunks[chunk_id].files_with_parts_in_chunk.getOrPut(c.allocator, @truncate(u32, c.source_id)) catch unreachable; + _ = c.chunks[chunk_id].files_with_parts_in_chunk.getOrPut(c.allocator, @as(u32, @truncate(c.source_id))) catch unreachable; } }; @@ -3871,7 +3871,7 @@ const LinkerContext = struct { }; } - _ = js_chunk_entry.value_ptr.files_with_parts_in_chunk.getOrPut(this.allocator, @truncate(u32, source_index.get())) catch unreachable; + _ = js_chunk_entry.value_ptr.files_with_parts_in_chunk.getOrPut(this.allocator, @as(u32, @truncate(source_index.get()))) catch unreachable; } else { var handler = Handler{ .chunks = js_chunks.values(), @@ -3893,7 +3893,7 @@ const LinkerContext = struct { // to look up the path for this chunk to use with the import. for (chunks, 0..) |*chunk, chunk_id| { if (chunk.entry_point.is_entry_point) { - entry_point_chunk_indices[chunk.entry_point.source_index] = @truncate(u32, chunk_id); + entry_point_chunk_indices[chunk.entry_point.source_index] = @as(u32, @truncate(chunk_id)); } } @@ -4068,7 +4068,7 @@ const LinkerContext = struct { const records = v.import_records[source_index].slice(); for (parts, 0..) |part, part_index_| { - const part_index = @truncate(u32, part_index_); + const part_index = @as(u32, @truncate(part_index_)); const is_part_in_this_chunk = is_file_in_chunk and part.is_live; for (part.import_record_indices.slice()) |record_id| { const record: *const ImportRecord = &records[record_id]; @@ -4109,7 +4109,7 @@ const LinkerContext = struct { .{ .source_index = Index.init(source_index), .part_index_begin = 0, - .part_index_end = @truncate(u32, parts.len), + .part_index_end = @as(u32, @truncate(parts.len)), }, ) catch unreachable; } @@ -4994,7 +4994,7 @@ const LinkerContext = struct { continue; } - std.debug.assert(@intCast(usize, other_id) < this.graph.meta.len); + std.debug.assert(@as(usize, @intCast(other_id)) < this.graph.meta.len); const other_flags = flags[other_id]; const other_export_kind = exports_kind[other_id]; const other_source_index = other_id; @@ -5004,7 +5004,7 @@ const LinkerContext = struct { const wrapper_ref = wrapper_refs[other_id]; this.graph.generateSymbolImportAndUse( source_index, - @intCast(u32, part_index), + @as(u32, @intCast(part_index)), wrapper_ref, 1, Index.source(other_source_index), @@ -5025,7 +5025,7 @@ const LinkerContext = struct { if (other_flags.wrap == .esm and kind != .stmt) { this.graph.generateSymbolImportAndUse( source_index, - @intCast(u32, part_index), + @as(u32, @intCast(part_index)), this.graph.ast.items(.exports_ref)[other_id], 1, Index.source(other_source_index), @@ -5053,7 +5053,7 @@ const LinkerContext = struct { // dynamic export fallback object doesn't end up being needed. this.graph.generateSymbolImportAndUse( source_index, - @intCast(u32, part_index), + @as(u32, @intCast(part_index)), this.graph.ast.items(.exports_ref)[other_id], 1, Index.source(other_source_index), @@ -5102,7 +5102,7 @@ const LinkerContext = struct { if (record.source_index.isValid()) { var other_source_index = record.source_index.get(); const other_id = other_source_index; - std.debug.assert(@intCast(usize, other_id) < this.graph.meta.len); + std.debug.assert(@as(usize, @intCast(other_id)) < this.graph.meta.len); const other_export_kind = exports_kind[other_id]; if (other_source_index != source_index and other_export_kind.isDynamic()) { happens_at_runtime = true; @@ -5115,7 +5115,7 @@ const LinkerContext = struct { // in a different chunk than this export star. this.graph.generateSymbolImportAndUse( source_index, - @intCast(u32, part_index), + @as(u32, @intCast(part_index)), this.graph.ast.items(.exports_ref)[other_id], 1, Index.source(other_source_index), @@ -5127,7 +5127,7 @@ const LinkerContext = struct { // Depend on this file's "exports" object for the first argument to "__reExport" this.graph.generateSymbolImportAndUse( source_index, - @intCast(u32, part_index), + @as(u32, @intCast(part_index)), this.graph.ast.items(.exports_ref)[id], 1, Index.source(source_index), @@ -5523,9 +5523,9 @@ const LinkerContext = struct { const other_parts = c.topLevelSymbolsToParts(id, ref); for (other_parts) |other_part_index| { - var local = local_dependencies.getOrPut(@intCast(u32, other_part_index)) catch unreachable; + var local = local_dependencies.getOrPut(@as(u32, @intCast(other_part_index))) catch unreachable; if (!local.found_existing or local.value_ptr.* != part_index) { - local.value_ptr.* = @intCast(u32, part_index); + local.value_ptr.* = @as(u32, @intCast(part_index)); // note: if we crash on append, it is due to threadlocal heaps in mimalloc part.dependencies.push( allocator_, @@ -5539,7 +5539,7 @@ const LinkerContext = struct { // Also map from imports to parts that use them if (named_imports.getPtr(ref)) |existing| { - existing.local_parts_with_uses.push(allocator_, @intCast(u32, part_index)) catch unreachable; + existing.local_parts_with_uses.push(allocator_, @as(u32, @intCast(part_index))) catch unreachable; } } } @@ -5706,7 +5706,7 @@ const LinkerContext = struct { // the same name should already be marked as all being in a single // chunk. In that case this will overwrite the same value below which // is fine. - deps.symbols.assignChunkIndex(part.declared_symbols, @truncate(u32, chunk_index)); + deps.symbols.assignChunkIndex(part.declared_symbols, @as(u32, @truncate(chunk_index))); const used_refs = part.symbol_uses.keys(); @@ -5861,7 +5861,7 @@ const LinkerContext = struct { } _ = js.imports_from_other_chunks.getOrPutValue( c.allocator, - @truncate(u32, other_chunk_index), + @as(u32, @truncate(other_chunk_index)), CrossChunkImport.Item.List{}, ) catch unreachable; } @@ -5913,7 +5913,7 @@ const LinkerContext = struct { &stable_ref_list, ); var clause_items = BabyList(js_ast.ClauseItem).initCapacity(c.allocator, stable_ref_list.items.len) catch unreachable; - clause_items.len = @truncate(u32, stable_ref_list.items.len); + clause_items.len = @as(u32, @truncate(stable_ref_list.items.len)); repr.exports_to_other_chunks.ensureUnusedCapacity(c.allocator, stable_ref_list.items.len) catch unreachable; r.clearRetainingCapacity(); @@ -5977,7 +5977,7 @@ const LinkerContext = struct { for (cross_chunk_imports_input) |cross_chunk_import| { switch (c.options.output_format) { .esm => { - const import_record_index = @intCast(u32, cross_chunk_imports.len); + const import_record_index = @as(u32, @intCast(cross_chunk_imports.len)); var clauses = std.ArrayList(js_ast.ClauseItem).initCapacity(c.allocator, cross_chunk_import.sorted_import_items.len) catch unreachable; for (cross_chunk_import.sorted_import_items.slice()) |item| { @@ -6680,7 +6680,7 @@ const LinkerContext = struct { chunk.intermediate_output = c.breakOutputIntoPieces( worker.allocator, &j, - @truncate(u32, ctx.chunks.len), + @as(u32, @truncate(ctx.chunks.len)), ) catch @panic("Unhandled out of memory error in breakOutputIntoPieces()"); // TODO: meta contents @@ -6778,7 +6778,7 @@ const LinkerContext = struct { var res = try source_index_to_sources_index.getOrPut(current_source_index); if (res.found_existing) continue; res.value_ptr.* = next_source_index; - const source_index = @intCast(i32, next_source_index); + const source_index = @as(i32, @intCast(next_source_index)); next_source_index += 1; var start_state = sourcemap.SourceMapState{ @@ -8174,7 +8174,7 @@ const LinkerContext = struct { // Add all other parts in this chunk for (parts, 0..) |part, index_| { - const index = part_range.part_index_begin + @truncate(u32, index_); + const index = part_range.part_index_begin + @as(u32, @truncate(index_)); if (!part.is_live) { // Skip the part if it's not in this chunk continue; @@ -8669,7 +8669,7 @@ const LinkerContext = struct { wait_group.deinit(); c.allocator.destroy(wait_group); } - wait_group.counter = @truncate(u32, chunks.len); + wait_group.counter = @as(u32, @truncate(chunks.len)); var ctx = GenerateChunkCtx{ .chunk = &chunks[0], .wg = wait_group, .c = c, .chunks = chunks }; try c.parse_graph.pool.pool.doPtr(c.allocator, wait_group, ctx, generateJSRenamer, chunks); } @@ -8708,7 +8708,7 @@ const LinkerContext = struct { for (chunk.content.javascript.parts_in_chunk_in_order, 0..) |part_range, i| { remaining_part_ranges[0] = .{ .part_range = part_range, - .i = @truncate(u32, i), + .i = @as(u32, @truncate(i)), .task = ThreadPoolLib.Task{ .callback = &generateCompileResultForJSChunk, }, @@ -8719,7 +8719,7 @@ const LinkerContext = struct { remaining_part_ranges = remaining_part_ranges[1..]; } } - wait_group.counter = @truncate(u32, total_count); + wait_group.counter = @as(u32, @truncate(total_count)); c.parse_graph.pool.pool.schedule(batch); wait_group.wait(); } @@ -8736,7 +8736,7 @@ const LinkerContext = struct { debug(" START {d} postprocess chunks", .{chunks.len}); defer debug(" DONE {d} postprocess chunks", .{chunks.len}); wait_group.init(); - wait_group.counter = @truncate(u32, chunks.len); + wait_group.counter = @as(u32, @truncate(chunks.len)); try c.parse_graph.pool.pool.doPtr(c.allocator, wait_group, chunk_contexts[0], generateChunkJS, chunks); } @@ -8783,14 +8783,14 @@ const LinkerContext = struct { defer sorted_client_component_ids.deinit(); while (react_client_components_iterator.next()) |source_index| { if (!c.graph.files_live.isSet(source_index)) continue; - sorted_client_component_ids.appendAssumeCapacity(@intCast(u32, source_index)); + sorted_client_component_ids.appendAssumeCapacity(@as(u32, @intCast(source_index))); } var sorted_server_component_ids = std.ArrayList(u32).initCapacity(c.allocator, server_modules.capacity) catch unreachable; defer sorted_server_component_ids.deinit(); while (react_server_components_iterator.next()) |source_index| { if (!c.graph.files_live.isSet(source_index)) continue; - sorted_server_component_ids.appendAssumeCapacity(@intCast(u32, source_index)); + sorted_server_component_ids.appendAssumeCapacity(@as(u32, @intCast(source_index))); } const Sorter = struct { @@ -8817,7 +8817,7 @@ const LinkerContext = struct { var chunk: *Chunk = brk2: { for (chunks) |*chunk_| { if (!chunk_.entry_point.is_entry_point) continue; - if (chunk_.entry_point.source_index == @intCast(u32, component_source_index)) { + if (chunk_.entry_point.source_index == @as(u32, @intCast(component_source_index))) { break :brk2 chunk_; } @@ -8835,8 +8835,8 @@ const LinkerContext = struct { const named_exports = all_named_exports[source_index_for_named_exports].keys(); try export_names.ensureUnusedCapacity(named_exports.len); - const exports_len = @intCast(u32, named_exports.len); - const exports_start = @intCast(u32, export_names.items.len); + const exports_len = @as(u32, @intCast(named_exports.len)); + const exports_start = @as(u32, @intCast(export_names.items.len)); grow_length += chunk.final_rel_path.len; @@ -8844,8 +8844,8 @@ const LinkerContext = struct { for (named_exports) |export_name| { try export_names.append(Api.StringPointer{ - .offset = @intCast(u32, bytes.items.len + grow_length), - .length = @intCast(u32, export_name.len), + .offset = @as(u32, @intCast(bytes.items.len + grow_length)), + .length = @as(u32, @intCast(export_name.len)), }); grow_length += export_name.len; } @@ -8853,15 +8853,15 @@ const LinkerContext = struct { try bytes.ensureUnusedCapacity(grow_length); const input_name = Api.StringPointer{ - .offset = @intCast(u32, bytes.items.len), - .length = @intCast(u32, all_sources[component_source_index].path.pretty.len), + .offset = @as(u32, @intCast(bytes.items.len)), + .length = @as(u32, @intCast(all_sources[component_source_index].path.pretty.len)), }; bytes.appendSliceAssumeCapacity(all_sources[component_source_index].path.pretty); const asset_name = Api.StringPointer{ - .offset = @intCast(u32, bytes.items.len), - .length = @intCast(u32, chunk.final_rel_path.len), + .offset = @as(u32, @intCast(bytes.items.len)), + .length = @as(u32, @intCast(chunk.final_rel_path.len)), }; bytes.appendSliceAssumeCapacity(chunk.final_rel_path); @@ -9010,7 +9010,7 @@ const LinkerContext = struct { .hash = chunk.isolated_hash, .loader = .js, .input_path = input_path, - .display_size = @truncate(u32, display_size), + .display_size = @as(u32, @truncate(display_size)), .output_kind = if (chunk.entry_point.is_entry_point) c.graph.files.items(.entry_point_kind)[chunk.entry_point.source_index].OutputKind() else @@ -9019,7 +9019,7 @@ const LinkerContext = struct { .output_path = try bun.default_allocator.dupe(u8, chunk.final_rel_path), .is_executable = chunk.is_executable, .source_map_index = if (sourcemap_output_file != null) - @truncate(u32, output_files.items.len + 1) + @as(u32, @truncate(output_files.items.len + 1)) else null, }, @@ -9163,13 +9163,13 @@ const LinkerContext = struct { .buffer = .{ .ptr = @constCast(output_source_map.ptr), // TODO: handle > 4 GB files - .len = @truncate(u32, output_source_map.len), - .byte_len = @truncate(u32, output_source_map.len), + .len = @as(u32, @truncate(output_source_map.len)), + .byte_len = @as(u32, @truncate(output_source_map.len)), }, }, }, .encoding = .buffer, - .dirfd = @intCast(bun.FileDescriptor, root_dir.dir.fd), + .dirfd = @as(bun.FileDescriptor, @intCast(root_dir.dir.fd)), .file = .{ .path = JSC.Node.PathLike{ .string = JSC.PathString.init(source_map_final_rel_path), @@ -9196,7 +9196,7 @@ const LinkerContext = struct { .loader = .json, .input_loader = .file, .output_kind = .sourcemap, - .size = @truncate(u32, output_source_map.len), + .size = @as(u32, @truncate(output_source_map.len)), .data = .{ .saved = 0, }, @@ -9231,15 +9231,15 @@ const LinkerContext = struct { .buffer = .{ .ptr = @constCast(code_result.buffer.ptr), // TODO: handle > 4 GB files - .len = @truncate(u32, code_result.buffer.len), - .byte_len = @truncate(u32, code_result.buffer.len), + .len = @as(u32, @truncate(code_result.buffer.len)), + .byte_len = @as(u32, @truncate(code_result.buffer.len)), }, }, }, .encoding = .buffer, .mode = if (chunk.is_executable) 0o755 else 0o644, - .dirfd = @intCast(bun.FileDescriptor, root_dir.dir.fd), + .dirfd = @as(bun.FileDescriptor, @intCast(root_dir.dir.fd)), .file = .{ .path = JSC.Node.PathLike{ .string = JSC.PathString.init(rel_path), @@ -9275,11 +9275,11 @@ const LinkerContext = struct { .chunk, .loader = .js, .source_map_index = if (source_map_output_file != null) - @truncate(u32, output_files.items.len + 1) + @as(u32, @truncate(output_files.items.len + 1)) else null, - .size = @truncate(u32, code_result.buffer.len), - .display_size = @truncate(u32, display_size), + .size = @as(u32, @truncate(code_result.buffer.len)), + .display_size = @as(u32, @truncate(display_size)), .is_executable = chunk.is_executable, .data = .{ .saved = 0, @@ -9302,13 +9302,13 @@ const LinkerContext = struct { .buffer = .{ .ptr = @constCast(react_client_components_manifest.ptr), // TODO: handle > 4 GB files - .len = @truncate(u32, react_client_components_manifest.len), - .byte_len = @truncate(u32, react_client_components_manifest.len), + .len = @as(u32, @truncate(react_client_components_manifest.len)), + .byte_len = @as(u32, @truncate(react_client_components_manifest.len)), }, }, }, .encoding = .buffer, - .dirfd = @intCast(bun.FileDescriptor, root_dir.dir.fd), + .dirfd = @as(bun.FileDescriptor, @intCast(root_dir.dir.fd)), .file = .{ .path = JSC.Node.PathLike{ .string = JSC.PathString.init(components_manifest_path), @@ -9337,7 +9337,7 @@ const LinkerContext = struct { .loader = .file, .input_loader = .file, .output_kind = .@"component-manifest", - .size = @truncate(u32, react_client_components_manifest.len), + .size = @as(u32, @truncate(react_client_components_manifest.len)), .input_path = bun.default_allocator.dupe(u8, components_manifest_path) catch unreachable, .output_path = bun.default_allocator.dupe(u8, components_manifest_path) catch unreachable, }, @@ -9378,13 +9378,13 @@ const LinkerContext = struct { .buffer = .{ .ptr = @constCast(bytes.ptr), // TODO: handle > 4 GB files - .len = @truncate(u32, bytes.len), - .byte_len = @truncate(u32, bytes.len), + .len = @as(u32, @truncate(bytes.len)), + .byte_len = @as(u32, @truncate(bytes.len)), }, }, }, .encoding = .buffer, - .dirfd = @intCast(bun.FileDescriptor, root_dir.dir.fd), + .dirfd = @as(bun.FileDescriptor, @intCast(root_dir.dir.fd)), .file = .{ .path = JSC.Node.PathLike{ .string = JSC.PathString.init(src.dest_path), @@ -9408,7 +9408,7 @@ const LinkerContext = struct { dest.value = .{ .saved = .{}, }; - dest.size = @truncate(u32, bytes.len); + dest.size = @as(u32, @truncate(bytes.len)); } } } @@ -9601,7 +9601,7 @@ const LinkerContext = struct { entry_point_kinds[id].isEntryPoint())) { _ = c.markPartLiveForTreeShaking( - @intCast(u32, part_index), + @as(u32, @intCast(part_index)), id, side_effects, parts, @@ -10504,14 +10504,14 @@ const LinkerContext = struct { }, } - output_piece_index.index = @intCast(u30, index); + output_piece_index.index = @as(u30, @intCast(index)); // If we're at the end, generate one final piece if (boundary == invalid_boundary) { try pieces.append(Chunk.OutputPiece{ .index = output_piece_index, .data_ptr = output.ptr, - .data_len = @truncate(u32, output.len), + .data_len = @as(u32, @truncate(output.len)), }); break; } @@ -10522,7 +10522,7 @@ const LinkerContext = struct { .data_ptr = output.ptr, // sliced this way to panic if out of bounds - .data_len = @truncate(u32, output[0..boundary].len), + .data_len = @as(u32, @truncate(output[0..boundary].len)), }); output = output[boundary + prefix.len + 9 ..]; } @@ -11330,12 +11330,12 @@ const ShadowEntryPoint = struct { , .{ path.pretty, - ImportsFormatter{ .ctx = this.ctx, .source_index = @intCast(Index.Int, source_index), .pretty = path.pretty }, + ImportsFormatter{ .ctx = this.ctx, .source_index = @as(Index.Int, @intCast(source_index)), .pretty = path.pretty }, bun.fmt.hexIntUpper(bun.hash(path.pretty)), - ExportsFormatter{ .ctx = this.ctx, .source_index = @intCast(Index.Int, source_index), .pretty = path.pretty, .shadow = this.shadow }, + ExportsFormatter{ .ctx = this.ctx, .source_index = @as(Index.Int, @intCast(source_index)), .pretty = path.pretty, .shadow = this.shadow }, }, ) catch unreachable; - this.resolved_source_indices.append(@truncate(Index.Int, source_index)) catch unreachable; + this.resolved_source_indices.append(@as(Index.Int, @truncate(source_index))) catch unreachable; } }; const ImportsFormatter = struct { diff --git a/src/bundler/entry_points.zig b/src/bundler/entry_points.zig index abc7eb602..cf961817a 100644 --- a/src/bundler/entry_points.zig +++ b/src/bundler/entry_points.zig @@ -264,13 +264,13 @@ pub const MacroEntryPoint = struct { const fmt = bun.fmt.hexIntLower(hash); const specifier = std.fmt.bufPrint(buf, js_ast.Macro.namespaceWithColon ++ "//{any}.js", .{fmt}) catch unreachable; - len.* = @truncate(u32, specifier.len); + len.* = @as(u32, @truncate(specifier.len)); return generateIDFromSpecifier(specifier); } pub fn generateIDFromSpecifier(specifier: string) i32 { - return @bitCast(i32, @truncate(u32, bun.hash(specifier))); + return @as(i32, @bitCast(@as(u32, @truncate(bun.hash(specifier))))); } pub fn generate( @@ -68,7 +68,7 @@ pub fn lstat_absolute(path: [:0]const u8) !Stat { const ctime = st.ctime(); return Stat{ .inode = st.ino, - .size = @bitCast(u64, st.size), + .size = @as(u64, @bitCast(st.size)), .mode = st.mode, .kind = switch (builtin.os.tag) { .wasi => switch (st.filetype) { @@ -142,16 +142,16 @@ pub fn moveFileZSlowWithHandle(in_handle: std.os.fd_t, to_dir: std.os.fd_t, dest const out_handle = try std.os.openatZ(to_dir, destination, std.os.O.WRONLY | std.os.O.CREAT | std.os.O.CLOEXEC, 0o022); defer std.os.close(out_handle); if (comptime Environment.isLinux) { - _ = std.os.system.fallocate(out_handle, 0, 0, @intCast(i64, stat_.size)); - _ = try std.os.sendfile(out_handle, in_handle, 0, @intCast(usize, stat_.size), &[_]std.os.iovec_const{}, &[_]std.os.iovec_const{}, 0); + _ = std.os.system.fallocate(out_handle, 0, 0, @as(i64, @intCast(stat_.size))); + _ = try std.os.sendfile(out_handle, in_handle, 0, @as(usize, @intCast(stat_.size)), &[_]std.os.iovec_const{}, &[_]std.os.iovec_const{}, 0); } else { if (comptime Environment.isMac) { // if this fails, it doesn't matter // we only really care about read & write succeeding PlatformSpecific.preallocate_file( out_handle, - @intCast(std.os.off_t, 0), - @intCast(std.os.off_t, stat_.size), + @as(std.os.off_t, @intCast(0)), + @as(std.os.off_t, @intCast(stat_.size)), ) catch {}; } @@ -350,15 +350,15 @@ pub fn getSystemLoadavg() [3]f64 { } pub fn getProcessPriority(pid_: i32) i32 { - const pid = @intCast(c_uint, pid_); + const pid = @as(c_uint, @intCast(pid_)); return get_process_priority(pid); } pub fn setProcessPriority(pid_: i32, priority_: i32) std.c.E { if (pid_ < 0) return .SRCH; - const pid = @intCast(c_uint, pid_); - const priority = @intCast(c_int, priority_); + const pid = @as(c_uint, @intCast(pid_)); + const priority = @as(c_int, @intCast(priority_)); const code: i32 = set_process_priority(pid, priority); @@ -431,9 +431,9 @@ pub fn dlsymWithHandle(comptime Type: type, comptime name: [:0]const u8, comptim pub fn dlsym(comptime Type: type, comptime name: [:0]const u8) ?Type { const handle_getter = struct { const RTLD_DEFAULT = if (bun.Environment.isMac) - @ptrFromInt(?*anyopaque, @bitCast(usize, @as(isize, -2))) + @as(?*anyopaque, @ptrFromInt(@as(usize, @bitCast(@as(isize, -2))))) else - @ptrFromInt(?*anyopaque, @as(usize, 0)); + @as(?*anyopaque, @ptrFromInt(@as(usize, 0))); pub fn getter() ?*anyopaque { return RTLD_DEFAULT; diff --git a/src/cli.zig b/src/cli.zig index 0c093681a..1debd9254 100644 --- a/src/cli.zig +++ b/src/cli.zig @@ -849,7 +849,7 @@ pub const HelpCommand = struct { \\ ; - var rand_state = std.rand.DefaultPrng.init(@intCast(u64, @max(std.time.milliTimestamp(), 0))); + var rand_state = std.rand.DefaultPrng.init(@as(u64, @intCast(@max(std.time.milliTimestamp(), 0)))); const rand = rand_state.random(); const package_add_i = rand.uintAtMost(usize, packages_to_add_filler.len - 1); const package_remove_i = rand.uintAtMost(usize, packages_to_remove_filler.len - 1); diff --git a/src/cli/add_completions.zig b/src/cli/add_completions.zig index 2e7d6b4ea..1267ea159 100644 --- a/src/cli/add_completions.zig +++ b/src/cli/add_completions.zig @@ -66,7 +66,7 @@ pub const index: Index = if (Environment.isDebug) Index.initFill(&.{"OOMWorkArou break; } } - array.set(@enumFromInt(FirstLetter, i), &record); + array.set(@as(FirstLetter, @enumFromInt(i)), &record); @setEvalBranchQuota(999999); i = next_i; diff --git a/src/cli/build_command.zig b/src/cli/build_command.zig index ef99f7765..bb4eb4313 100644 --- a/src/cli/build_command.zig +++ b/src/cli/build_command.zig @@ -345,7 +345,7 @@ pub const BuildCommand = struct { this_bundler.options.public_path, outfile, ); - const compiled_elapsed = @divTrunc(@truncate(i64, std.time.nanoTimestamp() - bundled_end), @as(i64, std.time.ns_per_ms)); + const compiled_elapsed = @divTrunc(@as(i64, @truncate(std.time.nanoTimestamp() - bundled_end)), @as(i64, std.time.ns_per_ms)); const compiled_elapsed_digit_count: isize = switch (compiled_elapsed) { 0...9 => 3, 10...99 => 2, @@ -355,9 +355,9 @@ pub const BuildCommand = struct { }; const padding_buf = [_]u8{' '} ** 16; - Output.pretty("{s}", .{padding_buf[0..@intCast(usize, compiled_elapsed_digit_count)]}); + Output.pretty("{s}", .{padding_buf[0..@as(usize, @intCast(compiled_elapsed_digit_count))]}); - Output.printElapsedStdoutTrim(@floatFromInt(f64, compiled_elapsed)); + Output.printElapsedStdoutTrim(@as(f64, @floatFromInt(compiled_elapsed))); Output.prettyln(" <green>compile<r> <b><blue>{s}<r>", .{ outfile, @@ -407,14 +407,14 @@ pub const BuildCommand = struct { .buffer = .{ .ptr = @constCast(value.bytes.ptr), // TODO: handle > 4 GB files - .len = @truncate(u32, value.bytes.len), - .byte_len = @truncate(u32, value.bytes.len), + .len = @as(u32, @truncate(value.bytes.len)), + .byte_len = @as(u32, @truncate(value.bytes.len)), }, }, }, .encoding = .buffer, .mode = if (f.is_executable) 0o755 else 0o644, - .dirfd = @intCast(bun.FileDescriptor, root_dir.dir.fd), + .dirfd = @as(bun.FileDescriptor, @intCast(root_dir.dir.fd)), .file = .{ .path = JSC.Node.PathLike{ .string = JSC.PathString.init(rel_path), @@ -451,7 +451,7 @@ pub const BuildCommand = struct { try writer.writeByteNTimes(' ', 2); try writer.writeAll(rel_path); try writer.writeByteNTimes(' ', padding_count); - const size = @floatFromInt(f64, f.size) / 1000.0; + const size = @as(f64, @floatFromInt(f.size)) / 1000.0; try std.fmt.formatFloatDecimal(size, .{ .precision = 2 }, writer); try writer.writeAll(" KB\n"); } @@ -461,7 +461,7 @@ pub const BuildCommand = struct { if (write_summary and log.errors == 0) { Output.prettyln("\n", .{}); Output.printElapsedStdoutTrim( - @floatFromInt(f64, (@divTrunc(@truncate(i64, std.time.nanoTimestamp() - bun.CLI.start_time), @as(i64, std.time.ns_per_ms)))), + @as(f64, @floatFromInt((@divTrunc(@as(i64, @truncate(std.time.nanoTimestamp() - bun.CLI.start_time)), @as(i64, std.time.ns_per_ms))))), ); if (this_bundler.options.transform_only) { Output.prettyln(" <green>transpile<r>", .{}); @@ -490,10 +490,10 @@ fn exitOrWatch(code: u8, watch: bool) void { fn printSummary(bundled_end: i128, minify_duration: u64, minified: bool, input_code_length: usize, reachable_file_count: usize, output_files: []const options.OutputFile) void { const padding_buf = [_]u8{' '} ** 16; - const bundle_until_now = @divTrunc(@truncate(i64, bundled_end - bun.CLI.start_time), @as(i64, std.time.ns_per_ms)); + const bundle_until_now = @divTrunc(@as(i64, @truncate(bundled_end - bun.CLI.start_time)), @as(i64, std.time.ns_per_ms)); const bundle_elapsed = if (minified) - bundle_until_now - @intCast(i64, @truncate(u63, minify_duration)) + bundle_until_now - @as(i64, @intCast(@as(u63, @truncate(minify_duration)))) else bundle_until_now; @@ -505,8 +505,8 @@ fn printSummary(bundled_end: i128, minify_duration: u64, minified: bool, input_c else => 0, }; if (minified) { - Output.pretty("{s}", .{padding_buf[0..@intCast(usize, minified_digit_count)]}); - Output.printElapsedStdoutTrim(@floatFromInt(f64, minify_duration)); + Output.pretty("{s}", .{padding_buf[0..@as(usize, @intCast(minified_digit_count))]}); + Output.printElapsedStdoutTrim(@as(f64, @floatFromInt(minify_duration))); const output_size = brk: { var total_size: u64 = 0; for (output_files) |f| { @@ -519,19 +519,19 @@ fn printSummary(bundled_end: i128, minify_duration: u64, minified: bool, input_c }; // this isn't an exact size // we may inject sourcemaps or comments or import paths - const delta: i64 = @truncate(i64, @intCast(i65, input_code_length) - @intCast(i65, output_size)); + const delta: i64 = @as(i64, @truncate(@as(i65, @intCast(input_code_length)) - @as(i65, @intCast(output_size)))); if (delta > 1024) { Output.prettyln( " <green>minify<r> -{} <d>(estimate)<r>", .{ - bun.fmt.size(@intCast(usize, delta)), + bun.fmt.size(@as(usize, @intCast(delta))), }, ); } else if (-delta > 1024) { Output.prettyln( " <b>minify<r> +{} <d>(estimate)<r>", .{ - bun.fmt.size(@intCast(usize, -delta)), + bun.fmt.size(@as(usize, @intCast(-delta))), }, ); } else { @@ -547,8 +547,8 @@ fn printSummary(bundled_end: i128, minify_duration: u64, minified: bool, input_c else => 0, }; - Output.pretty("{s}", .{padding_buf[0..@intCast(usize, bundle_elapsed_digit_count)]}); - Output.printElapsedStdoutTrim(@floatFromInt(f64, bundle_elapsed)); + Output.pretty("{s}", .{padding_buf[0..@as(usize, @intCast(bundle_elapsed_digit_count))]}); + Output.printElapsedStdoutTrim(@as(f64, @floatFromInt(bundle_elapsed))); Output.prettyln( " <green>bundle<r> {d} modules", .{ diff --git a/src/cli/bunx_command.zig b/src/cli/bunx_command.zig index 365f2c9ed..84c7e1bba 100644 --- a/src/cli/bunx_command.zig +++ b/src/cli/bunx_command.zig @@ -365,10 +365,10 @@ pub const BunxCommand = struct { } }, .Signal => |signal| { - Global.exit(@truncate(u7, signal)); + Global.exit(@as(u7, @truncate(signal))); }, .Stopped => |signal| { - Global.exit(@truncate(u7, signal)); + Global.exit(@as(u7, @truncate(signal))); }, // shouldn't happen else => { diff --git a/src/cli/create_command.zig b/src/cli/create_command.zig index d536c4750..aff34e9b4 100644 --- a/src/cli/create_command.zig +++ b/src/cli/create_command.zig @@ -104,7 +104,7 @@ fn execTask(allocator: std.mem.Allocator, task_: string, cwd: string, _: string, count += 1; } - const npm_args = 2 * @intCast(usize, @intFromBool(npm_client != null)); + const npm_args = 2 * @as(usize, @intCast(@intFromBool(npm_client != null))); const total = count + npm_args; var argv = allocator.alloc(string, total) catch return; var proc: std.ChildProcess = undefined; @@ -491,7 +491,7 @@ pub const CreateCommand = struct { [1]Archive.Plucker{undefined}; var archive_context = Archive.Context{ - .pluckers = pluckers[0..@intCast(usize, @intFromBool(!create_options.skip_package_json))], + .pluckers = pluckers[0..@as(usize, @intCast(@intFromBool(!create_options.skip_package_json)))], .all_files = undefined, .overwrite_list = bun.StringArrayHashMap(void).init(ctx.allocator), }; @@ -736,7 +736,7 @@ pub const CreateCommand = struct { if (package_json_expr.asProperty("name")) |name_expr| { if (name_expr.expr.data == .e_string) { var basename = std.fs.path.basename(destination); - name_expr.expr.data.e_string.data = @ptrFromInt([*]u8, @intFromPtr(basename.ptr))[0..basename.len]; + name_expr.expr.data.e_string.data = @as([*]u8, @ptrFromInt(@intFromPtr(basename.ptr)))[0..basename.len]; } } @@ -778,7 +778,7 @@ pub const CreateCommand = struct { const key = list[i].key.?.data.e_string.data; const do_prune = packages.has(key); - prune_count += @intCast(u16, @intFromBool(do_prune)); + prune_count += @as(u16, @intCast(@intFromBool(do_prune))); if (!do_prune) { list[out_i] = list[i]; @@ -902,14 +902,14 @@ pub const CreateCommand = struct { var needs_to_inject_dev_dependency = needs.react_refresh or needs.bun_macro_relay; var needs_to_inject_dependency = needs.bun_framework_next; - const dependencies_to_inject_count = @intCast(usize, @intFromBool(needs.bun_framework_next)); + const dependencies_to_inject_count = @as(usize, @intCast(@intFromBool(needs.bun_framework_next))); - const dev_dependencies_to_inject_count = @intCast(usize, @intFromBool(needs.react_refresh)) + - @intCast(usize, @intFromBool(needs.bun_macro_relay)); + const dev_dependencies_to_inject_count = @as(usize, @intCast(@intFromBool(needs.react_refresh))) + + @as(usize, @intCast(@intFromBool(needs.bun_macro_relay))); - const new_properties_count = @intCast(usize, @intFromBool(needs_to_inject_dev_dependency and dev_dependencies == null)) + - @intCast(usize, @intFromBool(needs_to_inject_dependency and dependencies == null)) + - @intCast(usize, @intFromBool(needs_bun_prop)); + const new_properties_count = @as(usize, @intCast(@intFromBool(needs_to_inject_dev_dependency and dev_dependencies == null))) + + @as(usize, @intCast(@intFromBool(needs_to_inject_dependency and dependencies == null))) + + @as(usize, @intCast(@intFromBool(needs_bun_prop))); if (new_properties_count != 0) { try properties_list.ensureUnusedCapacity(new_properties_count); @@ -1835,11 +1835,11 @@ pub const Example = struct { Headers.Kv{ .name = Api.StringPointer{ .offset = 0, - .length = @intCast(u32, "Access-Token".len), + .length = @as(u32, @intCast("Access-Token".len)), }, .value = Api.StringPointer{ - .offset = @intCast(u32, "Access-Token".len), - .length = @intCast(u32, headers_buf.len - "Access-Token".len), + .offset = @as(u32, @intCast("Access-Token".len)), + .length = @as(u32, @intCast(headers_buf.len - "Access-Token".len)), }, }, ); diff --git a/src/cli/package_manager_command.zig b/src/cli/package_manager_command.zig index 0d92c4232..4408568e0 100644 --- a/src/cli/package_manager_command.zig +++ b/src/cli/package_manager_command.zig @@ -222,7 +222,7 @@ pub const PackageManagerCommand = struct { const sorted_dependencies = try ctx.allocator.alloc(DependencyID, root_deps.len); defer ctx.allocator.free(sorted_dependencies); for (sorted_dependencies, 0..) |*dep, i| { - dep.* = @truncate(DependencyID, root_deps.off + i); + dep.* = @as(DependencyID, @truncate(root_deps.off + i)); } std.sort.block(DependencyID, sorted_dependencies, ByName{ .dependencies = dependencies, diff --git a/src/cli/run_command.zig b/src/cli/run_command.zig index 271d9ecba..44b3935a3 100644 --- a/src/cli/run_command.zig +++ b/src/cli/run_command.zig @@ -414,7 +414,7 @@ pub const RunCommand = struct { var retried = false; if (!strings.endsWithComptime(std.mem.span(std.os.argv[0]), "node")) { - var argv0 = @ptrCast([*:0]const u8, optional_bun_path.ptr); + var argv0 = @as([*:0]const u8, @ptrCast(optional_bun_path.ptr)); // if we are already an absolute path, use that // if the user started the application via a shebang, it's likely that the path is absolute already @@ -426,7 +426,7 @@ pub const RunCommand = struct { var self = std.fs.selfExePath(&self_exe_bin_path_buf) catch unreachable; if (self.len > 0) { self.ptr[self.len] = 0; - argv0 = @ptrCast([*:0]const u8, self.ptr); + argv0 = @as([*:0]const u8, @ptrCast(self.ptr)); optional_bun_path.* = self; } } @@ -589,7 +589,7 @@ pub const RunCommand = struct { try new_path.appendSlice(package_json_dir); } - var bin_dir_i: i32 = @intCast(i32, bin_dirs.len) - 1; + var bin_dir_i: i32 = @as(i32, @intCast(bin_dirs.len)) - 1; // Iterate in reverse order // Directories are added to bin_dirs in top-down order // That means the parent-most node_modules/.bin will be first @@ -598,7 +598,7 @@ pub const RunCommand = struct { if (needs_colon) { try new_path.append(':'); } - try new_path.appendSlice(bin_dirs[@intCast(usize, bin_dir_i)]); + try new_path.appendSlice(bin_dirs[@as(usize, @intCast(bin_dir_i))]); } if (needs_colon) { diff --git a/src/cli/test_command.zig b/src/cli/test_command.zig index 5314c6e52..75ca900df 100644 --- a/src/cli/test_command.zig +++ b/src/cli/test_command.zig @@ -766,7 +766,7 @@ pub const TestCommand = struct { // https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#grouping-log-lines const file_prefix = if (Output.is_github_action) "::group::" else ""; - vm.main_hash = @truncate(u32, bun.hash(file_path)); + vm.main_hash = @as(u32, @truncate(bun.hash(file_path))); var repeat_count = reporter.repeat_count; var repeat_index: u32 = 0; while (repeat_index < repeat_count) : (repeat_index += 1) { diff --git a/src/cli/upgrade_command.zig b/src/cli/upgrade_command.zig index e9d16999d..b8bfd3f73 100644 --- a/src/cli/upgrade_command.zig +++ b/src/cli/upgrade_command.zig @@ -116,7 +116,7 @@ pub const UpgradeCheckerThread = struct { } fn _run(env_loader: *DotEnv.Loader) anyerror!void { - var rand = std.rand.DefaultPrng.init(@intCast(u64, @max(std.time.milliTimestamp(), 0))); + var rand = std.rand.DefaultPrng.init(@as(u64, @intCast(@max(std.time.milliTimestamp(), 0)))); const delay = rand.random().intRangeAtMost(u64, 100, 10000); std.time.sleep(std.time.ns_per_ms * delay); @@ -174,8 +174,8 @@ pub const UpgradeCommand = struct { var header_entries: Headers.Entries = .{}; const accept = Headers.Kv{ - .name = Api.StringPointer{ .offset = 0, .length = @intCast(u32, "Accept".len) }, - .value = Api.StringPointer{ .offset = @intCast(u32, "Accept".len), .length = @intCast(u32, "application/vnd.github.v3+json".len) }, + .name = Api.StringPointer{ .offset = 0, .length = @as(u32, @intCast("Accept".len)) }, + .value = Api.StringPointer{ .offset = @as(u32, @intCast("Accept".len)), .length = @as(u32, @intCast("application/vnd.github.v3+json".len)) }, }; try header_entries.append(allocator, accept); defer if (comptime silent) header_entries.deinit(allocator); @@ -206,11 +206,11 @@ pub const UpgradeCommand = struct { Headers.Kv{ .name = Api.StringPointer{ .offset = accept.value.length + accept.value.offset, - .length = @intCast(u32, "Access-Token".len), + .length = @as(u32, @intCast("Access-Token".len)), }, .value = Api.StringPointer{ - .offset = @intCast(u32, accept.value.length + accept.value.offset + "Access-Token".len), - .length = @intCast(u32, access_token.len), + .offset = @as(u32, @intCast(accept.value.length + accept.value.offset + "Access-Token".len)), + .length = @as(u32, @intCast(access_token.len)), }, }, ); @@ -344,7 +344,7 @@ pub const UpgradeCommand = struct { if (asset.asProperty("size")) |size_| { if (size_.expr.data == .e_number) { - version.size = @intCast(u32, @max(@intFromFloat(i32, std.math.ceil(size_.expr.data.e_number.value)), 0)); + version.size = @as(u32, @intCast(@max(@as(i32, @intFromFloat(std.math.ceil(size_.expr.data.e_number.value))), 0))); } } return version; diff --git a/src/comptime_string_map.zig b/src/comptime_string_map.zig index 87881263b..3690abbe1 100644 --- a/src/comptime_string_map.zig +++ b/src/comptime_string_map.zig @@ -26,7 +26,7 @@ pub fn ComptimeStringMapWithKeyType(comptime KeyType: type, comptime V: type, co return a.key.len < b.key.len; } // https://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster-than-processing-an-unsorted-array - @setEvalBranchQuota(99999); + @setEvalBranchQuota(999999); return std.mem.order(KeyType, a.key, b.key) == .lt; } }).lenAsc; diff --git a/src/copy_file.zig b/src/copy_file.zig index 7c68791b2..093c7d91d 100644 --- a/src/copy_file.zig +++ b/src/copy_file.zig @@ -88,12 +88,12 @@ fn canUseCopyFileRangeSyscall() bool { const fd_t = std.os.fd_t; pub fn copyFileRange(fd_in: fd_t, off_in: u64, fd_out: fd_t, off_out: u64, len: usize, flags: u32) CopyFileRangeError!usize { if (canUseCopyFileRangeSyscall()) { - var off_in_copy = @bitCast(i64, off_in); - var off_out_copy = @bitCast(i64, off_out); + var off_in_copy = @as(i64, @bitCast(off_in)); + var off_out_copy = @as(i64, @bitCast(off_out)); const rc = std.os.linux.copy_file_range(fd_in, &off_in_copy, fd_out, &off_out_copy, len, flags); switch (std.os.linux.getErrno(rc)) { - .SUCCESS => return @intCast(usize, rc), + .SUCCESS => return @as(usize, @intCast(rc)), .BADF => return error.FilesOpenedWithWrongFlags, .FBIG => return error.FileTooBig, .IO => return error.InputOutput, diff --git a/src/css_scanner.zig b/src/css_scanner.zig index 6edf8b310..e464a6d9f 100644 --- a/src/css_scanner.zig +++ b/src/css_scanner.zig @@ -34,7 +34,7 @@ pub const Chunk = struct { }; pub fn raw(chunk: *const Chunk, source: *const logger.Source) string { - return source.contents[@intCast(usize, chunk.range.loc.start)..][0..@intCast(usize, chunk.range.len)]; + return source.contents[@as(usize, @intCast(chunk.range.loc.start))..][0..@as(usize, @intCast(chunk.range.len))]; } // pub fn string(chunk: *const Chunk, source: *const logger.Source) string { @@ -132,8 +132,8 @@ pub const Scanner = struct { pub fn range(scanner: *Scanner) logger.Range { return logger.Range{ - .loc = .{ .start = @intCast(i32, scanner.start) }, - .len = @intCast(i32, scanner.end - scanner.start), + .loc = .{ .start = @as(i32, @intCast(scanner.start)) }, + .len = @as(i32, @intCast(scanner.end - scanner.start)), }; } @@ -251,7 +251,7 @@ pub const Scanner = struct { return text; }, -1 => { - const loc = logger.Loc{ .start = @intCast(i32, scanner.end) }; + const loc = logger.Loc{ .start = @as(i32, @intCast(scanner.end)) }; scanner.log.addError(scanner.source, loc, "Expected \")\" to end URL token") catch {}; return text; }, @@ -264,7 +264,7 @@ pub const Scanner = struct { text.utf8 = scanner.source.contents[start..scanner.end]; if (scanner.codepoint != ')') { - const loc = logger.Loc{ .start = @intCast(i32, scanner.end) }; + const loc = logger.Loc{ .start = @as(i32, @intCast(scanner.end)) }; scanner.log.addError(scanner.source, loc, "Expected \")\" to end URL token") catch {}; break :validURL; } @@ -273,7 +273,7 @@ pub const Scanner = struct { return text; }, '"', '\'', '(' => { - const r = logger.Range{ .loc = logger.Loc{ .start = @intCast(i32, start) }, .len = @intCast(i32, scanner.end - start) }; + const r = logger.Range{ .loc = logger.Loc{ .start = @as(i32, @intCast(start)) }, .len = @as(i32, @intCast(scanner.end - start)) }; scanner.log.addRangeError(scanner.source, r, "Expected \")\" to end URL token") catch {}; break :validURL; @@ -282,7 +282,7 @@ pub const Scanner = struct { text.needs_decode_escape = true; if (!scanner.isValidEscape()) { var loc = logger.Loc{ - .start = @intCast(i32, scanner.end), + .start = @as(i32, @intCast(scanner.end)), }; scanner.log.addError(scanner.source, loc, "Expected \")\" to end URL token") catch {}; break :validURL; @@ -293,7 +293,7 @@ pub const Scanner = struct { if (isNonPrintable(scanner.codepoint)) { const r = logger.Range{ .loc = logger.Loc{ - .start = @intCast(i32, start), + .start = @as(i32, @intCast(start)), }, .len = 1, }; @@ -354,7 +354,7 @@ pub const Scanner = struct { restart: while (true) { var chunk = Chunk{ .range = logger.Range{ - .loc = .{ .start = @intCast(i32, scanner.end) }, + .loc = .{ .start = @as(i32, @intCast(scanner.end)) }, .len = 0, }, .content = .{ @@ -372,7 +372,7 @@ pub const Scanner = struct { // We also need to parse strings and comments, or else we risk resolving comments like this /* url(hi.jpg) */ switch (scanner.codepoint) { -1 => { - chunk.range.len = @intCast(i32, scanner.end) - chunk.range.loc.start; + chunk.range.len = @as(i32, @intCast(scanner.end)) - chunk.range.loc.start; chunk.content.t_verbatim = .{}; try writeChunk(writer, chunk); return; @@ -457,13 +457,13 @@ pub const Scanner = struct { }, } - chunk.range.len = @intCast(i32, url_start) - chunk.range.loc.start; + chunk.range.len = @as(i32, @intCast(url_start)) - chunk.range.loc.start; chunk.content = .{ .t_verbatim = .{} }; // flush the pending chunk try writeChunk(writer, chunk); - chunk.range.loc.start = @intCast(i32, url_start); - chunk.range.len = @intCast(i32, scanner.end) - chunk.range.loc.start; + chunk.range.loc.start = @as(i32, @intCast(url_start)); + chunk.range.len = @as(i32, @intCast(scanner.end)) - chunk.range.loc.start; chunk.content = .{ .t_url = url_text }; try writeChunk(writer, chunk); scanner.has_delimiter_before = false; @@ -559,7 +559,7 @@ pub const Scanner = struct { if (scanner.codepoint != ' ') continue :toplevel; // Now that we know to expect an import url, we flush the chunk - chunk.range.len = @intCast(i32, start) - chunk.range.loc.start; + chunk.range.len = @as(i32, @intCast(start)) - chunk.range.loc.start; chunk.content = .{ .t_verbatim = .{} }; // flush the pending chunk try writeChunk(writer, chunk); @@ -597,7 +597,7 @@ pub const Scanner = struct { else => { scanner.log.addError( scanner.source, - logger.Loc{ .start = @intCast(i32, scanner.end) }, + logger.Loc{ .start = @as(i32, @intCast(scanner.end)) }, "Expected @import to start with a string or url()", ) catch {}; return error.SyntaxError; @@ -609,7 +609,7 @@ pub const Scanner = struct { else => { scanner.log.addError( scanner.source, - logger.Loc{ .start = @intCast(i32, scanner.end) }, + logger.Loc{ .start = @as(i32, @intCast(scanner.end)) }, "Expected @import to start with a \", ' or url()", ) catch {}; return error.SyntaxError; @@ -619,7 +619,7 @@ pub const Scanner = struct { if (scanner.codepoint != '(') { scanner.log.addError( scanner.source, - logger.Loc{ .start = @intCast(i32, scanner.end) }, + logger.Loc{ .start = @as(i32, @intCast(scanner.end)) }, "Expected \"(\" in @import url", ) catch {}; return error.SyntaxError; @@ -688,7 +688,7 @@ pub const Scanner = struct { -1 => { scanner.log.addError( scanner.source, - logger.Loc{ .start = @intCast(i32, scanner.end) }, + logger.Loc{ .start = @as(i32, @intCast(scanner.end)) }, "Expected \";\" at end of @import", ) catch {}; return; @@ -698,7 +698,7 @@ pub const Scanner = struct { scanner.step(); } if (import_behavior == .scan or import_behavior == .keep) { - chunk.range.len = @intCast(i32, scanner.end) - @max(chunk.range.loc.start, 0); + chunk.range.len = @as(i32, @intCast(scanner.end)) - @max(chunk.range.loc.start, 0); chunk.content = .{ .t_import = import }; try writeChunk(writer, chunk); } @@ -725,7 +725,7 @@ pub const Scanner = struct { switch (scanner.codepoint) { '*' => { scanner.step(); - chunk.range.len = @intCast(i32, scanner.end); + chunk.range.len = @as(i32, @intCast(scanner.end)); scanner.consumeToEndOfMultiLineComment(chunk.range); }, '/' => { @@ -824,10 +824,10 @@ pub const Scanner = struct { return switch (slice.len) { 0 => -1, - 1 => @intCast(CodePoint, slice[0]), - 2 => @intCast(CodePoint, std.unicode.utf8Decode2(slice) catch unreachable), - 3 => @intCast(CodePoint, std.unicode.utf8Decode3(slice) catch unreachable), - 4 => @intCast(CodePoint, std.unicode.utf8Decode4(slice) catch unreachable), + 1 => @as(CodePoint, @intCast(slice[0])), + 2 => @as(CodePoint, @intCast(std.unicode.utf8Decode2(slice) catch unreachable)), + 3 => @as(CodePoint, @intCast(std.unicode.utf8Decode3(slice) catch unreachable)), + 4 => @as(CodePoint, @intCast(std.unicode.utf8Decode4(slice) catch unreachable)), else => unreachable, }; } @@ -1091,20 +1091,20 @@ pub fn NewWriter( .t_verbatim => { if (comptime std.meta.trait.hasFn("copyFileRange")(WriterType)) { try writer.ctx.copyFileRange( - @intCast(usize, chunk.range.loc.start), - @intCast( + @as(usize, @intCast(chunk.range.loc.start)), + @as( usize, - @intCast( + @intCast(@as( usize, - chunk.range.len, - ), + @intCast(chunk.range.len), + )), ), ); } else { try writer.ctx.writeAll( - writer.source.contents[@intCast(usize, chunk.range.loc.start)..][0..@intCast( + writer.source.contents[@as(usize, @intCast(chunk.range.loc.start))..][0..@as( usize, - chunk.range.len, + @intCast(chunk.range.len), )], ); } @@ -1219,9 +1219,9 @@ pub fn NewBundler( var lines_of_code: usize = 0; // We LIFO - var i: i32 = @intCast(i32, this.bundle_queue.items.len - 1); + var i: i32 = @as(i32, @intCast(this.bundle_queue.items.len - 1)); while (i >= 0) : (i -= 1) { - const item = this.bundle_queue.items[@intCast(usize, i)]; + const item = this.bundle_queue.items[@as(usize, @intCast(i))]; const watcher_id = this.watcher.indexOf(item) orelse unreachable; const watch_item = this.watcher.watchlist.get(watcher_id); const source = try this.getSource(watch_item.file_path, if (watch_item.fd > 0) watch_item.fd else null); @@ -1248,7 +1248,7 @@ pub fn NewBundler( try this.writer.done(); return CodeCount{ - .written = @intCast(usize, @max(this.writer.written - start_count, 0)), + .written = @as(usize, @intCast(@max(this.writer.written - start_count, 0))), .approximate_newline_count = lines_of_code, }; } diff --git a/src/darwin_c.zig b/src/darwin_c.zig index 2d7e98e58..88fd4f8bd 100644 --- a/src/darwin_c.zig +++ b/src/darwin_c.zig @@ -294,7 +294,7 @@ pub const SystemErrno = enum(u8) { } if (code >= max) return null; - return @enumFromInt(SystemErrno, code); + return @as(SystemErrno, @enumFromInt(code)); } pub fn label(this: SystemErrno) ?[]const u8 { @@ -460,9 +460,9 @@ pub const io_object_t = c_uint; pub const io_service_t = c_uint; pub const io_registry_entry_t = c_uint; pub const FSEventStreamCallback = ?*const fn (FSEventStreamRef, ?*anyopaque, c_int, ?*anyopaque, [*c]const FSEventStreamEventFlags, [*c]const FSEventStreamEventId) callconv(.C) void; -pub const kCFStringEncodingUTF8: CFStringEncoding = @bitCast(CFStringEncoding, @as(c_int, 134217984)); +pub const kCFStringEncodingUTF8: CFStringEncoding = @as(CFStringEncoding, @bitCast(@as(c_int, 134217984))); pub const noErr: OSStatus = 0; -pub const kFSEventStreamEventIdSinceNow: FSEventStreamEventId = @bitCast(FSEventStreamEventId, @as(c_longlong, -@as(c_int, 1))); +pub const kFSEventStreamEventIdSinceNow: FSEventStreamEventId = @as(FSEventStreamEventId, @bitCast(@as(c_longlong, -@as(c_int, 1)))); pub const kFSEventStreamCreateFlagNoDefer: c_int = 2; pub const kFSEventStreamCreateFlagFileEvents: c_int = 16; pub const kFSEventStreamEventFlagEventIdsWrapped: c_int = 8; @@ -521,7 +521,7 @@ pub fn get_system_uptime() u64 { else => return 0, }; - return @bitCast(u64, std.time.timestamp() - uptime_[0].sec); + return @as(u64, @bitCast(std.time.timestamp() - uptime_[0].sec)); } pub const struct_LoadAvg = struct { @@ -543,11 +543,11 @@ pub fn get_system_loadavg() [3]f64 { }; const loadavg = loadavg_[0]; - const scale = @floatFromInt(f64, loadavg.fscale); + const scale = @as(f64, @floatFromInt(loadavg.fscale)); return [3]f64{ - @floatFromInt(f64, loadavg.ldavg[0]) / scale, - @floatFromInt(f64, loadavg.ldavg[1]) / scale, - @floatFromInt(f64, loadavg.ldavg[2]) / scale, + @as(f64, @floatFromInt(loadavg.ldavg[0])) / scale, + @as(f64, @floatFromInt(loadavg.ldavg[1])) / scale, + @as(f64, @floatFromInt(loadavg.ldavg[2])) / scale, }; } diff --git a/src/defines.zig b/src/defines.zig index ca6edf3a4..210d301ed 100644 --- a/src/defines.zig +++ b/src/defines.zig @@ -66,7 +66,7 @@ pub const DefineData = struct { } pub fn from_mergable_input(defines: RawDefines, user_defines: *UserDefines, log: *logger.Log, allocator: std.mem.Allocator) !void { - try user_defines.ensureUnusedCapacity(@truncate(u32, defines.count())); + try user_defines.ensureUnusedCapacity(@as(u32, @truncate(defines.count()))); var iter = defines.iterator(); while (iter.next()) |entry| { var splitter = std.mem.split(u8, entry.key_ptr.*, "."); diff --git a/src/deps/boringssl.translated.zig b/src/deps/boringssl.translated.zig index 27c3d621f..68d4215b4 100644 --- a/src/deps/boringssl.translated.zig +++ b/src/deps/boringssl.translated.zig @@ -98,8 +98,9 @@ pub const struct_BASIC_CONSTRAINTS_st = opaque {}; pub const BASIC_CONSTRAINTS = struct_BASIC_CONSTRAINTS_st; pub const struct_DIST_POINT_st = opaque {}; pub const DIST_POINT = struct_DIST_POINT_st; +pub const BN_ULONG = u64; pub const struct_bignum_st = extern struct { - d: [*c]u64, + d: [*c]BN_ULONG, width: c_int, dmax: c_int, neg: c_int, @@ -133,32 +134,8 @@ pub const struct_Netscape_spki_st = extern struct { signature: [*c]ASN1_BIT_STRING, }; pub const NETSCAPE_SPKI = struct_Netscape_spki_st; - -pub const struct_RIPEMD160state_st = extern struct { - h: [5]u32, - Nl: u32, - Nh: u32, - data: [64]u8, - num: c_uint, -}; +pub const struct_RIPEMD160state_st = opaque {}; pub const RIPEMD160_CTX = struct_RIPEMD160state_st; -pub const RIPEMD160_CBLOCK = @as(c_int, 64); -pub const RIPEMD160_LBLOCK = @import("std").zig.c_translation.MacroArithmetic.div(RIPEMD160_CBLOCK, @as(c_int, 4)); -pub const RIPEMD160_DIGEST_LENGTH = @as(c_int, 20); -pub extern fn RIPEMD160_Init(ctx: [*c]RIPEMD160_CTX) c_int; -pub extern fn RIPEMD160_Update(ctx: [*c]RIPEMD160_CTX, data: ?*const anyopaque, len: usize) c_int; -pub extern fn RIPEMD160_Final(out: [*c]u8, ctx: [*c]RIPEMD160_CTX) c_int; -pub extern fn RIPEMD160(data: [*c]const u8, len: usize, out: [*c]u8) [*c]u8; -pub extern fn RIPEMD160_Transform(ctx: [*c]RIPEMD160_CTX, block: [*c]const u8) void; - -pub const struct_X509_POLICY_CACHE_st = opaque {}; -pub const X509_POLICY_CACHE = struct_X509_POLICY_CACHE_st; -pub const struct_X509_POLICY_LEVEL_st = opaque {}; -pub const X509_POLICY_LEVEL = struct_X509_POLICY_LEVEL_st; -pub const struct_X509_POLICY_NODE_st = opaque {}; -pub const X509_POLICY_NODE = struct_X509_POLICY_NODE_st; -pub const struct_X509_POLICY_TREE_st = opaque {}; -pub const X509_POLICY_TREE = struct_X509_POLICY_TREE_st; pub const struct_X509_VERIFY_PARAM_st = opaque {}; pub const X509_VERIFY_PARAM = struct_X509_VERIFY_PARAM_st; pub const struct_X509_crl_st = opaque {}; @@ -194,11 +171,11 @@ pub const CRYPTO_MUTEX = pthread_rwlock_t; pub const struct_bn_mont_ctx_st = extern struct { RR: BIGNUM, N: BIGNUM, - n0: [2]u64, + n0: [2]BN_ULONG, }; pub const BN_MONT_CTX = struct_bn_mont_ctx_st; pub const struct_bn_blinding_st = opaque {}; -pub const BN_BLINDING = struct_bn_blinding_st; // /Users/jarred/Code/bun/src/deps/boringssl/include/openssl/rsa.h:785:12: warning: struct demoted to opaque type - has bitfield +pub const BN_BLINDING = struct_bn_blinding_st; // src/deps/boringssl/include/openssl/rsa.h:788:12: warning: struct demoted to opaque type - has bitfield pub const struct_rsa_st = opaque {}; pub const RSA = struct_rsa_st; pub const struct_dsa_st = extern struct { @@ -216,22 +193,7 @@ pub const struct_dsa_st = extern struct { ex_data: CRYPTO_EX_DATA, }; pub const DSA = struct_dsa_st; -pub const struct_dh_st = extern struct { - p: [*c]BIGNUM, - g: [*c]BIGNUM, - pub_key: [*c]BIGNUM, - priv_key: [*c]BIGNUM, - priv_length: c_uint, - method_mont_p_lock: CRYPTO_MUTEX, - method_mont_p: [*c]BN_MONT_CTX, - q: [*c]BIGNUM, - j: [*c]BIGNUM, - seed: [*c]u8, - seedlen: c_int, - counter: [*c]BIGNUM, - flags: c_int, - references: CRYPTO_refcount_t, -}; +pub const struct_dh_st = opaque {}; pub const DH = struct_dh_st; pub const struct_ec_key_st = opaque {}; pub const EC_KEY = struct_ec_key_st; @@ -239,7 +201,7 @@ const union_unnamed_2 = extern union { ptr: ?*anyopaque, rsa: ?*RSA, dsa: [*c]DSA, - dh: [*c]DH, + dh: ?*DH, ec: ?*EC_KEY, }; pub const struct_evp_pkey_asn1_method_st = opaque {}; @@ -251,38 +213,10 @@ pub const struct_evp_pkey_st = extern struct { ameth: ?*const EVP_PKEY_ASN1_METHOD, }; pub const EVP_PKEY = struct_evp_pkey_st; -pub const struct_evp_cipher_ctx_st = extern struct { - cipher: [*c]const EVP_CIPHER, - app_data: ?*anyopaque, - cipher_data: ?*anyopaque, - key_len: c_uint, - encrypt: c_int, - flags: u32, - oiv: [16]u8, - iv: [16]u8, - buf: [32]u8, - buf_len: c_int, - num: c_uint, - final_used: c_int, - final: [32]u8, -}; -pub const EVP_CIPHER_CTX = struct_evp_cipher_ctx_st; -pub const struct_evp_cipher_st = extern struct { - nid: c_int, - block_size: c_uint, - key_len: c_uint, - iv_len: c_uint, - ctx_size: c_uint, - flags: u32, - app_data: ?*anyopaque, - init: ?*const fn ([*c]EVP_CIPHER_CTX, [*c]const u8, [*c]const u8, c_int) callconv(.C) c_int, - cipher: ?*const fn ([*c]EVP_CIPHER_CTX, [*c]u8, [*c]const u8, usize) callconv(.C) c_int, - cleanup: ?*const fn ([*c]EVP_CIPHER_CTX) callconv(.C) void, - ctrl: ?*const fn ([*c]EVP_CIPHER_CTX, c_int, c_int, ?*anyopaque) callconv(.C) c_int, -}; +pub const struct_evp_cipher_st = opaque {}; pub const EVP_CIPHER = struct_evp_cipher_st; pub const struct_evp_cipher_info_st = extern struct { - cipher: [*c]const EVP_CIPHER, + cipher: ?*const EVP_CIPHER, iv: [16]u8, }; pub const EVP_CIPHER_INFO = struct_evp_cipher_info_st; @@ -317,6 +251,19 @@ pub const X509_SIG = struct_X509_sig_st; pub const struct_bignum_ctx = opaque {}; pub const BN_CTX = struct_bignum_ctx; pub const BIO_METHOD = struct_bio_method_st; +// pub const struct_bio_st = extern struct { +// method: [*c]const BIO_METHOD, +// init: c_int, +// shutdown: c_int, +// flags: c_int, +// retry_reason: c_int, +// num: c_int, +// references: CRYPTO_refcount_t, +// ptr: ?*anyopaque, +// next_bio: [*c]BIO, +// num_read: usize, +// num_write: usize, +// }; pub const BIO = struct_bio_st; pub const bio_info_cb = ?*const fn ([*c]BIO, c_int, [*c]const u8, c_int, c_long, c_long) callconv(.C) c_long; pub const struct_bio_method_st = extern struct { @@ -344,21 +291,17 @@ pub const struct_buf_mem_st = extern struct { max: usize, }; pub const BUF_MEM = struct_buf_mem_st; -pub const struct_cbb_buffer_st = extern struct { - buf: [*c]u8, - len: usize, - cap: usize, - can_resize: u8, - @"error": u8, +pub const CBB = struct_cbb_st; // src/deps/boringssl/include/openssl/bytestring.h:403:12: warning: struct demoted to opaque type - has bitfield +pub const struct_cbb_buffer_st = opaque {}; // src/deps/boringssl/include/openssl/bytestring.h:418:12: warning: struct demoted to opaque type - has bitfield +pub const struct_cbb_child_st = opaque {}; +const union_unnamed_3 = extern union { + base: struct_cbb_buffer_st, + child: struct_cbb_child_st, }; -pub const CBB = struct_cbb_st; pub const struct_cbb_st = extern struct { - base: [*c]struct_cbb_buffer_st, child: [*c]CBB, - offset: usize, - pending_len_len: u8, - pending_is_asn1: u8, is_child: u8, + u: union_unnamed_3, }; pub const struct_cbs_st = extern struct { data: [*c]const u8, @@ -375,6 +318,8 @@ pub const struct_crypto_buffer_pool_st = opaque {}; pub const CRYPTO_BUFFER_POOL = struct_crypto_buffer_pool_st; pub const struct_crypto_buffer_st = opaque {}; pub const CRYPTO_BUFFER = struct_crypto_buffer_st; +pub const struct_ctr_drbg_state_st = opaque {}; +pub const CTR_DRBG_STATE = struct_ctr_drbg_state_st; pub const struct_ec_group_st = opaque {}; pub const EC_GROUP = struct_ec_group_st; pub const struct_ec_point_st = opaque {}; @@ -410,6 +355,33 @@ pub const struct_env_md_ctx_st = extern struct { pub const EVP_MD_CTX = struct_env_md_ctx_st; pub const struct_evp_aead_st = opaque {}; pub const EVP_AEAD = struct_evp_aead_st; +pub const union_evp_aead_ctx_st_state = extern union { + @"opaque": [580]u8, + alignment: u64, +}; +pub const struct_evp_aead_ctx_st = extern struct { + aead: ?*const EVP_AEAD, + state: union_evp_aead_ctx_st_state, + tag_len: u8, +}; +pub const EVP_AEAD_CTX = struct_evp_aead_ctx_st; +pub const struct_evp_cipher_ctx_st = extern struct { + cipher: ?*const EVP_CIPHER, + app_data: ?*anyopaque, + cipher_data: ?*anyopaque, + key_len: c_uint, + encrypt: c_int, + flags: u32, + oiv: [16]u8, + iv: [16]u8, + buf: [32]u8, + buf_len: c_int, + num: c_uint, + final_used: c_int, + final: [32]u8, + poisoned: c_int, +}; +pub const EVP_CIPHER_CTX = struct_evp_cipher_ctx_st; pub const struct_evp_encode_ctx_st = extern struct { data_used: c_uint, data: [48]u8, @@ -476,19 +448,19 @@ pub const struct_sha512_state_st = extern struct { md_len: c_uint, }; pub const SHA512_CTX = struct_sha512_state_st; -const struct_unnamed_4 = extern struct { +const struct_unnamed_5 = extern struct { h0: u32, h1: u32, h2: u32, h3: u32, h4: u32, }; -const union_unnamed_3 = extern union { +const union_unnamed_4 = extern union { h: [5]u32, - unnamed_0: struct_unnamed_4, + unnamed_0: struct_unnamed_5, }; pub const struct_sha_state_st = extern struct { - unnamed_0: union_unnamed_3, + unnamed_0: union_unnamed_4, Nl: u32, Nh: u32, data: [64]u8, @@ -504,7 +476,10 @@ pub const struct_srtp_protection_profile_st = extern struct { pub const SRTP_PROTECTION_PROFILE = struct_srtp_protection_profile_st; pub const struct_ssl_cipher_st = opaque {}; pub const SSL_CIPHER = struct_ssl_cipher_st; - +// pub const struct_ssl_ctx_st = opaque {}; +// pub const SSL_CTX = struct_ssl_ctx_st; +// pub const struct_ssl_st = opaque {}; +// pub const SSL = struct_ssl_st; pub const struct_ssl_early_callback_ctx = extern struct { ssl: ?*SSL, client_hello: [*c]const u8, @@ -576,27 +551,13 @@ pub const struct_v3_ext_ctx = opaque {}; pub const X509V3_CTX = struct_v3_ext_ctx; pub const struct_x509_attributes_st = opaque {}; pub const X509_ATTRIBUTE = struct_x509_attributes_st; -pub const struct_x509_cert_aux_st = opaque {}; -pub const X509_CERT_AUX = struct_x509_cert_aux_st; -pub const struct_x509_crl_method_st = opaque {}; -pub const X509_CRL_METHOD = struct_x509_crl_method_st; pub const struct_x509_lookup_st = opaque {}; pub const X509_LOOKUP = struct_x509_lookup_st; pub const struct_x509_lookup_method_st = opaque {}; pub const X509_LOOKUP_METHOD = struct_x509_lookup_method_st; pub const struct_x509_object_st = opaque {}; pub const X509_OBJECT = struct_x509_object_st; -pub const struct_stack_st_X509_EXTENSION = opaque {}; -pub const struct_stack_st_v3_ext_method = opaque {}; -pub const struct_stack_st_GENERAL_NAME = opaque {}; -pub const struct_x509_revoked_st = extern struct { - serialNumber: [*c]ASN1_INTEGER, - revocationDate: [*c]ASN1_TIME, - extensions: ?*struct_stack_st_X509_EXTENSION, - issuer: ?*struct_stack_st_GENERAL_NAME, - reason: c_int, - sequence: c_int, -}; +pub const struct_x509_revoked_st = opaque {}; pub const X509_REVOKED = struct_x509_revoked_st; pub const struct_x509_store_ctx_st = opaque {}; pub const X509_STORE_CTX = struct_x509_store_ctx_st; @@ -612,37 +573,10 @@ pub const struct_x509_trust_st = extern struct { }; pub const X509_TRUST = struct_x509_trust_st; pub const OPENSSL_BLOCK = ?*anyopaque; -pub const fpos_t = isize; pub const struct___sbuf = extern struct { _base: [*c]u8, _size: c_int, }; -pub const struct___sFILEX = opaque {}; -pub const struct___sFILE = extern struct { - _p: [*c]u8, - _r: c_int, - _w: c_int, - _flags: c_short, - _file: c_short, - _bf: struct___sbuf, - _lbfsize: c_int, - _cookie: ?*anyopaque, - _close: ?*const fn (?*anyopaque) callconv(.C) c_int, - _read: ?*const fn (?*anyopaque, [*c]u8, c_int) callconv(.C) c_int, - _seek: ?*const fn (?*anyopaque, fpos_t, c_int) callconv(.C) fpos_t, - _write: ?*const fn (?*anyopaque, [*c]const u8, c_int) callconv(.C) c_int, - _ub: struct___sbuf, - _extra: ?*struct___sFILEX, - _ur: c_int, - _ubuf: [3]u8, - _nbuf: [1]u8, - _lb: struct___sbuf, - _blksize: c_int, - _offset: fpos_t, -}; -pub const FILE = struct___sFILE; -pub extern const sys_nerr: c_int; -pub extern const sys_errlist: [*c]const [*c]const u8; pub extern fn BUF_MEM_new() [*c]BUF_MEM; pub extern fn BUF_MEM_free(buf: [*c]BUF_MEM) void; pub extern fn BUF_MEM_reserve(buf: [*c]BUF_MEM, cap: usize) c_int; @@ -652,7 +586,7 @@ pub extern fn BUF_MEM_append(buf: [*c]BUF_MEM, in: ?*const anyopaque, len: usize pub extern fn BUF_strdup(str: [*c]const u8) [*c]u8; pub extern fn BUF_strnlen(str: [*c]const u8, max_len: usize) usize; pub extern fn BUF_strndup(str: [*c]const u8, size: usize) [*c]u8; -pub extern fn BUF_memdup(data: ?[*]const u8, size: usize) ?*anyopaque; +pub extern fn BUF_memdup(data: ?*const anyopaque, size: usize) ?*anyopaque; pub extern fn BUF_strlcpy(dst: [*c]u8, src: [*c]const u8, dst_size: usize) usize; pub extern fn BUF_strlcat(dst: [*c]u8, src: [*c]const u8, dst_size: usize) usize; pub extern fn ERR_load_BIO_strings() void; @@ -661,24 +595,18 @@ pub extern fn ERR_load_crypto_strings() void; pub extern fn ERR_load_RAND_strings() void; pub extern fn ERR_free_strings() void; pub extern fn ERR_get_error() u32; -pub extern fn ERR_get_error_line(file: [*c][*c]const u8, line: [*c]c_int) u32; -pub extern fn ERR_get_error_line_data(file: [*c][*c]const u8, line: [*c]c_int, data: [*c][*c]const u8, flags: [*c]c_int) u32; +// pub extern fn ERR_get_error_line(file: [*c][*c]const u8, line: [*c]c_int) u32; +// pub extern fn ERR_get_error_line_data(file: [*c][*c]const u8, line: [*c]c_int, data: [*c][*c]const u8, flags: [*c]c_int) u32; pub extern fn ERR_peek_error() u32; -pub extern fn ERR_peek_error_line(file: [*c][*c]const u8, line: [*c]c_int) u32; -pub extern fn ERR_peek_error_line_data(file: [*c][*c]const u8, line: [*c]c_int, data: [*c][*c]const u8, flags: [*c]c_int) u32; +// pub extern fn ERR_peek_error_line(file: [*c][*c]const u8, line: [*c]c_int) u32; +// pub extern fn ERR_peek_error_line_data(file: [*c][*c]const u8, line: [*c]c_int, data: [*c][*c]const u8, flags: [*c]c_int) u32; pub extern fn ERR_peek_last_error() u32; -pub extern fn ERR_peek_last_error_line(file: [*c][*c]const u8, line: [*c]c_int) u32; -pub extern fn ERR_peek_last_error_line_data(file: [*c][*c]const u8, line: [*c]c_int, data: [*c][*c]const u8, flags: [*c]c_int) u32; +// pub extern fn ERR_peek_last_error_line(file: [*c][*c]const u8, line: [*c]c_int) u32; +// pub extern fn ERR_peek_last_error_line_data(file: [*c][*c]const u8, line: [*c]c_int, data: [*c][*c]const u8, flags: [*c]c_int) u32; pub extern fn ERR_error_string_n(packed_error: u32, buf: [*c]u8, len: usize) [*c]u8; pub extern fn ERR_lib_error_string(packed_error: u32) [*c]const u8; pub extern fn ERR_reason_error_string(packed_error: u32) [*c]const u8; pub const ERR_print_errors_callback_t = ?*const fn ([*c]const u8, usize, ?*anyopaque) callconv(.C) c_int; -pub extern fn ERR_print_errors_cb(callback: ERR_print_errors_callback_t, ctx: ?*anyopaque) void; -pub extern fn ERR_print_errors_fp(file: [*c]FILE) void; -pub extern fn ERR_clear_error() void; -pub extern fn ERR_set_mark() c_int; -pub extern fn ERR_pop_to_mark() c_int; -pub extern fn ERR_get_next_error_library() c_int; pub const ERR_LIB_NONE: c_int = 1; pub const ERR_LIB_SYS: c_int = 2; pub const ERR_LIB_BN: c_int = 3; @@ -713,278 +641,284 @@ pub const ERR_LIB_HKDF: c_int = 31; pub const ERR_LIB_TRUST_TOKEN: c_int = 32; pub const ERR_LIB_USER: c_int = 33; pub const ERR_NUM_LIBS: c_int = 34; -const enum_unnamed_5 = c_uint; +const enum_unnamed_6 = c_uint; pub extern fn ERR_remove_state(pid: c_ulong) void; pub extern fn ERR_remove_thread_state(tid: [*c]const CRYPTO_THREADID) void; pub extern fn ERR_func_error_string(packed_error: u32) [*c]const u8; pub extern fn ERR_error_string(packed_error: u32, buf: [*c]u8) [*c]u8; pub extern fn ERR_clear_system_error() void; -pub extern fn ERR_put_error(library: c_int, unused: c_int, reason: c_int, file: [*c]const u8, line: c_uint) void; +// pub extern fn ERR_put_error(library: c_int, unused: c_int, reason: c_int, file: [*c]const u8, line: c_uint) void; pub extern fn ERR_add_error_data(count: c_uint, ...) void; pub extern fn ERR_add_error_dataf(format: [*c]const u8, ...) void; -pub const stack_free_func = ?*const fn (?*anyopaque) callconv(.C) void; -pub const stack_copy_func = ?*const fn (?*anyopaque) callconv(.C) ?*anyopaque; -pub const stack_cmp_func = ?*const fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int; +pub extern fn ERR_set_error_data(data: [*c]u8, flags: c_int) void; +pub const OPENSSL_sk_free_func = ?*const fn (?*anyopaque) callconv(.C) void; +pub const OPENSSL_sk_copy_func = ?*const fn (?*anyopaque) callconv(.C) ?*anyopaque; +pub const OPENSSL_sk_cmp_func = ?*const fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int; +pub const OPENSSL_sk_call_free_func = ?*const fn (OPENSSL_sk_free_func, ?*anyopaque) callconv(.C) void; +pub const OPENSSL_sk_call_copy_func = ?*const fn (OPENSSL_sk_copy_func, ?*anyopaque) callconv(.C) ?*anyopaque; +pub const OPENSSL_sk_call_cmp_func = ?*const fn (OPENSSL_sk_cmp_func, [*c]const ?*const anyopaque, [*c]const ?*const anyopaque) callconv(.C) c_int; pub const struct_stack_st = extern struct { num: usize, data: [*c]?*anyopaque, sorted: c_int, num_alloc: usize, - comp: stack_cmp_func, + comp: OPENSSL_sk_cmp_func, }; pub const _STACK = struct_stack_st; -pub extern fn sk_new(comp: stack_cmp_func) [*c]_STACK; +pub extern fn sk_new(comp: OPENSSL_sk_cmp_func) [*c]_STACK; pub extern fn sk_new_null() [*c]_STACK; pub extern fn sk_num(sk: [*c]const _STACK) usize; pub extern fn sk_zero(sk: [*c]_STACK) void; pub extern fn sk_value(sk: [*c]const _STACK, i: usize) ?*anyopaque; pub extern fn sk_set(sk: [*c]_STACK, i: usize, p: ?*anyopaque) ?*anyopaque; pub extern fn sk_free(sk: [*c]_STACK) void; -pub extern fn sk_pop_free_ex(sk: [*c]_STACK, call_free_func: ?*const fn (stack_free_func, ?*anyopaque) callconv(.C) void, free_func: stack_free_func) void; +pub extern fn sk_pop_free_ex(sk: [*c]_STACK, call_free_func: OPENSSL_sk_call_free_func, free_func: OPENSSL_sk_free_func) void; pub extern fn sk_insert(sk: [*c]_STACK, p: ?*anyopaque, where: usize) usize; pub extern fn sk_delete(sk: [*c]_STACK, where: usize) ?*anyopaque; pub extern fn sk_delete_ptr(sk: [*c]_STACK, p: ?*const anyopaque) ?*anyopaque; -pub extern fn sk_find(sk: [*c]const _STACK, out_index: [*c]usize, p: ?*const anyopaque, call_cmp_func: ?*const fn (stack_cmp_func, [*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int) c_int; +pub extern fn sk_find(sk: [*c]const _STACK, out_index: [*c]usize, p: ?*const anyopaque, call_cmp_func: OPENSSL_sk_call_cmp_func) c_int; pub extern fn sk_shift(sk: [*c]_STACK) ?*anyopaque; pub extern fn sk_push(sk: [*c]_STACK, p: ?*anyopaque) usize; pub extern fn sk_pop(sk: [*c]_STACK) ?*anyopaque; pub extern fn sk_dup(sk: [*c]const _STACK) [*c]_STACK; -pub extern fn sk_sort(sk: [*c]_STACK) void; +pub extern fn sk_sort(sk: [*c]_STACK, call_cmp_func: OPENSSL_sk_call_cmp_func) void; pub extern fn sk_is_sorted(sk: [*c]const _STACK) c_int; -pub extern fn sk_set_cmp_func(sk: [*c]_STACK, comp: stack_cmp_func) stack_cmp_func; -pub extern fn sk_deep_copy(sk: [*c]const _STACK, call_copy_func: ?*const fn (stack_copy_func, ?*anyopaque) callconv(.C) ?*anyopaque, copy_func: stack_copy_func, call_free_func: ?*const fn (stack_free_func, ?*anyopaque) callconv(.C) void, free_func: stack_free_func) [*c]_STACK; -pub extern fn sk_pop_free(sk: [*c]_STACK, free_func: stack_free_func) void; +pub extern fn sk_set_cmp_func(sk: [*c]_STACK, comp: OPENSSL_sk_cmp_func) OPENSSL_sk_cmp_func; +pub extern fn sk_deep_copy(sk: [*c]const _STACK, call_copy_func: OPENSSL_sk_call_copy_func, copy_func: OPENSSL_sk_copy_func, call_free_func: OPENSSL_sk_call_free_func, free_func: OPENSSL_sk_free_func) [*c]_STACK; +pub extern fn sk_pop_free(sk: [*c]_STACK, free_func: OPENSSL_sk_free_func) void; pub const OPENSSL_STRING = [*c]u8; -pub const stack_void_free_func = ?*const fn (?*anyopaque) callconv(.C) void; -pub const stack_void_copy_func = ?*const fn (?*anyopaque) callconv(.C) ?*anyopaque; -pub const stack_void_cmp_func = ?*const fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int; -pub fn sk_void_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_void_free_func = ?*const fn (?*anyopaque) callconv(.C) void; +pub const sk_void_copy_func = ?*const fn (?*anyopaque) callconv(.C) ?*anyopaque; +pub const sk_void_cmp_func = ?*const fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int; +pub fn sk_void_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_void_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)).?(ptr); + @as(sk_void_free_func, @ptrCast(@alignCast(free_func))).?(ptr); } -pub fn sk_void_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_void_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(stack_void_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)).?(ptr); + return @as(sk_void_copy_func, @ptrCast(@alignCast(copy_func))).?(ptr); } -pub fn sk_void_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_void_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; var a_ptr: ?*const anyopaque = a.*; var b_ptr: ?*const anyopaque = b.*; - return @ptrCast(stack_void_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + return @as(sk_void_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_void_new(arg_comp: stack_void_cmp_func) callconv(.C) ?*struct_stack_st_void { +pub fn sk_void_new(arg_comp: sk_void_cmp_func) callconv(.C) ?*struct_stack_st_void { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_void, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_void, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_void_new_null() callconv(.C) ?*struct_stack_st_void { - return @ptrCast(?*struct_stack_st_void, sk_new_null()); + return @as(?*struct_stack_st_void, @ptrCast(sk_new_null())); } pub fn sk_void_num(arg_sk: ?*const struct_stack_st_void) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_void_zero(arg_sk: ?*struct_stack_st_void) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_void_value(arg_sk: ?*const struct_stack_st_void, arg_i: usize) callconv(.C) ?*anyopaque { var sk = arg_sk; var i = arg_i; - return sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i); + return @alignCast(@ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } pub fn sk_void_set(arg_sk: ?*struct_stack_st_void, arg_i: usize, arg_p: ?*anyopaque) callconv(.C) ?*anyopaque { var sk = arg_sk; var i = arg_i; var p = arg_p; - return sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, p); + return sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, p); } pub fn sk_void_free(arg_sk: ?*struct_stack_st_void) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_void_pop_free(arg_sk: ?*struct_stack_st_void, arg_free_func: stack_void_free_func) callconv(.C) void { +pub fn sk_void_pop_free(arg_sk: ?*struct_stack_st_void, arg_free_func: sk_void_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_void_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_void_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_void_insert(arg_sk: ?*struct_stack_st_void, arg_p: ?*anyopaque, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), p, where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), p, where); } pub fn sk_void_delete(arg_sk: ?*struct_stack_st_void, arg_where: usize) callconv(.C) ?*anyopaque { var sk = arg_sk; var where = arg_where; - return sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where); + return sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where); } pub fn sk_void_delete_ptr(arg_sk: ?*struct_stack_st_void, arg_p: ?*const anyopaque) callconv(.C) ?*anyopaque { var sk = arg_sk; var p = arg_p; - return sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), p); + return sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), p); } pub fn sk_void_find(arg_sk: ?*const struct_stack_st_void, arg_out_index: [*c]usize, arg_p: ?*const anyopaque) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, p, sk_void_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, p, &sk_void_call_cmp_func); } pub fn sk_void_shift(arg_sk: ?*struct_stack_st_void) callconv(.C) ?*anyopaque { var sk = arg_sk; - return sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_void_push(arg_sk: ?*struct_stack_st_void, arg_p: ?*anyopaque) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), p); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), p); } pub fn sk_void_pop(arg_sk: ?*struct_stack_st_void) callconv(.C) ?*anyopaque { var sk = arg_sk; - return sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_void_dup(arg_sk: ?*const struct_stack_st_void) callconv(.C) ?*struct_stack_st_void { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_void, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_void, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_void_sort(arg_sk: ?*struct_stack_st_void) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_void_call_cmp_func); } pub fn sk_void_is_sorted(arg_sk: ?*const struct_stack_st_void) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_void_set_cmp_func(arg_sk: ?*struct_stack_st_void, arg_comp: stack_void_cmp_func) callconv(.C) stack_void_cmp_func { +pub fn sk_void_set_cmp_func(arg_sk: ?*struct_stack_st_void, arg_comp: sk_void_cmp_func) callconv(.C) sk_void_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_void_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_void_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_void_deep_copy(arg_sk: ?*const struct_stack_st_void, arg_copy_func: ?*const fn (?*anyopaque) callconv(.C) ?*anyopaque, arg_free_func: ?*const fn (?*anyopaque) callconv(.C) void) callconv(.C) ?*struct_stack_st_void { +pub fn sk_void_deep_copy(arg_sk: ?*const struct_stack_st_void, arg_copy_func: sk_void_copy_func, arg_free_func: sk_void_free_func) callconv(.C) ?*struct_stack_st_void { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_void, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_void_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_void_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); -} // /Users/jarred/Code/bun/src/deps/boringssl/include/openssl/type_check.h:75:42: warning: ignoring StaticAssert declaration + return @as(?*struct_stack_st_void, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_void_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_void_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); +} pub const struct_stack_st_OPENSSL_STRING = opaque {}; -pub const stack_OPENSSL_STRING_free_func = ?*const fn (OPENSSL_STRING) callconv(.C) void; -pub const stack_OPENSSL_STRING_copy_func = ?*const fn (OPENSSL_STRING) callconv(.C) OPENSSL_STRING; -pub const stack_OPENSSL_STRING_cmp_func = ?*const fn ([*c]const OPENSSL_STRING, [*c]const OPENSSL_STRING) callconv(.C) c_int; -pub fn sk_OPENSSL_STRING_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_OPENSSL_STRING_free_func = ?*const fn ([*c]u8) callconv(.C) void; +pub const sk_OPENSSL_STRING_copy_func = ?*const fn ([*c]u8) callconv(.C) [*c]u8; +pub const sk_OPENSSL_STRING_cmp_func = ?*const fn ([*c][*c]const u8, [*c][*c]const u8) callconv(.C) c_int; +pub fn sk_OPENSSL_STRING_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_OPENSSL_STRING_free_func, @alignCast(@import("std").meta.alignment(fn (OPENSSL_STRING) callconv(.C) void), free_func)).?(@ptrCast(OPENSSL_STRING, @alignCast(@import("std").meta.alignment(u8), ptr))); + @as(sk_OPENSSL_STRING_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]u8, @ptrCast(@alignCast(ptr)))); } -pub fn sk_OPENSSL_STRING_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_OPENSSL_STRING_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_OPENSSL_STRING_copy_func, @alignCast(@import("std").meta.alignment(fn (OPENSSL_STRING) callconv(.C) OPENSSL_STRING), copy_func)).?(@ptrCast(OPENSSL_STRING, @alignCast(@import("std").meta.alignment(u8), ptr)))); + return @as(?*anyopaque, @ptrCast(@as(sk_OPENSSL_STRING_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]u8, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_OPENSSL_STRING_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_OPENSSL_STRING_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - const a_ptr: OPENSSL_STRING = @ptrFromInt(OPENSSL_STRING, @intFromPtr(a.*)); - const b_ptr: OPENSSL_STRING = @ptrFromInt(OPENSSL_STRING, @intFromPtr(b.*)); - return @ptrCast(stack_OPENSSL_STRING_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]const OPENSSL_STRING, [*c]const OPENSSL_STRING) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: [*c]const u8 = @as([*c]const u8, @ptrCast(@alignCast(a.*))); + var b_ptr: [*c]const u8 = @as([*c]const u8, @ptrCast(@alignCast(b.*))); + return @as(sk_OPENSSL_STRING_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_OPENSSL_STRING_new(arg_comp: stack_OPENSSL_STRING_cmp_func) callconv(.C) ?*struct_stack_st_OPENSSL_STRING { +pub fn sk_OPENSSL_STRING_new(arg_comp: sk_OPENSSL_STRING_cmp_func) callconv(.C) ?*struct_stack_st_OPENSSL_STRING { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_OPENSSL_STRING, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_OPENSSL_STRING, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_OPENSSL_STRING_new_null() callconv(.C) ?*struct_stack_st_OPENSSL_STRING { - return @ptrCast(?*struct_stack_st_OPENSSL_STRING, sk_new_null()); + return @as(?*struct_stack_st_OPENSSL_STRING, @ptrCast(sk_new_null())); } pub fn sk_OPENSSL_STRING_num(arg_sk: ?*const struct_stack_st_OPENSSL_STRING) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_OPENSSL_STRING_zero(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_OPENSSL_STRING_value(arg_sk: ?*const struct_stack_st_OPENSSL_STRING, arg_i: usize) callconv(.C) OPENSSL_STRING { +pub fn sk_OPENSSL_STRING_value(arg_sk: ?*const struct_stack_st_OPENSSL_STRING, arg_i: usize) callconv(.C) [*c]u8 { var sk = arg_sk; var i = arg_i; - return @ptrCast(OPENSSL_STRING, @alignCast(@import("std").meta.alignment(u8), sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i))); + return @as([*c]u8, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } -pub fn sk_OPENSSL_STRING_set(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_i: usize, arg_p: OPENSSL_STRING) callconv(.C) OPENSSL_STRING { +pub fn sk_OPENSSL_STRING_set(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_i: usize, arg_p: [*c]u8) callconv(.C) [*c]u8 { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast(OPENSSL_STRING, @alignCast(@import("std").meta.alignment(u8), sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p)))); + return @as([*c]u8, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } pub fn sk_OPENSSL_STRING_free(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_OPENSSL_STRING_pop_free(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_free_func: stack_OPENSSL_STRING_free_func) callconv(.C) void { +pub fn sk_OPENSSL_STRING_pop_free(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_free_func: sk_OPENSSL_STRING_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_OPENSSL_STRING_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_OPENSSL_STRING_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_OPENSSL_STRING_insert(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_p: OPENSSL_STRING, arg_where: usize) callconv(.C) usize { +pub fn sk_OPENSSL_STRING_insert(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_p: [*c]u8, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_OPENSSL_STRING_delete(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_where: usize) callconv(.C) OPENSSL_STRING { +pub fn sk_OPENSSL_STRING_delete(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_where: usize) callconv(.C) [*c]u8 { var sk = arg_sk; var where = arg_where; - return @ptrCast(OPENSSL_STRING, @alignCast(@import("std").meta.alignment(u8), sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where))); + return @as([*c]u8, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } -pub fn sk_OPENSSL_STRING_delete_ptr(arg_sk: ?*struct_stack_st_OPENSSL_STRING, p: OPENSSL_STRING) callconv(.C) OPENSSL_STRING { +pub fn sk_OPENSSL_STRING_delete_ptr(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_p: [*c]const u8) callconv(.C) [*c]u8 { var sk = arg_sk; - return @ptrCast(OPENSSL_STRING, @alignCast(@import("std").meta.alignment(u8), sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p)))); + var p = arg_p; + return @as([*c]u8, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } -pub fn sk_OPENSSL_STRING_find(arg_sk: ?*const struct_stack_st_OPENSSL_STRING, arg_out_index: [*c]usize, p: OPENSSL_STRING) callconv(.C) c_int { +pub fn sk_OPENSSL_STRING_find(arg_sk: ?*const struct_stack_st_OPENSSL_STRING, arg_out_index: [*c]usize, arg_p: [*c]const u8) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_OPENSSL_STRING_call_cmp_func); + var p = arg_p; + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_OPENSSL_STRING_call_cmp_func); } -pub fn sk_OPENSSL_STRING_shift(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.C) OPENSSL_STRING { +pub fn sk_OPENSSL_STRING_shift(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.C) [*c]u8 { var sk = arg_sk; - return @ptrCast(OPENSSL_STRING, @alignCast(@import("std").meta.alignment(u8), sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]u8, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_OPENSSL_STRING_push(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_p: OPENSSL_STRING) callconv(.C) usize { +pub fn sk_OPENSSL_STRING_push(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_p: [*c]u8) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_OPENSSL_STRING_pop(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.C) OPENSSL_STRING { +pub fn sk_OPENSSL_STRING_pop(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.C) [*c]u8 { var sk = arg_sk; - return @ptrCast(OPENSSL_STRING, @alignCast(@import("std").meta.alignment(u8), sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]u8, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_OPENSSL_STRING_dup(arg_sk: ?*const struct_stack_st_OPENSSL_STRING) callconv(.C) ?*struct_stack_st_OPENSSL_STRING { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_OPENSSL_STRING, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_OPENSSL_STRING, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_OPENSSL_STRING_sort(arg_sk: ?*struct_stack_st_OPENSSL_STRING) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_OPENSSL_STRING_call_cmp_func); } pub fn sk_OPENSSL_STRING_is_sorted(arg_sk: ?*const struct_stack_st_OPENSSL_STRING) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_OPENSSL_STRING_set_cmp_func(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_comp: stack_OPENSSL_STRING_cmp_func) callconv(.C) stack_OPENSSL_STRING_cmp_func { +pub fn sk_OPENSSL_STRING_set_cmp_func(arg_sk: ?*struct_stack_st_OPENSSL_STRING, arg_comp: sk_OPENSSL_STRING_cmp_func) callconv(.C) sk_OPENSSL_STRING_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_OPENSSL_STRING_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]const OPENSSL_STRING, [*c]const OPENSSL_STRING) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_OPENSSL_STRING_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_OPENSSL_STRING_deep_copy(arg_sk: ?*const struct_stack_st_OPENSSL_STRING, arg_copy_func: ?*const fn (OPENSSL_STRING) callconv(.C) OPENSSL_STRING, arg_free_func: ?*const fn (OPENSSL_STRING) callconv(.C) void) callconv(.C) ?*struct_stack_st_OPENSSL_STRING { +pub fn sk_OPENSSL_STRING_deep_copy(arg_sk: ?*const struct_stack_st_OPENSSL_STRING, arg_copy_func: sk_OPENSSL_STRING_copy_func, arg_free_func: sk_OPENSSL_STRING_free_func) callconv(.C) ?*struct_stack_st_OPENSSL_STRING { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_OPENSSL_STRING, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_OPENSSL_STRING_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_OPENSSL_STRING_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_OPENSSL_STRING, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_OPENSSL_STRING_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_OPENSSL_STRING_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } -pub const CRYPTO_EX_free = *const fn (?*anyopaque, ?*anyopaque, [*c]CRYPTO_EX_DATA, c_int, c_long, ?*anyopaque) callconv(.C) void; +pub const CRYPTO_EX_free = fn (?*anyopaque, ?*anyopaque, [*c]CRYPTO_EX_DATA, c_int, c_long, ?*anyopaque) callconv(.C) void; pub extern fn CRYPTO_cleanup_all_ex_data() void; -pub const CRYPTO_EX_dup = *const fn ([*c]CRYPTO_EX_DATA, [*c]const CRYPTO_EX_DATA, [*c]?*anyopaque, c_int, c_long, ?*anyopaque) callconv(.C) c_int; +pub const CRYPTO_EX_dup = fn ([*c]CRYPTO_EX_DATA, [*c]const CRYPTO_EX_DATA, [*c]?*anyopaque, c_int, c_long, ?*anyopaque) callconv(.C) c_int; pub const CRYPTO_EX_unused = c_int; pub extern fn CRYPTO_num_locks() c_int; pub extern fn CRYPTO_set_locking_callback(func: ?*const fn (c_int, c_int, [*c]const u8, c_int) callconv(.C) void) void; @@ -1008,159 +942,159 @@ pub extern fn CRYPTO_get_dynlock_create_callback() ?*const fn ([*c]const u8, c_i pub extern fn CRYPTO_get_dynlock_lock_callback() ?*const fn (c_int, ?*struct_CRYPTO_dynlock_value, [*c]const u8, c_int) callconv(.C) void; pub extern fn CRYPTO_get_dynlock_destroy_callback() ?*const fn (?*struct_CRYPTO_dynlock_value, [*c]const u8, c_int) callconv(.C) void; pub const struct_stack_st_BIO = opaque {}; -pub const stack_BIO_free_func = ?*const fn ([*c]BIO) callconv(.C) void; -pub const stack_BIO_copy_func = ?*const fn ([*c]BIO) callconv(.C) [*c]BIO; -pub const stack_BIO_cmp_func = ?*const fn ([*c][*c]const BIO, [*c][*c]const BIO) callconv(.C) c_int; -pub fn sk_BIO_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_BIO_free_func = ?*const fn ([*c]BIO) callconv(.C) void; +pub const sk_BIO_copy_func = ?*const fn ([*c]BIO) callconv(.C) [*c]BIO; +pub const sk_BIO_cmp_func = ?*const fn ([*c][*c]const BIO, [*c][*c]const BIO) callconv(.C) c_int; +pub fn sk_BIO_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_BIO_free_func, @alignCast(@import("std").meta.alignment(fn ([*c]BIO) callconv(.C) void), free_func)).?(@ptrCast([*c]BIO, @alignCast(@import("std").meta.alignment(BIO), ptr))); + @as(sk_BIO_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]BIO, @ptrCast(@alignCast(ptr)))); } -pub fn sk_BIO_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_BIO_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_BIO_copy_func, @alignCast(@import("std").meta.alignment(fn ([*c]BIO) callconv(.C) [*c]BIO), copy_func)).?(@ptrCast([*c]BIO, @alignCast(@import("std").meta.alignment(BIO), ptr)))); + return @as(?*anyopaque, @ptrCast(@as(sk_BIO_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]BIO, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_BIO_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_BIO_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: [*c]const BIO = @ptrCast([*c]const BIO, @alignCast(@import("std").meta.alignment(BIO), a.*)); - var b_ptr: [*c]const BIO = @ptrCast([*c]const BIO, @alignCast(@import("std").meta.alignment(BIO), b.*)); - return @ptrCast(stack_BIO_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const BIO, [*c][*c]const BIO) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: [*c]const BIO = @as([*c]const BIO, @ptrCast(@alignCast(a.*))); + var b_ptr: [*c]const BIO = @as([*c]const BIO, @ptrCast(@alignCast(b.*))); + return @as(sk_BIO_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_BIO_new(arg_comp: stack_BIO_cmp_func) callconv(.C) ?*struct_stack_st_BIO { +pub fn sk_BIO_new(arg_comp: sk_BIO_cmp_func) callconv(.C) ?*struct_stack_st_BIO { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_BIO, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_BIO, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_BIO_new_null() callconv(.C) ?*struct_stack_st_BIO { - return @ptrCast(?*struct_stack_st_BIO, sk_new_null()); + return @as(?*struct_stack_st_BIO, @ptrCast(sk_new_null())); } pub fn sk_BIO_num(arg_sk: ?*const struct_stack_st_BIO) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_BIO_zero(arg_sk: ?*struct_stack_st_BIO) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_BIO_value(arg_sk: ?*const struct_stack_st_BIO, arg_i: usize) callconv(.C) [*c]BIO { var sk = arg_sk; var i = arg_i; - return @ptrCast([*c]BIO, @alignCast(@import("std").meta.alignment(BIO), sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i))); + return @as([*c]BIO, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } pub fn sk_BIO_set(arg_sk: ?*struct_stack_st_BIO, arg_i: usize, arg_p: [*c]BIO) callconv(.C) [*c]BIO { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast([*c]BIO, @alignCast(@import("std").meta.alignment(BIO), sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p)))); + return @as([*c]BIO, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } pub fn sk_BIO_free(arg_sk: ?*struct_stack_st_BIO) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_BIO_pop_free(arg_sk: ?*struct_stack_st_BIO, arg_free_func: stack_BIO_free_func) callconv(.C) void { +pub fn sk_BIO_pop_free(arg_sk: ?*struct_stack_st_BIO, arg_free_func: sk_BIO_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_BIO_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_BIO_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_BIO_insert(arg_sk: ?*struct_stack_st_BIO, arg_p: [*c]BIO, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_BIO_delete(arg_sk: ?*struct_stack_st_BIO, arg_where: usize) callconv(.C) [*c]BIO { var sk = arg_sk; var where = arg_where; - return @ptrCast([*c]BIO, @alignCast(@import("std").meta.alignment(BIO), sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where))); + return @as([*c]BIO, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } pub fn sk_BIO_delete_ptr(arg_sk: ?*struct_stack_st_BIO, arg_p: [*c]const BIO) callconv(.C) [*c]BIO { var sk = arg_sk; var p = arg_p; - return @ptrCast([*c]BIO, @alignCast(@import("std").meta.alignment(BIO), sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p)))); + return @as([*c]BIO, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } pub fn sk_BIO_find(arg_sk: ?*const struct_stack_st_BIO, arg_out_index: [*c]usize, arg_p: [*c]const BIO) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_BIO_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_BIO_call_cmp_func); } pub fn sk_BIO_shift(arg_sk: ?*struct_stack_st_BIO) callconv(.C) [*c]BIO { var sk = arg_sk; - return @ptrCast([*c]BIO, @alignCast(@import("std").meta.alignment(BIO), sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]BIO, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_BIO_push(arg_sk: ?*struct_stack_st_BIO, arg_p: [*c]BIO) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_BIO_pop(arg_sk: ?*struct_stack_st_BIO) callconv(.C) [*c]BIO { var sk = arg_sk; - return @ptrCast([*c]BIO, @alignCast(@import("std").meta.alignment(BIO), sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]BIO, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_BIO_dup(arg_sk: ?*const struct_stack_st_BIO) callconv(.C) ?*struct_stack_st_BIO { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_BIO, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_BIO, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_BIO_sort(arg_sk: ?*struct_stack_st_BIO) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_BIO_call_cmp_func); } pub fn sk_BIO_is_sorted(arg_sk: ?*const struct_stack_st_BIO) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_BIO_set_cmp_func(arg_sk: ?*struct_stack_st_BIO, arg_comp: stack_BIO_cmp_func) callconv(.C) stack_BIO_cmp_func { +pub fn sk_BIO_set_cmp_func(arg_sk: ?*struct_stack_st_BIO, arg_comp: sk_BIO_cmp_func) callconv(.C) sk_BIO_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_BIO_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const BIO, [*c][*c]const BIO) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_BIO_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_BIO_deep_copy(arg_sk: ?*const struct_stack_st_BIO, arg_copy_func: ?*const fn ([*c]BIO) callconv(.C) [*c]BIO, arg_free_func: ?*const fn ([*c]BIO) callconv(.C) void) callconv(.C) ?*struct_stack_st_BIO { +pub fn sk_BIO_deep_copy(arg_sk: ?*const struct_stack_st_BIO, arg_copy_func: sk_BIO_copy_func, arg_free_func: sk_BIO_free_func) callconv(.C) ?*struct_stack_st_BIO { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_BIO, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_BIO_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_BIO_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); -} -pub extern fn BIO_new(method: *const BIO_METHOD) ?*BIO; -pub extern fn BIO_free(bio: *BIO) c_int; -pub extern fn BIO_vfree(bio: *BIO) void; -pub extern fn BIO_up_ref(bio: *BIO) c_int; -pub extern fn BIO_read(bio: *BIO, data: ?*anyopaque, len: c_int) c_int; -pub extern fn BIO_gets(bio: *BIO, buf: [*c]u8, size: c_int) c_int; -pub extern fn BIO_write(bio: *BIO, data: ?[*]const u8, len: c_int) c_int; -pub extern fn BIO_write_all(bio: *BIO, data: ?[*]const u8, len: usize) c_int; -pub extern fn BIO_puts(bio: *BIO, buf: [*c]const u8) c_int; -pub extern fn BIO_flush(bio: *BIO) c_int; -pub extern fn BIO_ctrl(bio: *BIO, cmd: c_int, larg: c_long, parg: ?*anyopaque) c_long; -pub extern fn BIO_ptr_ctrl(bp: *BIO, cmd: c_int, larg: c_long) [*c]u8; -pub extern fn BIO_int_ctrl(bp: *BIO, cmd: c_int, larg: c_long, iarg: c_int) c_long; -pub extern fn BIO_reset(bio: *BIO) c_int; -pub extern fn BIO_eof(bio: *BIO) c_int; -pub extern fn BIO_set_flags(bio: *BIO, flags: c_int) void; -pub extern fn BIO_test_flags(bio: *const BIO, flags: c_int) c_int; -pub extern fn BIO_should_read(bio: *const BIO) c_int; -pub extern fn BIO_should_write(bio: *const BIO) c_int; -pub extern fn BIO_should_retry(bio: *const BIO) c_int; -pub extern fn BIO_should_io_special(bio: *const BIO) c_int; -pub extern fn BIO_get_retry_reason(bio: *const BIO) c_int; -pub extern fn BIO_set_retry_reason(bio: *BIO, reason: c_int) void; -pub extern fn BIO_clear_flags(bio: *BIO, flags: c_int) void; -pub extern fn BIO_set_retry_read(bio: *BIO) void; -pub extern fn BIO_set_retry_write(bio: *BIO) void; -pub extern fn BIO_get_retry_flags(bio: *BIO) c_int; -pub extern fn BIO_clear_retry_flags(bio: *BIO) void; -pub extern fn BIO_method_type(bio: *const BIO) c_int; -pub extern fn BIO_callback_ctrl(bio: *BIO, cmd: c_int, fp: bio_info_cb) c_long; -pub extern fn BIO_pending(bio: *const BIO) usize; -pub extern fn BIO_ctrl_pending(bio: *const BIO) usize; -pub extern fn BIO_wpending(bio: *const BIO) usize; -pub extern fn BIO_set_close(bio: *BIO, close_flag: c_int) c_int; -pub extern fn BIO_number_read(bio: *const BIO) usize; -pub extern fn BIO_number_written(bio: *const BIO) usize; -pub extern fn BIO_push(bio: *BIO, appended_bio: [*c]BIO) [*c]BIO; -pub extern fn BIO_pop(bio: *BIO) [*c]BIO; -pub extern fn BIO_next(bio: *BIO) [*c]BIO; + return @as(?*struct_stack_st_BIO, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_BIO_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_BIO_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); +} +pub extern fn BIO_new(method: [*c]const BIO_METHOD) ?*BIO; +pub extern fn BIO_free(bio: [*c]BIO) c_int; +pub extern fn BIO_vfree(bio: [*c]BIO) void; +pub extern fn BIO_up_ref(bio: [*c]BIO) c_int; +pub extern fn BIO_read(bio: [*c]BIO, data: ?*anyopaque, len: c_int) c_int; +pub extern fn BIO_gets(bio: [*c]BIO, buf: [*c]u8, size: c_int) c_int; +pub extern fn BIO_write(bio: [*c]BIO, data: ?*const anyopaque, len: c_int) c_int; +pub extern fn BIO_write_all(bio: [*c]BIO, data: ?*const anyopaque, len: usize) c_int; +pub extern fn BIO_puts(bio: [*c]BIO, buf: [*c]const u8) c_int; +pub extern fn BIO_flush(bio: [*c]BIO) c_int; +pub extern fn BIO_ctrl(bio: [*c]BIO, cmd: c_int, larg: c_long, parg: ?*anyopaque) c_long; +pub extern fn BIO_ptr_ctrl(bp: [*c]BIO, cmd: c_int, larg: c_long) [*c]u8; +pub extern fn BIO_int_ctrl(bp: [*c]BIO, cmd: c_int, larg: c_long, iarg: c_int) c_long; +pub extern fn BIO_reset(bio: [*c]BIO) c_int; +pub extern fn BIO_eof(bio: [*c]BIO) c_int; +pub extern fn BIO_set_flags(bio: [*c]BIO, flags: c_int) void; +pub extern fn BIO_test_flags(bio: [*c]const BIO, flags: c_int) c_int; +pub extern fn BIO_should_read(bio: [*c]const BIO) c_int; +pub extern fn BIO_should_write(bio: [*c]const BIO) c_int; +pub extern fn BIO_should_retry(bio: [*c]const BIO) c_int; +pub extern fn BIO_should_io_special(bio: [*c]const BIO) c_int; +pub extern fn BIO_get_retry_reason(bio: [*c]const BIO) c_int; +pub extern fn BIO_set_retry_reason(bio: [*c]BIO, reason: c_int) void; +pub extern fn BIO_clear_flags(bio: [*c]BIO, flags: c_int) void; +pub extern fn BIO_set_retry_read(bio: [*c]BIO) void; +pub extern fn BIO_set_retry_write(bio: [*c]BIO) void; +pub extern fn BIO_get_retry_flags(bio: [*c]BIO) c_int; +pub extern fn BIO_clear_retry_flags(bio: [*c]BIO) void; +pub extern fn BIO_method_type(bio: [*c]const BIO) c_int; +pub extern fn BIO_callback_ctrl(bio: [*c]BIO, cmd: c_int, fp: bio_info_cb) c_long; +pub extern fn BIO_pending(bio: [*c]const BIO) usize; +pub extern fn BIO_ctrl_pending(bio: [*c]const BIO) usize; +pub extern fn BIO_wpending(bio: [*c]const BIO) usize; +pub extern fn BIO_set_close(bio: [*c]BIO, close_flag: c_int) c_int; +pub extern fn BIO_number_read(bio: [*c]const BIO) usize; +pub extern fn BIO_number_written(bio: [*c]const BIO) usize; +pub extern fn BIO_push(bio: [*c]BIO, appended_bio: [*c]BIO) [*c]BIO; +pub extern fn BIO_pop(bio: [*c]BIO) [*c]BIO; +pub extern fn BIO_next(bio: [*c]BIO) [*c]BIO; pub extern fn BIO_free_all(bio: [*c]BIO) void; pub extern fn BIO_find_type(bio: [*c]BIO, @"type": c_int) [*c]BIO; pub extern fn BIO_copy_next_retry(bio: [*c]BIO) void; @@ -1169,9 +1103,9 @@ pub extern fn BIO_indent(bio: [*c]BIO, indent: c_uint, max_indent: c_uint) c_int pub extern fn BIO_hexdump(bio: [*c]BIO, data: [*c]const u8, len: usize, indent: c_uint) c_int; pub extern fn ERR_print_errors(bio: [*c]BIO) void; pub extern fn BIO_read_asn1(bio: [*c]BIO, out: [*c][*c]u8, out_len: [*c]usize, max_len: usize) c_int; -pub extern fn BIO_s_mem() [*c]const BIO_METHOD; -pub extern fn BIO_new_mem_buf(buf: ?*const anyopaque, len: c_int) *BIO; -pub extern fn BIO_mem_contents(bio: [*c]const BIO, out_contents: [*c][*c]const u8, out_len: [*c]usize) c_int; +pub extern fn BIO_s_mem() ?*const BIO_METHOD; +// pub extern fn BIO_new_mem_buf(buf: ?*const anyopaque, len: ossl_ssize_t) [*c]BIO; +// pub extern fn BIO_mem_contents(bio: [*c]const BIO, out_contents: [*c][*c]const u8, out_len: [*c]usize) c_int; pub extern fn BIO_get_mem_data(bio: [*c]BIO, contents: [*c][*c]u8) c_long; pub extern fn BIO_get_mem_ptr(bio: [*c]BIO, out: [*c][*c]BUF_MEM) c_int; pub extern fn BIO_set_mem_buf(bio: [*c]BIO, b: [*c]BUF_MEM, take_ownership: c_int) c_int; @@ -1180,37 +1114,39 @@ pub extern fn BIO_s_fd() [*c]const BIO_METHOD; pub extern fn BIO_new_fd(fd: c_int, close_flag: c_int) [*c]BIO; pub extern fn BIO_set_fd(bio: [*c]BIO, fd: c_int, close_flag: c_int) c_int; pub extern fn BIO_get_fd(bio: [*c]BIO, out_fd: [*c]c_int) c_int; -pub extern fn BIO_s_file() [*c]const BIO_METHOD; +// pub extern fn BIO_s_file() [*c]const BIO_METHOD; pub extern fn BIO_new_file(filename: [*c]const u8, mode: [*c]const u8) [*c]BIO; -pub extern fn BIO_new_fp(stream: [*c]FILE, close_flag: c_int) [*c]BIO; -pub extern fn BIO_get_fp(bio: [*c]BIO, out_file: [*c][*c]FILE) c_int; -pub extern fn BIO_set_fp(bio: [*c]BIO, file: [*c]FILE, close_flag: c_int) c_int; +// pub extern fn BIO_new_fp(stream: [*c]FILE, close_flag: c_int) [*c]BIO; +// pub extern fn BIO_get_fp(bio: [*c]BIO, out_file: [*c][*c]FILE) c_int; +// pub extern fn BIO_set_fp(bio: [*c]BIO, file: [*c]FILE, close_flag: c_int) c_int; pub extern fn BIO_read_filename(bio: [*c]BIO, filename: [*c]const u8) c_int; pub extern fn BIO_write_filename(bio: [*c]BIO, filename: [*c]const u8) c_int; pub extern fn BIO_append_filename(bio: [*c]BIO, filename: [*c]const u8) c_int; pub extern fn BIO_rw_filename(bio: [*c]BIO, filename: [*c]const u8) c_int; -pub extern fn BIO_s_socket() [*c]const BIO_METHOD; -pub extern fn BIO_new_socket(fd: c_int, close_flag: c_int) [*c]BIO; -pub extern fn BIO_s_connect() [*c]const BIO_METHOD; -pub extern fn BIO_new_connect(host_and_optional_port: [*c]const u8) [*c]BIO; -pub extern fn BIO_set_conn_hostname(bio: [*c]BIO, host_and_optional_port: [*c]const u8) c_int; -pub extern fn BIO_set_conn_port(bio: [*c]BIO, port_str: [*c]const u8) c_int; -pub extern fn BIO_set_conn_int_port(bio: [*c]BIO, port: [*c]const c_int) c_int; -pub extern fn BIO_set_nbio(bio: [*c]BIO, on: c_int) c_int; -pub extern fn BIO_do_connect(bio: [*c]BIO) c_int; -pub extern fn BIO_new_bio_pair(out1: [*c][*c]BIO, writebuf1: usize, out2: [*c][*c]BIO, writebuf2: usize) c_int; -pub extern fn BIO_ctrl_get_read_request(bio: [*c]BIO) usize; -pub extern fn BIO_ctrl_get_write_guarantee(bio: [*c]BIO) usize; -pub extern fn BIO_shutdown_wr(bio: [*c]BIO) c_int; +// pub extern fn BIO_tell(bio: [*c]BIO) c_long; +// pub extern fn BIO_seek(bio: [*c]BIO, offset: c_long) c_long; +// pub extern fn BIO_s_socket() [*c]const BIO_METHOD; +// pub extern fn BIO_new_socket(fd: c_int, close_flag: c_int) [*c]BIO; +// pub extern fn BIO_s_connect() [*c]const BIO_METHOD; +// pub extern fn BIO_new_connect(host_and_optional_port: [*c]const u8) [*c]BIO; +// pub extern fn BIO_set_conn_hostname(bio: [*c]BIO, host_and_optional_port: [*c]const u8) c_int; +// pub extern fn BIO_set_conn_port(bio: [*c]BIO, port_str: [*c]const u8) c_int; +// pub extern fn BIO_set_conn_int_port(bio: [*c]BIO, port: [*c]const c_int) c_int; +// pub extern fn BIO_set_nbio(bio: [*c]BIO, on: c_int) c_int; +// pub extern fn BIO_do_connect(bio: [*c]BIO) c_int; +// pub extern fn BIO_new_bio_pair(out1: [*c][*c]BIO, writebuf1: usize, out2: [*c][*c]BIO, writebuf2: usize) c_int; +// pub extern fn BIO_ctrl_get_read_request(bio: [*c]BIO) usize; +// pub extern fn BIO_ctrl_get_write_guarantee(bio: [*c]BIO) usize; +// pub extern fn BIO_shutdown_wr(bio: [*c]BIO) c_int; pub extern fn BIO_get_new_index() c_int; -pub extern fn BIO_meth_new(@"type": c_int, name: [*c]const u8) *BIO_METHOD; -pub extern fn BIO_meth_free(method: *BIO_METHOD) void; -pub extern fn BIO_meth_set_create(method: *BIO_METHOD, create: ?BIOMethod.create) c_int; -pub extern fn BIO_meth_set_destroy(method: *BIO_METHOD, destroy: ?BIOMethod.destroy) c_int; -pub extern fn BIO_meth_set_write(method: *BIO_METHOD, write: ?BIOMethod.write) c_int; -pub extern fn BIO_meth_set_read(method: *BIO_METHOD, read: ?BIOMethod.read) c_int; -pub extern fn BIO_meth_set_gets(method: *BIO_METHOD, gets: ?BIOMethod.gets) c_int; -pub extern fn BIO_meth_set_ctrl(method: *BIO_METHOD, ctrl: ?BIOMethod.ctrl) c_int; +pub extern fn BIO_meth_new(@"type": c_int, name: [*c]const u8) [*c]BIO_METHOD; +pub extern fn BIO_meth_free(method: [*c]BIO_METHOD) void; +pub extern fn BIO_meth_set_create(method: [*c]BIO_METHOD, create: ?*const fn ([*c]BIO) callconv(.C) c_int) c_int; +pub extern fn BIO_meth_set_destroy(method: [*c]BIO_METHOD, destroy: ?*const fn ([*c]BIO) callconv(.C) c_int) c_int; +pub extern fn BIO_meth_set_write(method: [*c]BIO_METHOD, write: ?*const fn ([*c]BIO, [*c]const u8, c_int) callconv(.C) c_int) c_int; +pub extern fn BIO_meth_set_read(method: [*c]BIO_METHOD, read: ?*const fn ([*c]BIO, [*c]u8, c_int) callconv(.C) c_int) c_int; +pub extern fn BIO_meth_set_gets(method: [*c]BIO_METHOD, gets: ?*const fn ([*c]BIO, [*c]u8, c_int) callconv(.C) c_int) c_int; +pub extern fn BIO_meth_set_ctrl(method: [*c]BIO_METHOD, ctrl: ?*const fn ([*c]BIO, c_int, c_long, ?*anyopaque) callconv(.C) c_long) c_int; pub extern fn BIO_set_data(bio: [*c]BIO, ptr: ?*anyopaque) void; pub extern fn BIO_get_data(bio: [*c]BIO) ?*anyopaque; pub extern fn BIO_set_init(bio: [*c]BIO, init: c_int) void; @@ -1220,7 +1156,7 @@ pub extern fn BIO_set_retry_special(bio: [*c]BIO) void; pub extern fn BIO_set_write_buffer_size(bio: [*c]BIO, buffer_size: c_int) c_int; pub extern fn BIO_set_shutdown(bio: [*c]BIO, shutdown: c_int) void; pub extern fn BIO_get_shutdown(bio: [*c]BIO) c_int; -pub extern fn BIO_meth_set_puts(method: *BIO_METHOD, puts: ?*const fn ([*c]BIO, [*c]const u8) callconv(.C) c_int) c_int; +pub extern fn BIO_meth_set_puts(method: [*c]BIO_METHOD, puts: ?*const fn ([*c]BIO, [*c]const u8) callconv(.C) c_int) c_int; pub extern fn EVP_EncodeBlock(dst: [*c]u8, src: [*c]const u8, src_len: usize) usize; pub extern fn EVP_EncodedLength(out_len: [*c]usize, len: usize) c_int; pub extern fn EVP_DecodedLength(out_len: [*c]usize, len: usize) c_int; @@ -1234,43 +1170,42 @@ pub extern fn EVP_DecodeInit(ctx: [*c]EVP_ENCODE_CTX) void; pub extern fn EVP_DecodeUpdate(ctx: [*c]EVP_ENCODE_CTX, out: [*c]u8, out_len: [*c]c_int, in: [*c]const u8, in_len: usize) c_int; pub extern fn EVP_DecodeFinal(ctx: [*c]EVP_ENCODE_CTX, out: [*c]u8, out_len: [*c]c_int) c_int; pub extern fn EVP_DecodeBlock(dst: [*c]u8, src: [*c]const u8, src_len: usize) c_int; -pub extern fn EVP_rc4() [*c]const EVP_CIPHER; -pub extern fn EVP_des_cbc() [*c]const EVP_CIPHER; -pub extern fn EVP_des_ecb() [*c]const EVP_CIPHER; -pub extern fn EVP_des_ede() [*c]const EVP_CIPHER; -pub extern fn EVP_des_ede3() [*c]const EVP_CIPHER; -pub extern fn EVP_des_ede_cbc() [*c]const EVP_CIPHER; -pub extern fn EVP_des_ede3_cbc() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_128_ecb() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_128_cbc() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_128_ctr() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_128_ofb() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_256_ecb() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_256_cbc() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_256_ctr() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_256_ofb() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_256_xts() [*c]const EVP_CIPHER; -pub extern fn EVP_enc_null() [*c]const EVP_CIPHER; -pub extern fn EVP_rc2_cbc() [*c]const EVP_CIPHER; -pub extern fn EVP_rc2_40_cbc() [*c]const EVP_CIPHER; -pub extern fn EVP_get_cipherbynid(nid: c_int) [*c]const EVP_CIPHER; +pub extern fn EVP_rc4() ?*const EVP_CIPHER; +pub extern fn EVP_des_cbc() ?*const EVP_CIPHER; +pub extern fn EVP_des_ecb() ?*const EVP_CIPHER; +pub extern fn EVP_des_ede() ?*const EVP_CIPHER; +pub extern fn EVP_des_ede3() ?*const EVP_CIPHER; +pub extern fn EVP_des_ede_cbc() ?*const EVP_CIPHER; +pub extern fn EVP_des_ede3_cbc() ?*const EVP_CIPHER; +pub extern fn EVP_aes_128_ecb() ?*const EVP_CIPHER; +pub extern fn EVP_aes_128_cbc() ?*const EVP_CIPHER; +pub extern fn EVP_aes_128_ctr() ?*const EVP_CIPHER; +pub extern fn EVP_aes_128_ofb() ?*const EVP_CIPHER; +pub extern fn EVP_aes_256_ecb() ?*const EVP_CIPHER; +pub extern fn EVP_aes_256_cbc() ?*const EVP_CIPHER; +pub extern fn EVP_aes_256_ctr() ?*const EVP_CIPHER; +pub extern fn EVP_aes_256_ofb() ?*const EVP_CIPHER; +pub extern fn EVP_aes_256_xts() ?*const EVP_CIPHER; +pub extern fn EVP_enc_null() ?*const EVP_CIPHER; +pub extern fn EVP_rc2_cbc() ?*const EVP_CIPHER; +pub extern fn EVP_rc2_40_cbc() ?*const EVP_CIPHER; +pub extern fn EVP_get_cipherbynid(nid: c_int) ?*const EVP_CIPHER; pub extern fn EVP_CIPHER_CTX_init(ctx: [*c]EVP_CIPHER_CTX) void; pub extern fn EVP_CIPHER_CTX_new() [*c]EVP_CIPHER_CTX; pub extern fn EVP_CIPHER_CTX_cleanup(ctx: [*c]EVP_CIPHER_CTX) c_int; pub extern fn EVP_CIPHER_CTX_free(ctx: [*c]EVP_CIPHER_CTX) void; pub extern fn EVP_CIPHER_CTX_copy(out: [*c]EVP_CIPHER_CTX, in: [*c]const EVP_CIPHER_CTX) c_int; pub extern fn EVP_CIPHER_CTX_reset(ctx: [*c]EVP_CIPHER_CTX) c_int; -pub extern fn EVP_CipherInit_ex(ctx: [*c]EVP_CIPHER_CTX, cipher: [*c]const EVP_CIPHER, engine: ?*ENGINE, key: [*c]const u8, iv: [*c]const u8, enc: c_int) c_int; -pub extern fn EVP_EncryptInit_ex(ctx: [*c]EVP_CIPHER_CTX, cipher: [*c]const EVP_CIPHER, impl: ?*ENGINE, key: [*c]const u8, iv: [*c]const u8) c_int; -pub extern fn EVP_DecryptInit_ex(ctx: [*c]EVP_CIPHER_CTX, cipher: [*c]const EVP_CIPHER, impl: ?*ENGINE, key: [*c]const u8, iv: [*c]const u8) c_int; +pub extern fn EVP_CipherInit_ex(ctx: [*c]EVP_CIPHER_CTX, cipher: ?*const EVP_CIPHER, engine: ?*ENGINE, key: [*c]const u8, iv: [*c]const u8, enc: c_int) c_int; +pub extern fn EVP_EncryptInit_ex(ctx: [*c]EVP_CIPHER_CTX, cipher: ?*const EVP_CIPHER, impl: ?*ENGINE, key: [*c]const u8, iv: [*c]const u8) c_int; +pub extern fn EVP_DecryptInit_ex(ctx: [*c]EVP_CIPHER_CTX, cipher: ?*const EVP_CIPHER, impl: ?*ENGINE, key: [*c]const u8, iv: [*c]const u8) c_int; pub extern fn EVP_EncryptUpdate(ctx: [*c]EVP_CIPHER_CTX, out: [*c]u8, out_len: [*c]c_int, in: [*c]const u8, in_len: c_int) c_int; pub extern fn EVP_EncryptFinal_ex(ctx: [*c]EVP_CIPHER_CTX, out: [*c]u8, out_len: [*c]c_int) c_int; pub extern fn EVP_DecryptUpdate(ctx: [*c]EVP_CIPHER_CTX, out: [*c]u8, out_len: [*c]c_int, in: [*c]const u8, in_len: c_int) c_int; pub extern fn EVP_DecryptFinal_ex(ctx: [*c]EVP_CIPHER_CTX, out: [*c]u8, out_len: [*c]c_int) c_int; -pub extern fn EVP_Cipher(ctx: [*c]EVP_CIPHER_CTX, out: [*c]u8, in: [*c]const u8, in_len: usize) c_int; pub extern fn EVP_CipherUpdate(ctx: [*c]EVP_CIPHER_CTX, out: [*c]u8, out_len: [*c]c_int, in: [*c]const u8, in_len: c_int) c_int; pub extern fn EVP_CipherFinal_ex(ctx: [*c]EVP_CIPHER_CTX, out: [*c]u8, out_len: [*c]c_int) c_int; -pub extern fn EVP_CIPHER_CTX_cipher(ctx: [*c]const EVP_CIPHER_CTX) [*c]const EVP_CIPHER; +pub extern fn EVP_CIPHER_CTX_cipher(ctx: [*c]const EVP_CIPHER_CTX) ?*const EVP_CIPHER; pub extern fn EVP_CIPHER_CTX_nid(ctx: [*c]const EVP_CIPHER_CTX) c_int; pub extern fn EVP_CIPHER_CTX_encrypting(ctx: [*c]const EVP_CIPHER_CTX) c_int; pub extern fn EVP_CIPHER_CTX_block_size(ctx: [*c]const EVP_CIPHER_CTX) c_uint; @@ -1283,79 +1218,60 @@ pub extern fn EVP_CIPHER_CTX_mode(ctx: [*c]const EVP_CIPHER_CTX) u32; pub extern fn EVP_CIPHER_CTX_ctrl(ctx: [*c]EVP_CIPHER_CTX, command: c_int, arg: c_int, ptr: ?*anyopaque) c_int; pub extern fn EVP_CIPHER_CTX_set_padding(ctx: [*c]EVP_CIPHER_CTX, pad: c_int) c_int; pub extern fn EVP_CIPHER_CTX_set_key_length(ctx: [*c]EVP_CIPHER_CTX, key_len: c_uint) c_int; -pub extern fn EVP_CIPHER_nid(cipher: [*c]const EVP_CIPHER) c_int; -pub extern fn EVP_CIPHER_block_size(cipher: [*c]const EVP_CIPHER) c_uint; -pub extern fn EVP_CIPHER_key_length(cipher: [*c]const EVP_CIPHER) c_uint; -pub extern fn EVP_CIPHER_iv_length(cipher: [*c]const EVP_CIPHER) c_uint; -pub extern fn EVP_CIPHER_flags(cipher: [*c]const EVP_CIPHER) u32; -pub extern fn EVP_CIPHER_mode(cipher: [*c]const EVP_CIPHER) u32; -pub extern fn EVP_BytesToKey(@"type": [*c]const EVP_CIPHER, md: ?*const EVP_MD, salt: [*c]const u8, data: [*c]const u8, data_len: usize, count: c_uint, key: [*c]u8, iv: [*c]u8) c_int; -pub extern fn EVP_CipherInit(ctx: [*c]EVP_CIPHER_CTX, cipher: [*c]const EVP_CIPHER, key: [*c]const u8, iv: [*c]const u8, enc: c_int) c_int; -pub extern fn EVP_EncryptInit(ctx: [*c]EVP_CIPHER_CTX, cipher: [*c]const EVP_CIPHER, key: [*c]const u8, iv: [*c]const u8) c_int; -pub extern fn EVP_DecryptInit(ctx: [*c]EVP_CIPHER_CTX, cipher: [*c]const EVP_CIPHER, key: [*c]const u8, iv: [*c]const u8) c_int; +pub extern fn EVP_CIPHER_nid(cipher: ?*const EVP_CIPHER) c_int; +pub extern fn EVP_CIPHER_block_size(cipher: ?*const EVP_CIPHER) c_uint; +pub extern fn EVP_CIPHER_key_length(cipher: ?*const EVP_CIPHER) c_uint; +pub extern fn EVP_CIPHER_iv_length(cipher: ?*const EVP_CIPHER) c_uint; +pub extern fn EVP_CIPHER_flags(cipher: ?*const EVP_CIPHER) u32; +pub extern fn EVP_CIPHER_mode(cipher: ?*const EVP_CIPHER) u32; +pub extern fn EVP_BytesToKey(@"type": ?*const EVP_CIPHER, md: ?*const EVP_MD, salt: [*c]const u8, data: [*c]const u8, data_len: usize, count: c_uint, key: [*c]u8, iv: [*c]u8) c_int; +pub extern fn EVP_CipherInit(ctx: [*c]EVP_CIPHER_CTX, cipher: ?*const EVP_CIPHER, key: [*c]const u8, iv: [*c]const u8, enc: c_int) c_int; +pub extern fn EVP_EncryptInit(ctx: [*c]EVP_CIPHER_CTX, cipher: ?*const EVP_CIPHER, key: [*c]const u8, iv: [*c]const u8) c_int; +pub extern fn EVP_DecryptInit(ctx: [*c]EVP_CIPHER_CTX, cipher: ?*const EVP_CIPHER, key: [*c]const u8, iv: [*c]const u8) c_int; pub extern fn EVP_CipherFinal(ctx: [*c]EVP_CIPHER_CTX, out: [*c]u8, out_len: [*c]c_int) c_int; pub extern fn EVP_EncryptFinal(ctx: [*c]EVP_CIPHER_CTX, out: [*c]u8, out_len: [*c]c_int) c_int; pub extern fn EVP_DecryptFinal(ctx: [*c]EVP_CIPHER_CTX, out: [*c]u8, out_len: [*c]c_int) c_int; +pub extern fn EVP_Cipher(ctx: [*c]EVP_CIPHER_CTX, out: [*c]u8, in: [*c]const u8, in_len: usize) c_int; pub extern fn EVP_add_cipher_alias(a: [*c]const u8, b: [*c]const u8) c_int; -pub extern fn EVP_get_cipherbyname(name: [*c]const u8) [*c]const EVP_CIPHER; -pub extern fn EVP_aes_128_gcm() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_256_gcm() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_192_ecb() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_192_cbc() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_192_ctr() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_192_gcm() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_192_ofb() [*c]const EVP_CIPHER; -pub extern fn EVP_des_ede3_ecb() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_128_cfb128() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_128_cfb() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_192_cfb128() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_192_cfb() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_256_cfb128() [*c]const EVP_CIPHER; -pub extern fn EVP_aes_256_cfb() [*c]const EVP_CIPHER; -pub extern fn EVP_bf_ecb() [*c]const EVP_CIPHER; -pub extern fn EVP_bf_cbc() [*c]const EVP_CIPHER; -pub extern fn EVP_bf_cfb() [*c]const EVP_CIPHER; -pub extern fn EVP_cast5_ecb() [*c]const EVP_CIPHER; -pub extern fn EVP_cast5_cbc() [*c]const EVP_CIPHER; +pub extern fn EVP_get_cipherbyname(name: [*c]const u8) ?*const EVP_CIPHER; +pub extern fn EVP_aes_128_gcm() ?*const EVP_CIPHER; +pub extern fn EVP_aes_256_gcm() ?*const EVP_CIPHER; +pub extern fn EVP_aes_192_ecb() ?*const EVP_CIPHER; +pub extern fn EVP_aes_192_cbc() ?*const EVP_CIPHER; +pub extern fn EVP_aes_192_ctr() ?*const EVP_CIPHER; +pub extern fn EVP_aes_192_gcm() ?*const EVP_CIPHER; +pub extern fn EVP_aes_192_ofb() ?*const EVP_CIPHER; +pub extern fn EVP_des_ede3_ecb() ?*const EVP_CIPHER; +pub extern fn EVP_aes_128_cfb128() ?*const EVP_CIPHER; +pub extern fn EVP_aes_256_cfb128() ?*const EVP_CIPHER; +pub extern fn EVP_aes_128_cfb() ?*const EVP_CIPHER; +pub extern fn EVP_aes_192_cfb128() ?*const EVP_CIPHER; +pub extern fn EVP_aes_192_cfb() ?*const EVP_CIPHER; +pub extern fn EVP_aes_256_cfb() ?*const EVP_CIPHER; +pub extern fn EVP_bf_ecb() ?*const EVP_CIPHER; +pub extern fn EVP_bf_cbc() ?*const EVP_CIPHER; +pub extern fn EVP_bf_cfb() ?*const EVP_CIPHER; +pub extern fn EVP_cast5_ecb() ?*const EVP_CIPHER; +pub extern fn EVP_cast5_cbc() ?*const EVP_CIPHER; pub extern fn EVP_CIPHER_CTX_set_flags(ctx: [*c]const EVP_CIPHER_CTX, flags: u32) void; -pub extern fn EVP_md4() *const EVP_MD; -pub extern fn EVP_md5() *const EVP_MD; -pub extern fn EVP_sha1() *const EVP_MD; -pub extern fn EVP_sha224() *const EVP_MD; -pub extern fn EVP_sha256() *const EVP_MD; -pub extern fn EVP_sha384() *const EVP_MD; -pub extern fn EVP_sha512() *const EVP_MD; -pub extern fn EVP_sha512_256() *const EVP_MD; -pub extern fn EVP_blake2b256() *const EVP_MD; -pub extern fn EVP_md5_sha1() *const EVP_MD; +pub extern fn EVP_md5_sha1() ?*const EVP_MD; +pub extern fn EVP_ripemd160() ?*const EVP_MD; pub extern fn EVP_get_digestbynid(nid: c_int) ?*const EVP_MD; pub extern fn EVP_get_digestbyobj(obj: ?*const ASN1_OBJECT) ?*const EVP_MD; -pub extern fn EVP_MD_CTX_init(ctx: *EVP_MD_CTX) void; -pub extern fn EVP_MD_CTX_new() *EVP_MD_CTX; -pub extern fn EVP_MD_CTX_cleanup(ctx: *EVP_MD_CTX) c_int; -pub extern fn EVP_MD_CTX_free(ctx: *EVP_MD_CTX) void; +pub extern fn EVP_MD_CTX_init(ctx: [*c]EVP_MD_CTX) void; +pub extern fn EVP_MD_CTX_new() [*c]EVP_MD_CTX; +pub extern fn EVP_MD_CTX_cleanup(ctx: [*c]EVP_MD_CTX) c_int; +pub extern fn EVP_MD_CTX_cleanse(ctx: [*c]EVP_MD_CTX) void; +pub extern fn EVP_MD_CTX_free(ctx: [*c]EVP_MD_CTX) void; pub extern fn EVP_MD_CTX_copy_ex(out: [*c]EVP_MD_CTX, in: [*c]const EVP_MD_CTX) c_int; pub extern fn EVP_MD_CTX_move(out: [*c]EVP_MD_CTX, in: [*c]EVP_MD_CTX) void; -pub extern fn EVP_MD_CTX_reset(ctx: *EVP_MD_CTX) c_int; -pub extern fn EVP_DigestInit_ex(ctx: *EVP_MD_CTX, @"type": ?*const EVP_MD, engine: ?*ENGINE) c_int; -pub extern fn EVP_DigestInit(ctx: *EVP_MD_CTX, @"type": ?*const EVP_MD) c_int; -/// EVP_DigestUpdate hashes |len| bytes from |data| into the hashing operation -/// in |ctx|. It returns one. -pub extern fn EVP_DigestUpdate(ctx: *EVP_MD_CTX, data: ?[*]const u8, len: usize) c_int; -/// EVP_DigestFinal_ex finishes the digest in |ctx| and writes the output to -/// |md_out|. |EVP_MD_CTX_size| bytes are written, which is at most -/// |EVP_MAX_MD_SIZE|. If |out_size| is not NULL then |*out_size| is set to the -/// number of bytes written. It returns one. After this call, the hash cannot be -/// updated or finished again until |EVP_DigestInit_ex| is called to start -/// another hashing operation. -pub extern fn EVP_DigestFinal_ex(ctx: *EVP_MD_CTX, md_out: [*]u8, out_size: ?*u32) c_int; -pub extern fn EVP_DigestFinal(ctx: *EVP_MD_CTX, md_out: [*]u8, out_size: ?*u32) c_int; -/// EVP_Digest performs a complete hashing operation in one call. It hashes |len| -/// bytes from |data| and writes the digest to |md_out|. |EVP_MD_CTX_size| bytes -/// are written, which is at most |EVP_MAX_MD_SIZE|. If |out_size| is not NULL -/// then |*out_size| is set to the number of bytes written. It returns one on -/// success and zero otherwise. -pub extern fn EVP_Digest(data: ?[*]const u8, len: usize, md_out: [*c]u8, md_out_size: [*c]c_uint, @"type": ?*const EVP_MD, impl: ?*ENGINE) c_int; +pub extern fn EVP_MD_CTX_reset(ctx: [*c]EVP_MD_CTX) c_int; +pub extern fn EVP_DigestInit_ex(ctx: [*c]EVP_MD_CTX, @"type": ?*const EVP_MD, engine: ?*ENGINE) c_int; +pub extern fn EVP_DigestInit(ctx: [*c]EVP_MD_CTX, @"type": ?*const EVP_MD) c_int; +pub extern fn EVP_DigestUpdate(ctx: [*c]EVP_MD_CTX, data: ?*const anyopaque, len: usize) c_int; +pub extern fn EVP_DigestFinal_ex(ctx: [*c]EVP_MD_CTX, md_out: [*c]u8, out_size: [*c]c_uint) c_int; +pub extern fn EVP_DigestFinal(ctx: [*c]EVP_MD_CTX, md_out: [*c]u8, out_size: [*c]c_uint) c_int; +pub extern fn EVP_Digest(data: ?*const anyopaque, len: usize, md_out: [*c]u8, md_out_size: [*c]c_uint, @"type": ?*const EVP_MD, impl: ?*ENGINE) c_int; pub extern fn EVP_MD_type(md: ?*const EVP_MD) c_int; pub extern fn EVP_MD_flags(md: ?*const EVP_MD) u32; pub extern fn EVP_MD_size(md: ?*const EVP_MD) usize; @@ -1365,16 +1281,16 @@ pub extern fn EVP_MD_CTX_size(ctx: [*c]const EVP_MD_CTX) usize; pub extern fn EVP_MD_CTX_block_size(ctx: [*c]const EVP_MD_CTX) usize; pub extern fn EVP_MD_CTX_type(ctx: [*c]const EVP_MD_CTX) c_int; pub extern fn EVP_parse_digest_algorithm(cbs: [*c]CBS) ?*const EVP_MD; -pub extern fn EVP_marshal_digest_algorithm(cbb: [*c]CBB, md: ?*const EVP_MD) c_int; +pub extern fn EVP_marshal_digest_algorithm(cbb: ?*CBB, md: ?*const EVP_MD) c_int; pub extern fn EVP_MD_CTX_copy(out: [*c]EVP_MD_CTX, in: [*c]const EVP_MD_CTX) c_int; pub extern fn EVP_add_digest(digest: ?*const EVP_MD) c_int; pub extern fn EVP_get_digestbyname([*c]const u8) ?*const EVP_MD; pub extern fn EVP_dss1() ?*const EVP_MD; -pub extern fn EVP_MD_CTX_create() ?*EVP_MD_CTX; -pub extern fn EVP_MD_CTX_destroy(ctx: *EVP_MD_CTX) void; -pub extern fn EVP_DigestFinalXOF(ctx: *EVP_MD_CTX, out: [*c]u8, len: usize) c_int; +pub extern fn EVP_MD_CTX_create() [*c]EVP_MD_CTX; +pub extern fn EVP_MD_CTX_destroy(ctx: [*c]EVP_MD_CTX) void; +pub extern fn EVP_DigestFinalXOF(ctx: [*c]EVP_MD_CTX, out: [*c]u8, len: usize) c_int; pub extern fn EVP_MD_meth_get_flags(md: ?*const EVP_MD) u32; -pub extern fn EVP_MD_CTX_set_flags(ctx: *EVP_MD_CTX, flags: c_int) void; +pub extern fn EVP_MD_CTX_set_flags(ctx: [*c]EVP_MD_CTX, flags: c_int) void; pub extern fn EVP_MD_nid(md: ?*const EVP_MD) c_int; pub extern fn EVP_aead_aes_128_gcm() ?*const EVP_AEAD; pub extern fn EVP_aead_aes_192_gcm() ?*const EVP_AEAD; @@ -1389,21 +1305,12 @@ pub extern fn EVP_aead_aes_128_gcm_randnonce() ?*const EVP_AEAD; pub extern fn EVP_aead_aes_256_gcm_randnonce() ?*const EVP_AEAD; pub extern fn EVP_aead_aes_128_ccm_bluetooth() ?*const EVP_AEAD; pub extern fn EVP_aead_aes_128_ccm_bluetooth_8() ?*const EVP_AEAD; +pub extern fn EVP_aead_aes_128_ccm_matter() ?*const EVP_AEAD; pub extern fn EVP_has_aes_hardware() c_int; pub extern fn EVP_AEAD_key_length(aead: ?*const EVP_AEAD) usize; pub extern fn EVP_AEAD_nonce_length(aead: ?*const EVP_AEAD) usize; pub extern fn EVP_AEAD_max_overhead(aead: ?*const EVP_AEAD) usize; pub extern fn EVP_AEAD_max_tag_len(aead: ?*const EVP_AEAD) usize; -pub const union_evp_aead_ctx_st_state = extern union { - @"opaque": [580]u8, - alignment: u64, -}; -pub const struct_evp_aead_ctx_st = extern struct { - aead: ?*const EVP_AEAD, - state: union_evp_aead_ctx_st_state, - tag_len: u8, -}; -pub const EVP_AEAD_CTX = struct_evp_aead_ctx_st; pub extern fn EVP_AEAD_CTX_zero(ctx: [*c]EVP_AEAD_CTX) void; pub extern fn EVP_AEAD_CTX_new(aead: ?*const EVP_AEAD, key: [*c]const u8, key_len: usize, tag_len: usize) [*c]EVP_AEAD_CTX; pub extern fn EVP_AEAD_CTX_free(ctx: [*c]EVP_AEAD_CTX) void; @@ -1458,62 +1365,35 @@ pub extern fn EVP_PKEY_assign(pkey: [*c]EVP_PKEY, @"type": c_int, key: ?*anyopaq pub extern fn EVP_PKEY_set_type(pkey: [*c]EVP_PKEY, @"type": c_int) c_int; pub extern fn EVP_PKEY_cmp_parameters(a: [*c]const EVP_PKEY, b: [*c]const EVP_PKEY) c_int; pub extern fn EVP_parse_public_key(cbs: [*c]CBS) [*c]EVP_PKEY; -pub extern fn EVP_marshal_public_key(cbb: [*c]CBB, key: [*c]const EVP_PKEY) c_int; +pub extern fn EVP_marshal_public_key(cbb: ?*CBB, key: [*c]const EVP_PKEY) c_int; pub extern fn EVP_parse_private_key(cbs: [*c]CBS) [*c]EVP_PKEY; -pub extern fn EVP_marshal_private_key(cbb: [*c]CBB, key: [*c]const EVP_PKEY) c_int; +pub extern fn EVP_marshal_private_key(cbb: ?*CBB, key: [*c]const EVP_PKEY) c_int; pub extern fn EVP_PKEY_new_raw_private_key(@"type": c_int, unused: ?*ENGINE, in: [*c]const u8, len: usize) [*c]EVP_PKEY; pub extern fn EVP_PKEY_new_raw_public_key(@"type": c_int, unused: ?*ENGINE, in: [*c]const u8, len: usize) [*c]EVP_PKEY; pub extern fn EVP_PKEY_get_raw_private_key(pkey: [*c]const EVP_PKEY, out: [*c]u8, out_len: [*c]usize) c_int; pub extern fn EVP_PKEY_get_raw_public_key(pkey: [*c]const EVP_PKEY, out: [*c]u8, out_len: [*c]usize) c_int; -pub extern fn EVP_DigestSignInit(ctx: *EVP_MD_CTX, pctx: [*c]?*EVP_PKEY_CTX, @"type": ?*const EVP_MD, e: ?*ENGINE, pkey: [*c]EVP_PKEY) c_int; -pub extern fn EVP_DigestSignUpdate(ctx: *EVP_MD_CTX, data: ?[*]const u8, len: usize) c_int; -pub extern fn EVP_DigestSignFinal(ctx: *EVP_MD_CTX, out_sig: [*c]u8, out_sig_len: [*c]usize) c_int; -pub extern fn EVP_DigestSign(ctx: *EVP_MD_CTX, out_sig: [*c]u8, out_sig_len: [*c]usize, data: [*c]const u8, data_len: usize) c_int; -pub extern fn EVP_DigestVerifyInit(ctx: *EVP_MD_CTX, pctx: [*c]?*EVP_PKEY_CTX, @"type": ?*const EVP_MD, e: ?*ENGINE, pkey: [*c]EVP_PKEY) c_int; -pub extern fn EVP_DigestVerifyUpdate(ctx: *EVP_MD_CTX, data: ?[*]const u8, len: usize) c_int; -pub extern fn EVP_DigestVerifyFinal(ctx: *EVP_MD_CTX, sig: [*c]const u8, sig_len: usize) c_int; -pub extern fn EVP_DigestVerify(ctx: *EVP_MD_CTX, sig: [*c]const u8, sig_len: usize, data: [*c]const u8, len: usize) c_int; -pub extern fn EVP_SignInit_ex(ctx: *EVP_MD_CTX, @"type": ?*const EVP_MD, impl: ?*ENGINE) c_int; -pub extern fn EVP_SignInit(ctx: *EVP_MD_CTX, @"type": ?*const EVP_MD) c_int; -pub extern fn EVP_SignUpdate(ctx: *EVP_MD_CTX, data: ?[*]const u8, len: usize) c_int; +pub extern fn EVP_DigestSignInit(ctx: [*c]EVP_MD_CTX, pctx: [*c]?*EVP_PKEY_CTX, @"type": ?*const EVP_MD, e: ?*ENGINE, pkey: [*c]EVP_PKEY) c_int; +pub extern fn EVP_DigestSignUpdate(ctx: [*c]EVP_MD_CTX, data: ?*const anyopaque, len: usize) c_int; +pub extern fn EVP_DigestSignFinal(ctx: [*c]EVP_MD_CTX, out_sig: [*c]u8, out_sig_len: [*c]usize) c_int; +pub extern fn EVP_DigestSign(ctx: [*c]EVP_MD_CTX, out_sig: [*c]u8, out_sig_len: [*c]usize, data: [*c]const u8, data_len: usize) c_int; +pub extern fn EVP_DigestVerifyInit(ctx: [*c]EVP_MD_CTX, pctx: [*c]?*EVP_PKEY_CTX, @"type": ?*const EVP_MD, e: ?*ENGINE, pkey: [*c]EVP_PKEY) c_int; +pub extern fn EVP_DigestVerifyUpdate(ctx: [*c]EVP_MD_CTX, data: ?*const anyopaque, len: usize) c_int; +pub extern fn EVP_DigestVerifyFinal(ctx: [*c]EVP_MD_CTX, sig: [*c]const u8, sig_len: usize) c_int; +pub extern fn EVP_DigestVerify(ctx: [*c]EVP_MD_CTX, sig: [*c]const u8, sig_len: usize, data: [*c]const u8, len: usize) c_int; +pub extern fn EVP_SignInit_ex(ctx: [*c]EVP_MD_CTX, @"type": ?*const EVP_MD, impl: ?*ENGINE) c_int; +pub extern fn EVP_SignInit(ctx: [*c]EVP_MD_CTX, @"type": ?*const EVP_MD) c_int; +pub extern fn EVP_SignUpdate(ctx: [*c]EVP_MD_CTX, data: ?*const anyopaque, len: usize) c_int; pub extern fn EVP_SignFinal(ctx: [*c]const EVP_MD_CTX, sig: [*c]u8, out_sig_len: [*c]c_uint, pkey: [*c]EVP_PKEY) c_int; -pub extern fn EVP_VerifyInit_ex(ctx: *EVP_MD_CTX, @"type": ?*const EVP_MD, impl: ?*ENGINE) c_int; -pub extern fn EVP_VerifyInit(ctx: *EVP_MD_CTX, @"type": ?*const EVP_MD) c_int; -pub extern fn EVP_VerifyUpdate(ctx: *EVP_MD_CTX, data: ?[*]const u8, len: usize) c_int; -pub extern fn EVP_VerifyFinal(ctx: *EVP_MD_CTX, sig: [*c]const u8, sig_len: usize, pkey: [*c]EVP_PKEY) c_int; +pub extern fn EVP_VerifyInit_ex(ctx: [*c]EVP_MD_CTX, @"type": ?*const EVP_MD, impl: ?*ENGINE) c_int; +pub extern fn EVP_VerifyInit(ctx: [*c]EVP_MD_CTX, @"type": ?*const EVP_MD) c_int; +pub extern fn EVP_VerifyUpdate(ctx: [*c]EVP_MD_CTX, data: ?*const anyopaque, len: usize) c_int; +pub extern fn EVP_VerifyFinal(ctx: [*c]EVP_MD_CTX, sig: [*c]const u8, sig_len: usize, pkey: [*c]EVP_PKEY) c_int; pub extern fn EVP_PKEY_print_public(out: [*c]BIO, pkey: [*c]const EVP_PKEY, indent: c_int, pctx: ?*ASN1_PCTX) c_int; pub extern fn EVP_PKEY_print_private(out: [*c]BIO, pkey: [*c]const EVP_PKEY, indent: c_int, pctx: ?*ASN1_PCTX) c_int; pub extern fn EVP_PKEY_print_params(out: [*c]BIO, pkey: [*c]const EVP_PKEY, indent: c_int, pctx: ?*ASN1_PCTX) c_int; pub extern fn PKCS5_PBKDF2_HMAC(password: [*c]const u8, password_len: usize, salt: [*c]const u8, salt_len: usize, iterations: c_uint, digest: ?*const EVP_MD, key_len: usize, out_key: [*c]u8) c_int; pub extern fn PKCS5_PBKDF2_HMAC_SHA1(password: [*c]const u8, password_len: usize, salt: [*c]const u8, salt_len: usize, iterations: c_uint, key_len: usize, out_key: [*c]u8) c_int; -/// EVP_PBE_scrypt expands |password| into a secret key of length |key_len| using -/// scrypt, as described in RFC 7914, and writes the result to |out_key|. It -/// returns one on success and zero on allocation failure, if the memory required -/// for the operation exceeds |max_mem|, or if any of the parameters are invalid -/// as described below. -/// -/// |N|, |r|, and |p| are as described in RFC 7914 section 6. They determine the -/// cost of the operation. If |max_mem| is zero, a defult limit of 32MiB will be -/// used. -/// -/// The parameters are considered invalid under any of the following conditions: -/// - |r| or |p| are zero -/// - |p| > (2^30 - 1) / |r| -/// - |N| is not a power of two -/// - |N| > 2^32 -/// - |N| > 2^(128 * |r| / 8) -pub extern fn EVP_PBE_scrypt( - password: [*c]const u8, - password_len: usize, - salt: [*c]const u8, - salt_len: usize, - N: u64, - r: u64, - p: u64, - max_mem: usize, - out_key: [*c]u8, - key_len: usize, -) c_int; +pub extern fn EVP_PBE_scrypt(password: [*c]const u8, password_len: usize, salt: [*c]const u8, salt_len: usize, N: u64, r: u64, p: u64, max_mem: usize, out_key: [*c]u8, key_len: usize) c_int; pub extern fn EVP_PKEY_CTX_new(pkey: [*c]EVP_PKEY, e: ?*ENGINE) ?*EVP_PKEY_CTX; pub extern fn EVP_PKEY_CTX_new_id(id: c_int, e: ?*ENGINE) ?*EVP_PKEY_CTX; pub extern fn EVP_PKEY_CTX_free(ctx: ?*EVP_PKEY_CTX) void; @@ -1557,7 +1437,7 @@ pub extern fn OPENSSL_add_all_algorithms_conf() void; pub extern fn OpenSSL_add_all_ciphers() void; pub extern fn OpenSSL_add_all_digests() void; pub extern fn EVP_cleanup() void; -pub extern fn EVP_CIPHER_do_all_sorted(callback: ?*const fn ([*c]const EVP_CIPHER, [*c]const u8, [*c]const u8, ?*anyopaque) callconv(.C) void, arg: ?*anyopaque) void; +pub extern fn EVP_CIPHER_do_all_sorted(callback: ?*const fn (?*const EVP_CIPHER, [*c]const u8, [*c]const u8, ?*anyopaque) callconv(.C) void, arg: ?*anyopaque) void; pub extern fn EVP_MD_do_all_sorted(callback: ?*const fn (?*const EVP_MD, [*c]const u8, [*c]const u8, ?*anyopaque) callconv(.C) void, arg: ?*anyopaque) void; pub extern fn EVP_MD_do_all(callback: ?*const fn (?*const EVP_MD, [*c]const u8, [*c]const u8, ?*anyopaque) callconv(.C) void, arg: ?*anyopaque) void; pub extern fn i2d_PrivateKey(key: [*c]const EVP_PKEY, outp: [*c][*c]u8) c_int; @@ -1565,8 +1445,8 @@ pub extern fn i2d_PublicKey(key: [*c]const EVP_PKEY, outp: [*c][*c]u8) c_int; pub extern fn d2i_PrivateKey(@"type": c_int, out: [*c][*c]EVP_PKEY, inp: [*c][*c]const u8, len: c_long) [*c]EVP_PKEY; pub extern fn d2i_AutoPrivateKey(out: [*c][*c]EVP_PKEY, inp: [*c][*c]const u8, len: c_long) [*c]EVP_PKEY; pub extern fn d2i_PublicKey(@"type": c_int, out: [*c][*c]EVP_PKEY, inp: [*c][*c]const u8, len: c_long) [*c]EVP_PKEY; -pub extern fn EVP_PKEY_get0_DH(pkey: [*c]const EVP_PKEY) [*c]DH; -pub extern fn EVP_PKEY_get1_DH(pkey: [*c]const EVP_PKEY) [*c]DH; +pub extern fn EVP_PKEY_get0_DH(pkey: [*c]const EVP_PKEY) ?*DH; +pub extern fn EVP_PKEY_get1_DH(pkey: [*c]const EVP_PKEY) ?*DH; pub extern fn EVP_PKEY_CTX_set_ec_param_enc(ctx: ?*EVP_PKEY_CTX, encoding: c_int) c_int; pub extern fn EVP_PKEY_set1_tls_encodedpoint(pkey: [*c]EVP_PKEY, in: [*c]const u8, len: usize) c_int; pub extern fn EVP_PKEY_get1_tls_encodedpoint(pkey: [*c]const EVP_PKEY, out_ptr: [*c][*c]u8) usize; @@ -1582,15 +1462,17 @@ pub extern fn i2d_DSA_PUBKEY(dsa: [*c]const DSA, outp: [*c][*c]u8) c_int; pub extern fn d2i_DSA_PUBKEY(out: [*c][*c]DSA, inp: [*c][*c]const u8, len: c_long) [*c]DSA; pub extern fn i2d_EC_PUBKEY(ec_key: ?*const EC_KEY, outp: [*c][*c]u8) c_int; pub extern fn d2i_EC_PUBKEY(out: [*c]?*EC_KEY, inp: [*c][*c]const u8, len: c_long) ?*EC_KEY; +pub extern fn EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx: ?*EVP_PKEY_CTX, nbits: c_int) c_int; +pub extern fn EVP_PKEY_CTX_set_dsa_paramgen_q_bits(ctx: ?*EVP_PKEY_CTX, qbits: c_int) c_int; pub const struct_stack_st_CRYPTO_BUFFER = opaque {}; pub const struct_stack_st_X509 = opaque {}; pub const struct_stack_st_X509_CRL = opaque {}; pub extern fn PKCS7_get_raw_certificates(out_certs: ?*struct_stack_st_CRYPTO_BUFFER, cbs: [*c]CBS, pool: ?*CRYPTO_BUFFER_POOL) c_int; pub extern fn PKCS7_get_certificates(out_certs: ?*struct_stack_st_X509, cbs: [*c]CBS) c_int; -pub extern fn PKCS7_bundle_raw_certificates(out: [*c]CBB, certs: ?*const struct_stack_st_CRYPTO_BUFFER) c_int; -pub extern fn PKCS7_bundle_certificates(out: [*c]CBB, certs: ?*const struct_stack_st_X509) c_int; +pub extern fn PKCS7_bundle_raw_certificates(out: ?*CBB, certs: ?*const struct_stack_st_CRYPTO_BUFFER) c_int; +pub extern fn PKCS7_bundle_certificates(out: ?*CBB, certs: ?*const struct_stack_st_X509) c_int; pub extern fn PKCS7_get_CRLs(out_crls: ?*struct_stack_st_X509_CRL, cbs: [*c]CBS) c_int; -pub extern fn PKCS7_bundle_CRLs(out: [*c]CBB, crls: ?*const struct_stack_st_X509_CRL) c_int; +pub extern fn PKCS7_bundle_CRLs(out: ?*CBB, crls: ?*const struct_stack_st_X509_CRL) c_int; pub extern fn PKCS7_get_PEM_certificates(out_certs: ?*struct_stack_st_X509, pem_bio: [*c]BIO) c_int; pub extern fn PKCS7_get_PEM_CRLs(out_crls: ?*struct_stack_st_X509_CRL, pem_bio: [*c]BIO) c_int; pub const PKCS7_SIGNED = extern struct { @@ -1605,7 +1487,7 @@ pub const PKCS7_ENVELOPE = anyopaque; pub const PKCS7_DIGEST = anyopaque; pub const PKCS7_ENCRYPT = anyopaque; pub const PKCS7_SIGNER_INFO = anyopaque; -const union_unnamed_6 = extern union { +const union_unnamed_7 = extern union { ptr: [*c]u8, data: [*c]ASN1_OCTET_STRING, sign: [*c]PKCS7_SIGNED, @@ -1619,7 +1501,7 @@ pub const PKCS7 = extern struct { ber_bytes: [*c]u8, ber_len: usize, type: ?*ASN1_OBJECT, - d: union_unnamed_6, + d: union_unnamed_7, }; pub extern fn d2i_PKCS7(out: [*c][*c]PKCS7, inp: [*c][*c]const u8, len: usize) [*c]PKCS7; pub extern fn d2i_PKCS7_bio(bio: [*c]BIO, out: [*c][*c]PKCS7) [*c]PKCS7; @@ -1645,7 +1527,7 @@ pub extern fn BN_num_bits(bn: [*c]const BIGNUM) c_uint; pub extern fn BN_num_bytes(bn: [*c]const BIGNUM) c_uint; pub extern fn BN_zero(bn: [*c]BIGNUM) void; pub extern fn BN_one(bn: [*c]BIGNUM) c_int; -pub extern fn BN_set_word(bn: [*c]BIGNUM, value: u64) c_int; +pub extern fn BN_set_word(bn: [*c]BIGNUM, value: BN_ULONG) c_int; pub extern fn BN_set_u64(bn: [*c]BIGNUM, value: u64) c_int; pub extern fn BN_set_negative(bn: [*c]BIGNUM, sign: c_int) void; pub extern fn BN_is_negative(bn: [*c]const BIGNUM) c_int; @@ -1654,18 +1536,17 @@ pub extern fn BN_bn2bin(in: [*c]const BIGNUM, out: [*c]u8) usize; pub extern fn BN_le2bn(in: [*c]const u8, len: usize, ret: [*c]BIGNUM) [*c]BIGNUM; pub extern fn BN_bn2le_padded(out: [*c]u8, len: usize, in: [*c]const BIGNUM) c_int; pub extern fn BN_bn2bin_padded(out: [*c]u8, len: usize, in: [*c]const BIGNUM) c_int; -pub extern fn BN_bn2cbb_padded(out: [*c]CBB, len: usize, in: [*c]const BIGNUM) c_int; +pub extern fn BN_bn2cbb_padded(out: ?*CBB, len: usize, in: [*c]const BIGNUM) c_int; pub extern fn BN_bn2hex(bn: [*c]const BIGNUM) [*c]u8; pub extern fn BN_hex2bn(outp: [*c][*c]BIGNUM, in: [*c]const u8) c_int; pub extern fn BN_bn2dec(a: [*c]const BIGNUM) [*c]u8; pub extern fn BN_dec2bn(outp: [*c][*c]BIGNUM, in: [*c]const u8) c_int; pub extern fn BN_asc2bn(outp: [*c][*c]BIGNUM, in: [*c]const u8) c_int; pub extern fn BN_print(bio: [*c]BIO, a: [*c]const BIGNUM) c_int; -pub extern fn BN_print_fp(fp: [*c]FILE, a: [*c]const BIGNUM) c_int; -pub extern fn BN_get_word(bn: [*c]const BIGNUM) u64; +pub extern fn BN_get_word(bn: [*c]const BIGNUM) BN_ULONG; pub extern fn BN_get_u64(bn: [*c]const BIGNUM, out: [*c]u64) c_int; pub extern fn BN_parse_asn1_unsigned(cbs: [*c]CBS, ret: [*c]BIGNUM) c_int; -pub extern fn BN_marshal_asn1(cbb: [*c]CBB, bn: [*c]const BIGNUM) c_int; +pub extern fn BN_marshal_asn1(cbb: ?*CBB, bn: [*c]const BIGNUM) c_int; pub extern fn BN_CTX_new() ?*BN_CTX; pub extern fn BN_CTX_free(ctx: ?*BN_CTX) void; pub extern fn BN_CTX_start(ctx: ?*BN_CTX) void; @@ -1673,24 +1554,24 @@ pub extern fn BN_CTX_get(ctx: ?*BN_CTX) [*c]BIGNUM; pub extern fn BN_CTX_end(ctx: ?*BN_CTX) void; pub extern fn BN_add(r: [*c]BIGNUM, a: [*c]const BIGNUM, b: [*c]const BIGNUM) c_int; pub extern fn BN_uadd(r: [*c]BIGNUM, a: [*c]const BIGNUM, b: [*c]const BIGNUM) c_int; -pub extern fn BN_add_word(a: [*c]BIGNUM, w: u64) c_int; +pub extern fn BN_add_word(a: [*c]BIGNUM, w: BN_ULONG) c_int; pub extern fn BN_sub(r: [*c]BIGNUM, a: [*c]const BIGNUM, b: [*c]const BIGNUM) c_int; pub extern fn BN_usub(r: [*c]BIGNUM, a: [*c]const BIGNUM, b: [*c]const BIGNUM) c_int; -pub extern fn BN_sub_word(a: [*c]BIGNUM, w: u64) c_int; +pub extern fn BN_sub_word(a: [*c]BIGNUM, w: BN_ULONG) c_int; pub extern fn BN_mul(r: [*c]BIGNUM, a: [*c]const BIGNUM, b: [*c]const BIGNUM, ctx: ?*BN_CTX) c_int; -pub extern fn BN_mul_word(bn: [*c]BIGNUM, w: u64) c_int; +pub extern fn BN_mul_word(bn: [*c]BIGNUM, w: BN_ULONG) c_int; pub extern fn BN_sqr(r: [*c]BIGNUM, a: [*c]const BIGNUM, ctx: ?*BN_CTX) c_int; pub extern fn BN_div(quotient: [*c]BIGNUM, rem: [*c]BIGNUM, numerator: [*c]const BIGNUM, divisor: [*c]const BIGNUM, ctx: ?*BN_CTX) c_int; -pub extern fn BN_div_word(numerator: [*c]BIGNUM, divisor: u64) u64; +pub extern fn BN_div_word(numerator: [*c]BIGNUM, divisor: BN_ULONG) BN_ULONG; pub extern fn BN_sqrt(out_sqrt: [*c]BIGNUM, in: [*c]const BIGNUM, ctx: ?*BN_CTX) c_int; pub extern fn BN_cmp(a: [*c]const BIGNUM, b: [*c]const BIGNUM) c_int; -pub extern fn BN_cmp_word(a: [*c]const BIGNUM, b: u64) c_int; +pub extern fn BN_cmp_word(a: [*c]const BIGNUM, b: BN_ULONG) c_int; pub extern fn BN_ucmp(a: [*c]const BIGNUM, b: [*c]const BIGNUM) c_int; pub extern fn BN_equal_consttime(a: [*c]const BIGNUM, b: [*c]const BIGNUM) c_int; -pub extern fn BN_abs_is_word(bn: [*c]const BIGNUM, w: u64) c_int; +pub extern fn BN_abs_is_word(bn: [*c]const BIGNUM, w: BN_ULONG) c_int; pub extern fn BN_is_zero(bn: [*c]const BIGNUM) c_int; pub extern fn BN_is_one(bn: [*c]const BIGNUM) c_int; -pub extern fn BN_is_word(bn: [*c]const BIGNUM, w: u64) c_int; +pub extern fn BN_is_word(bn: [*c]const BIGNUM, w: BN_ULONG) c_int; pub extern fn BN_is_odd(bn: [*c]const BIGNUM) c_int; pub extern fn BN_is_pow2(a: [*c]const BIGNUM) c_int; pub extern fn BN_lshift(r: [*c]BIGNUM, a: [*c]const BIGNUM, n: c_int) c_int; @@ -1702,7 +1583,7 @@ pub extern fn BN_clear_bit(a: [*c]BIGNUM, n: c_int) c_int; pub extern fn BN_is_bit_set(a: [*c]const BIGNUM, n: c_int) c_int; pub extern fn BN_mask_bits(a: [*c]BIGNUM, n: c_int) c_int; pub extern fn BN_count_low_zero_bits(bn: [*c]const BIGNUM) c_int; -pub extern fn BN_mod_word(a: [*c]const BIGNUM, w: u64) u64; +pub extern fn BN_mod_word(a: [*c]const BIGNUM, w: BN_ULONG) BN_ULONG; pub extern fn BN_mod_pow2(r: [*c]BIGNUM, a: [*c]const BIGNUM, e: usize) c_int; pub extern fn BN_nnmod_pow2(r: [*c]BIGNUM, a: [*c]const BIGNUM, e: usize) c_int; pub extern fn BN_nnmod(rem: [*c]BIGNUM, numerator: [*c]const BIGNUM, divisor: [*c]const BIGNUM, ctx: ?*BN_CTX) c_int; @@ -1720,56 +1601,31 @@ pub extern fn BN_mod_sqrt(in: [*c]BIGNUM, a: [*c]const BIGNUM, p: [*c]const BIGN pub extern fn BN_rand(rnd: [*c]BIGNUM, bits: c_int, top: c_int, bottom: c_int) c_int; pub extern fn BN_pseudo_rand(rnd: [*c]BIGNUM, bits: c_int, top: c_int, bottom: c_int) c_int; pub extern fn BN_rand_range(rnd: [*c]BIGNUM, range: [*c]const BIGNUM) c_int; -pub extern fn BN_rand_range_ex(r: [*c]BIGNUM, min_inclusive: u64, max_exclusive: [*c]const BIGNUM) c_int; +pub extern fn BN_rand_range_ex(r: [*c]BIGNUM, min_inclusive: BN_ULONG, max_exclusive: [*c]const BIGNUM) c_int; pub extern fn BN_pseudo_rand_range(rnd: [*c]BIGNUM, range: [*c]const BIGNUM) c_int; +pub extern fn BN_GENCB_new() [*c]BN_GENCB; +pub extern fn BN_GENCB_free(callback: [*c]BN_GENCB) void; pub extern fn BN_GENCB_set(callback: [*c]BN_GENCB, f: ?*const fn (c_int, c_int, [*c]BN_GENCB) callconv(.C) c_int, arg: ?*anyopaque) void; pub extern fn BN_GENCB_call(callback: [*c]BN_GENCB, event: c_int, n: c_int) c_int; +pub extern fn BN_GENCB_get_arg(callback: [*c]const BN_GENCB) ?*anyopaque; pub extern fn BN_generate_prime_ex(ret: [*c]BIGNUM, bits: c_int, safe: c_int, add: [*c]const BIGNUM, rem: [*c]const BIGNUM, cb: [*c]BN_GENCB) c_int; pub const bn_probably_prime: c_int = 0; pub const bn_composite: c_int = 1; pub const bn_non_prime_power_composite: c_int = 2; pub const enum_bn_primality_result_t = c_uint; -pub extern fn BN_enhanced_miller_rabin_primality_test(out_result: [*c]enum_bn_primality_result_t, w: [*c]const BIGNUM, checks: c_int, ctx: ?*BN_CTX, cb: [*c]BN_GENCB) c_int; -pub extern fn BN_primality_test(is_probably_prime: [*c]c_int, candidate: [*c]const BIGNUM, checks: c_int, ctx: ?*BN_CTX, do_trial_division: c_int, cb: [*c]BN_GENCB) c_int; -pub extern fn BN_is_prime_fasttest_ex(candidate: [*c]const BIGNUM, checks: c_int, ctx: ?*BN_CTX, do_trial_division: c_int, cb: [*c]BN_GENCB) c_int; -pub extern fn BN_is_prime_ex(candidate: [*c]const BIGNUM, checks: c_int, ctx: ?*BN_CTX, cb: [*c]BN_GENCB) c_int; -pub extern fn BN_gcd(r: [*c]BIGNUM, a: [*c]const BIGNUM, b: [*c]const BIGNUM, ctx: ?*BN_CTX) c_int; -pub extern fn BN_mod_inverse(out: [*c]BIGNUM, a: [*c]const BIGNUM, n: [*c]const BIGNUM, ctx: ?*BN_CTX) [*c]BIGNUM; -pub extern fn BN_mod_inverse_blinded(out: [*c]BIGNUM, out_no_inverse: [*c]c_int, a: [*c]const BIGNUM, mont: [*c]const BN_MONT_CTX, ctx: ?*BN_CTX) c_int; -pub extern fn BN_mod_inverse_odd(out: [*c]BIGNUM, out_no_inverse: [*c]c_int, a: [*c]const BIGNUM, n: [*c]const BIGNUM, ctx: ?*BN_CTX) c_int; -pub extern fn BN_MONT_CTX_new_for_modulus(mod: [*c]const BIGNUM, ctx: ?*BN_CTX) [*c]BN_MONT_CTX; -pub extern fn BN_MONT_CTX_new_consttime(mod: [*c]const BIGNUM, ctx: ?*BN_CTX) [*c]BN_MONT_CTX; -pub extern fn BN_MONT_CTX_free(mont: [*c]BN_MONT_CTX) void; -pub extern fn BN_MONT_CTX_copy(to: [*c]BN_MONT_CTX, from: [*c]const BN_MONT_CTX) [*c]BN_MONT_CTX; -pub extern fn BN_MONT_CTX_set_locked(pmont: [*c][*c]BN_MONT_CTX, lock: [*c]CRYPTO_MUTEX, mod: [*c]const BIGNUM, bn_ctx: ?*BN_CTX) c_int; -pub extern fn BN_to_montgomery(ret: [*c]BIGNUM, a: [*c]const BIGNUM, mont: [*c]const BN_MONT_CTX, ctx: ?*BN_CTX) c_int; -pub extern fn BN_from_montgomery(ret: [*c]BIGNUM, a: [*c]const BIGNUM, mont: [*c]const BN_MONT_CTX, ctx: ?*BN_CTX) c_int; -pub extern fn BN_mod_mul_montgomery(r: [*c]BIGNUM, a: [*c]const BIGNUM, b: [*c]const BIGNUM, mont: [*c]const BN_MONT_CTX, ctx: ?*BN_CTX) c_int; -pub extern fn BN_exp(r: [*c]BIGNUM, a: [*c]const BIGNUM, p: [*c]const BIGNUM, ctx: ?*BN_CTX) c_int; -pub extern fn BN_mod_exp(r: [*c]BIGNUM, a: [*c]const BIGNUM, p: [*c]const BIGNUM, m: [*c]const BIGNUM, ctx: ?*BN_CTX) c_int; -pub extern fn BN_mod_exp_mont(r: [*c]BIGNUM, a: [*c]const BIGNUM, p: [*c]const BIGNUM, m: [*c]const BIGNUM, ctx: ?*BN_CTX, mont: [*c]const BN_MONT_CTX) c_int; -pub extern fn BN_mod_exp_mont_consttime(rr: [*c]BIGNUM, a: [*c]const BIGNUM, p: [*c]const BIGNUM, m: [*c]const BIGNUM, ctx: ?*BN_CTX, mont: [*c]const BN_MONT_CTX) c_int; -pub extern fn BN_bn2mpi(in: [*c]const BIGNUM, out: [*c]u8) usize; -pub extern fn BN_mpi2bn(in: [*c]const u8, len: usize, out: [*c]BIGNUM) [*c]BIGNUM; -pub extern fn BN_mod_exp_mont_word(r: [*c]BIGNUM, a: u64, p: [*c]const BIGNUM, m: [*c]const BIGNUM, ctx: ?*BN_CTX, mont: [*c]const BN_MONT_CTX) c_int; -pub extern fn BN_mod_exp2_mont(r: [*c]BIGNUM, a1: [*c]const BIGNUM, p1: [*c]const BIGNUM, a2: [*c]const BIGNUM, p2: [*c]const BIGNUM, m: [*c]const BIGNUM, ctx: ?*BN_CTX, mont: [*c]const BN_MONT_CTX) c_int; -pub extern fn BN_MONT_CTX_new() [*c]BN_MONT_CTX; -pub extern fn BN_MONT_CTX_set(mont: [*c]BN_MONT_CTX, mod: [*c]const BIGNUM, ctx: ?*BN_CTX) c_int; -pub extern fn BN_bn2binpad(in: [*c]const BIGNUM, out: [*c]u8, len: c_int) c_int; -pub extern fn BN_num_bits_word(l: u64) c_uint; pub extern fn ASN1_tag2bit(tag: c_int) c_ulong; pub extern fn ASN1_tag2str(tag: c_int) [*c]const u8; -pub const d2i_of_void = *const fn ([*c]?*anyopaque, [*c][*c]const u8, c_long) callconv(.C) ?*anyopaque; -pub const i2d_of_void = *const fn (?*const anyopaque, [*c][*c]u8) callconv(.C) c_int; +pub const d2i_of_void = fn ([*c]?*anyopaque, [*c][*c]const u8, c_long) callconv(.C) ?*anyopaque; +pub const i2d_of_void = fn (?*const anyopaque, [*c][*c]u8) callconv(.C) c_int; pub const ASN1_ITEM_EXP = ASN1_ITEM; pub extern fn ASN1_item_new(it: ?*const ASN1_ITEM) ?*ASN1_VALUE; pub extern fn ASN1_item_free(val: ?*ASN1_VALUE, it: ?*const ASN1_ITEM) void; pub extern fn ASN1_item_d2i(out: [*c]?*ASN1_VALUE, inp: [*c][*c]const u8, len: c_long, it: ?*const ASN1_ITEM) ?*ASN1_VALUE; pub extern fn ASN1_item_i2d(val: ?*ASN1_VALUE, outp: [*c][*c]u8, it: ?*const ASN1_ITEM) c_int; pub extern fn ASN1_item_dup(it: ?*const ASN1_ITEM, x: ?*anyopaque) ?*anyopaque; -pub extern fn ASN1_item_d2i_fp(it: ?*const ASN1_ITEM, in: [*c]FILE, out: ?*anyopaque) ?*anyopaque; +// pub extern fn ASN1_item_d2i_fp(it: ?*const ASN1_ITEM, in: [*c]FILE, out: ?*anyopaque) ?*anyopaque; pub extern fn ASN1_item_d2i_bio(it: ?*const ASN1_ITEM, in: [*c]BIO, out: ?*anyopaque) ?*anyopaque; -pub extern fn ASN1_item_i2d_fp(it: ?*const ASN1_ITEM, out: [*c]FILE, in: ?*anyopaque) c_int; +// pub extern fn ASN1_item_i2d_fp(it: ?*const ASN1_ITEM, out: [*c]FILE, in: ?*anyopaque) c_int; pub extern fn ASN1_item_i2d_bio(it: ?*const ASN1_ITEM, out: [*c]BIO, in: ?*anyopaque) c_int; pub extern fn ASN1_item_unpack(oct: [*c]const ASN1_STRING, it: ?*const ASN1_ITEM) ?*anyopaque; pub extern fn ASN1_item_pack(obj: ?*anyopaque, it: ?*const ASN1_ITEM, out: [*c][*c]ASN1_STRING) [*c]ASN1_STRING; @@ -1788,8 +1644,8 @@ pub extern fn ASN1_STRING_get0_data(str: [*c]const ASN1_STRING) [*c]const u8; pub extern fn ASN1_STRING_data(str: [*c]ASN1_STRING) [*c]u8; pub extern fn ASN1_STRING_length(str: [*c]const ASN1_STRING) c_int; pub extern fn ASN1_STRING_cmp(a: [*c]const ASN1_STRING, b: [*c]const ASN1_STRING) c_int; -pub extern fn ASN1_STRING_set(str: [*c]ASN1_STRING, data: ?[*]const u8, len: c_int) c_int; -pub extern fn ASN1_STRING_set0(str: [*c]ASN1_STRING, data: ?*anyopaque, len: c_int) void; +// pub extern fn ASN1_STRING_set(str: [*c]ASN1_STRING, data: ?*const anyopaque, len: ossl_ssize_t) c_int; +// pub extern fn ASN1_STRING_set0(str: [*c]ASN1_STRING, data: ?*anyopaque, len: c_int) void; pub extern fn ASN1_BMPSTRING_new() [*c]ASN1_BMPSTRING; pub extern fn ASN1_GENERALSTRING_new() [*c]ASN1_GENERALSTRING; pub extern fn ASN1_IA5STRING_new() [*c]ASN1_IA5STRING; @@ -1861,124 +1717,124 @@ pub extern fn c2i_ASN1_BIT_STRING(out: [*c][*c]ASN1_BIT_STRING, inp: [*c][*c]con pub extern fn i2c_ASN1_BIT_STRING(in: [*c]const ASN1_BIT_STRING, outp: [*c][*c]u8) c_int; pub extern const ASN1_BIT_STRING_it: ASN1_ITEM; pub extern fn ASN1_BIT_STRING_num_bytes(str: [*c]const ASN1_BIT_STRING, out: [*c]usize) c_int; -pub extern fn ASN1_BIT_STRING_set(str: [*c]ASN1_BIT_STRING, d: [*c]const u8, length: c_int) c_int; +// pub extern fn ASN1_BIT_STRING_set(str: [*c]ASN1_BIT_STRING, d: [*c]const u8, length: ossl_ssize_t) c_int; pub extern fn ASN1_BIT_STRING_set_bit(str: [*c]ASN1_BIT_STRING, n: c_int, value: c_int) c_int; pub extern fn ASN1_BIT_STRING_get_bit(str: [*c]const ASN1_BIT_STRING, n: c_int) c_int; pub extern fn ASN1_BIT_STRING_check(str: [*c]const ASN1_BIT_STRING, flags: [*c]const u8, flags_len: c_int) c_int; pub const struct_stack_st_ASN1_INTEGER = opaque {}; -pub const stack_ASN1_INTEGER_free_func = ?*const fn ([*c]ASN1_INTEGER) callconv(.C) void; -pub const stack_ASN1_INTEGER_copy_func = ?*const fn ([*c]ASN1_INTEGER) callconv(.C) [*c]ASN1_INTEGER; -pub const stack_ASN1_INTEGER_cmp_func = ?*const fn ([*c][*c]const ASN1_INTEGER, [*c][*c]const ASN1_INTEGER) callconv(.C) c_int; -pub fn sk_ASN1_INTEGER_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_ASN1_INTEGER_free_func = ?*const fn ([*c]ASN1_INTEGER) callconv(.C) void; +pub const sk_ASN1_INTEGER_copy_func = ?*const fn ([*c]ASN1_INTEGER) callconv(.C) [*c]ASN1_INTEGER; +pub const sk_ASN1_INTEGER_cmp_func = ?*const fn ([*c][*c]const ASN1_INTEGER, [*c][*c]const ASN1_INTEGER) callconv(.C) c_int; +pub fn sk_ASN1_INTEGER_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_ASN1_INTEGER_free_func, @alignCast(@import("std").meta.alignment(fn ([*c]ASN1_INTEGER) callconv(.C) void), free_func)).?(@ptrCast([*c]ASN1_INTEGER, @alignCast(@import("std").meta.alignment(ASN1_INTEGER), ptr))); + @as(sk_ASN1_INTEGER_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]ASN1_INTEGER, @ptrCast(@alignCast(ptr)))); } -pub fn sk_ASN1_INTEGER_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_ASN1_INTEGER_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_ASN1_INTEGER_copy_func, @alignCast(@import("std").meta.alignment(fn ([*c]ASN1_INTEGER) callconv(.C) [*c]ASN1_INTEGER), copy_func)).?(@ptrCast([*c]ASN1_INTEGER, @alignCast(@import("std").meta.alignment(ASN1_INTEGER), ptr)))); + return @as(?*anyopaque, @ptrCast(@as(sk_ASN1_INTEGER_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]ASN1_INTEGER, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_ASN1_INTEGER_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_ASN1_INTEGER_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: [*c]const ASN1_INTEGER = @ptrCast([*c]const ASN1_INTEGER, @alignCast(@import("std").meta.alignment(ASN1_INTEGER), a.*)); - var b_ptr: [*c]const ASN1_INTEGER = @ptrCast([*c]const ASN1_INTEGER, @alignCast(@import("std").meta.alignment(ASN1_INTEGER), b.*)); - return @ptrCast(stack_ASN1_INTEGER_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const ASN1_INTEGER, [*c][*c]const ASN1_INTEGER) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: [*c]const ASN1_INTEGER = @as([*c]const ASN1_INTEGER, @ptrCast(@alignCast(a.*))); + var b_ptr: [*c]const ASN1_INTEGER = @as([*c]const ASN1_INTEGER, @ptrCast(@alignCast(b.*))); + return @as(sk_ASN1_INTEGER_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_ASN1_INTEGER_new(arg_comp: stack_ASN1_INTEGER_cmp_func) callconv(.C) ?*struct_stack_st_ASN1_INTEGER { +pub fn sk_ASN1_INTEGER_new(arg_comp: sk_ASN1_INTEGER_cmp_func) callconv(.C) ?*struct_stack_st_ASN1_INTEGER { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_ASN1_INTEGER, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_ASN1_INTEGER, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_ASN1_INTEGER_new_null() callconv(.C) ?*struct_stack_st_ASN1_INTEGER { - return @ptrCast(?*struct_stack_st_ASN1_INTEGER, sk_new_null()); + return @as(?*struct_stack_st_ASN1_INTEGER, @ptrCast(sk_new_null())); } pub fn sk_ASN1_INTEGER_num(arg_sk: ?*const struct_stack_st_ASN1_INTEGER) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_ASN1_INTEGER_zero(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_ASN1_INTEGER_value(arg_sk: ?*const struct_stack_st_ASN1_INTEGER, arg_i: usize) callconv(.C) [*c]ASN1_INTEGER { var sk = arg_sk; var i = arg_i; - return @ptrCast([*c]ASN1_INTEGER, @alignCast(@import("std").meta.alignment(ASN1_INTEGER), sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i))); + return @as([*c]ASN1_INTEGER, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } pub fn sk_ASN1_INTEGER_set(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_i: usize, arg_p: [*c]ASN1_INTEGER) callconv(.C) [*c]ASN1_INTEGER { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast([*c]ASN1_INTEGER, @alignCast(@import("std").meta.alignment(ASN1_INTEGER), sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p)))); + return @as([*c]ASN1_INTEGER, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } pub fn sk_ASN1_INTEGER_free(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_INTEGER_pop_free(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_free_func: stack_ASN1_INTEGER_free_func) callconv(.C) void { +pub fn sk_ASN1_INTEGER_pop_free(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_free_func: sk_ASN1_INTEGER_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_ASN1_INTEGER_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_INTEGER_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_ASN1_INTEGER_insert(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_p: [*c]ASN1_INTEGER, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_ASN1_INTEGER_delete(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_where: usize) callconv(.C) [*c]ASN1_INTEGER { var sk = arg_sk; var where = arg_where; - return @ptrCast([*c]ASN1_INTEGER, @alignCast(@import("std").meta.alignment(ASN1_INTEGER), sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where))); + return @as([*c]ASN1_INTEGER, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } pub fn sk_ASN1_INTEGER_delete_ptr(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_p: [*c]const ASN1_INTEGER) callconv(.C) [*c]ASN1_INTEGER { var sk = arg_sk; var p = arg_p; - return @ptrCast([*c]ASN1_INTEGER, @alignCast(@import("std").meta.alignment(ASN1_INTEGER), sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p)))); + return @as([*c]ASN1_INTEGER, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } pub fn sk_ASN1_INTEGER_find(arg_sk: ?*const struct_stack_st_ASN1_INTEGER, arg_out_index: [*c]usize, arg_p: [*c]const ASN1_INTEGER) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_ASN1_INTEGER_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_ASN1_INTEGER_call_cmp_func); } pub fn sk_ASN1_INTEGER_shift(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.C) [*c]ASN1_INTEGER { var sk = arg_sk; - return @ptrCast([*c]ASN1_INTEGER, @alignCast(@import("std").meta.alignment(ASN1_INTEGER), sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]ASN1_INTEGER, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_ASN1_INTEGER_push(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_p: [*c]ASN1_INTEGER) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_ASN1_INTEGER_pop(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.C) [*c]ASN1_INTEGER { var sk = arg_sk; - return @ptrCast([*c]ASN1_INTEGER, @alignCast(@import("std").meta.alignment(ASN1_INTEGER), sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]ASN1_INTEGER, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_ASN1_INTEGER_dup(arg_sk: ?*const struct_stack_st_ASN1_INTEGER) callconv(.C) ?*struct_stack_st_ASN1_INTEGER { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_ASN1_INTEGER, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_ASN1_INTEGER, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_ASN1_INTEGER_sort(arg_sk: ?*struct_stack_st_ASN1_INTEGER) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_INTEGER_call_cmp_func); } pub fn sk_ASN1_INTEGER_is_sorted(arg_sk: ?*const struct_stack_st_ASN1_INTEGER) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_INTEGER_set_cmp_func(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_comp: stack_ASN1_INTEGER_cmp_func) callconv(.C) stack_ASN1_INTEGER_cmp_func { +pub fn sk_ASN1_INTEGER_set_cmp_func(arg_sk: ?*struct_stack_st_ASN1_INTEGER, arg_comp: sk_ASN1_INTEGER_cmp_func) callconv(.C) sk_ASN1_INTEGER_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_ASN1_INTEGER_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const ASN1_INTEGER, [*c][*c]const ASN1_INTEGER) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_ASN1_INTEGER_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_ASN1_INTEGER_deep_copy(arg_sk: ?*const struct_stack_st_ASN1_INTEGER, arg_copy_func: ?*const fn ([*c]ASN1_INTEGER) callconv(.C) [*c]ASN1_INTEGER, arg_free_func: ?*const fn ([*c]ASN1_INTEGER) callconv(.C) void) callconv(.C) ?*struct_stack_st_ASN1_INTEGER { +pub fn sk_ASN1_INTEGER_deep_copy(arg_sk: ?*const struct_stack_st_ASN1_INTEGER, arg_copy_func: sk_ASN1_INTEGER_copy_func, arg_free_func: sk_ASN1_INTEGER_free_func) callconv(.C) ?*struct_stack_st_ASN1_INTEGER { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_ASN1_INTEGER, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_ASN1_INTEGER_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_ASN1_INTEGER_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_ASN1_INTEGER, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_INTEGER_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_ASN1_INTEGER_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub extern fn ASN1_INTEGER_new() [*c]ASN1_INTEGER; pub extern fn ASN1_INTEGER_free(str: [*c]ASN1_INTEGER) void; @@ -1988,9 +1844,10 @@ pub extern fn i2d_ASN1_INTEGER(in: [*c]const ASN1_INTEGER, outp: [*c][*c]u8) c_i pub extern fn c2i_ASN1_INTEGER(in: [*c][*c]ASN1_INTEGER, outp: [*c][*c]const u8, len: c_long) [*c]ASN1_INTEGER; pub extern fn i2c_ASN1_INTEGER(in: [*c]const ASN1_INTEGER, outp: [*c][*c]u8) c_int; pub extern const ASN1_INTEGER_it: ASN1_ITEM; -pub extern fn ASN1_INTEGER_set(a: [*c]ASN1_INTEGER, v: c_long) c_int; pub extern fn ASN1_INTEGER_set_uint64(out: [*c]ASN1_INTEGER, v: u64) c_int; -pub extern fn ASN1_INTEGER_get(a: [*c]const ASN1_INTEGER) c_long; +pub extern fn ASN1_INTEGER_set_int64(out: [*c]ASN1_INTEGER, v: i64) c_int; +pub extern fn ASN1_INTEGER_get_uint64(out: [*c]u64, a: [*c]const ASN1_INTEGER) c_int; +pub extern fn ASN1_INTEGER_get_int64(out: [*c]i64, a: [*c]const ASN1_INTEGER) c_int; pub extern fn BN_to_ASN1_INTEGER(bn: [*c]const BIGNUM, ai: [*c]ASN1_INTEGER) [*c]ASN1_INTEGER; pub extern fn ASN1_INTEGER_to_BN(ai: [*c]const ASN1_INTEGER, bn: [*c]BIGNUM) [*c]BIGNUM; pub extern fn ASN1_INTEGER_cmp(x: [*c]const ASN1_INTEGER, y: [*c]const ASN1_INTEGER) c_int; @@ -1999,8 +1856,10 @@ pub extern fn ASN1_ENUMERATED_free(str: [*c]ASN1_ENUMERATED) void; pub extern fn d2i_ASN1_ENUMERATED(out: [*c][*c]ASN1_ENUMERATED, inp: [*c][*c]const u8, len: c_long) [*c]ASN1_ENUMERATED; pub extern fn i2d_ASN1_ENUMERATED(in: [*c]const ASN1_ENUMERATED, outp: [*c][*c]u8) c_int; pub extern const ASN1_ENUMERATED_it: ASN1_ITEM; -pub extern fn ASN1_ENUMERATED_set(a: [*c]ASN1_ENUMERATED, v: c_long) c_int; -pub extern fn ASN1_ENUMERATED_get(a: [*c]const ASN1_ENUMERATED) c_long; +pub extern fn ASN1_ENUMERATED_set_uint64(out: [*c]ASN1_ENUMERATED, v: u64) c_int; +pub extern fn ASN1_ENUMERATED_set_int64(out: [*c]ASN1_ENUMERATED, v: i64) c_int; +pub extern fn ASN1_ENUMERATED_get_uint64(out: [*c]u64, a: [*c]const ASN1_ENUMERATED) c_int; +pub extern fn ASN1_ENUMERATED_get_int64(out: [*c]i64, a: [*c]const ASN1_ENUMERATED) c_int; pub extern fn BN_to_ASN1_ENUMERATED(bn: [*c]const BIGNUM, ai: [*c]ASN1_ENUMERATED) [*c]ASN1_ENUMERATED; pub extern fn ASN1_ENUMERATED_to_BN(ai: [*c]const ASN1_ENUMERATED, bn: [*c]BIGNUM) [*c]BIGNUM; pub extern fn ASN1_UTCTIME_new() [*c]ASN1_UTCTIME; @@ -2033,125 +1892,127 @@ pub extern fn ASN1_TIME_adj(s: [*c]ASN1_TIME, t: time_t, offset_day: c_int, offs pub extern fn ASN1_TIME_check(t: [*c]const ASN1_TIME) c_int; pub extern fn ASN1_TIME_to_generalizedtime(t: [*c]const ASN1_TIME, out: [*c][*c]ASN1_GENERALIZEDTIME) [*c]ASN1_GENERALIZEDTIME; pub extern fn ASN1_TIME_set_string(s: [*c]ASN1_TIME, str: [*c]const u8) c_int; +pub extern fn ASN1_TIME_to_time_t(t: [*c]const ASN1_TIME, out: [*c]time_t) c_int; +pub extern fn ASN1_TIME_to_posix(t: [*c]const ASN1_TIME, out: [*c]i64) c_int; pub extern fn ASN1_NULL_new() ?*ASN1_NULL; pub extern fn ASN1_NULL_free(@"null": ?*ASN1_NULL) void; pub extern fn d2i_ASN1_NULL(out: [*c]?*ASN1_NULL, inp: [*c][*c]const u8, len: c_long) ?*ASN1_NULL; pub extern fn i2d_ASN1_NULL(in: ?*const ASN1_NULL, outp: [*c][*c]u8) c_int; pub extern const ASN1_NULL_it: ASN1_ITEM; pub const struct_stack_st_ASN1_OBJECT = opaque {}; -pub const stack_ASN1_OBJECT_free_func = ?*const fn (?*ASN1_OBJECT) callconv(.C) void; -pub const stack_ASN1_OBJECT_copy_func = ?*const fn (?*ASN1_OBJECT) callconv(.C) ?*ASN1_OBJECT; -pub const stack_ASN1_OBJECT_cmp_func = ?*const fn ([*c]?*const ASN1_OBJECT, [*c]?*const ASN1_OBJECT) callconv(.C) c_int; -pub fn sk_ASN1_OBJECT_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_ASN1_OBJECT_free_func = ?*const fn (?*ASN1_OBJECT) callconv(.C) void; +pub const sk_ASN1_OBJECT_copy_func = ?*const fn (?*ASN1_OBJECT) callconv(.C) ?*ASN1_OBJECT; +pub const sk_ASN1_OBJECT_cmp_func = ?*const fn ([*c]?*const ASN1_OBJECT, [*c]?*const ASN1_OBJECT) callconv(.C) c_int; +pub fn sk_ASN1_OBJECT_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_ASN1_OBJECT_free_func, @alignCast(@import("std").meta.alignment(fn (?*ASN1_OBJECT) callconv(.C) void), free_func)).?(@ptrCast(?*ASN1_OBJECT, ptr)); + @as(sk_ASN1_OBJECT_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*ASN1_OBJECT, @ptrCast(ptr))); } -pub fn sk_ASN1_OBJECT_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_ASN1_OBJECT_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_ASN1_OBJECT_copy_func, @alignCast(@import("std").meta.alignment(fn (?*ASN1_OBJECT) callconv(.C) ?*ASN1_OBJECT), copy_func)).?(@ptrCast(?*ASN1_OBJECT, ptr))); + return @as(?*anyopaque, @ptrCast(@as(sk_ASN1_OBJECT_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*ASN1_OBJECT, @ptrCast(ptr))))); } -pub fn sk_ASN1_OBJECT_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_ASN1_OBJECT_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: ?*const ASN1_OBJECT = @ptrCast(?*const ASN1_OBJECT, a.*); - var b_ptr: ?*const ASN1_OBJECT = @ptrCast(?*const ASN1_OBJECT, b.*); - return @ptrCast(stack_ASN1_OBJECT_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const ASN1_OBJECT, [*c]?*const ASN1_OBJECT) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: ?*const ASN1_OBJECT = @as(?*const ASN1_OBJECT, @ptrCast(a.*)); + var b_ptr: ?*const ASN1_OBJECT = @as(?*const ASN1_OBJECT, @ptrCast(b.*)); + return @as(sk_ASN1_OBJECT_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_ASN1_OBJECT_new(arg_comp: stack_ASN1_OBJECT_cmp_func) callconv(.C) ?*struct_stack_st_ASN1_OBJECT { +pub fn sk_ASN1_OBJECT_new(arg_comp: sk_ASN1_OBJECT_cmp_func) callconv(.C) ?*struct_stack_st_ASN1_OBJECT { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_ASN1_OBJECT, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_ASN1_OBJECT, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_ASN1_OBJECT_new_null() callconv(.C) ?*struct_stack_st_ASN1_OBJECT { - return @ptrCast(?*struct_stack_st_ASN1_OBJECT, sk_new_null()); + return @as(?*struct_stack_st_ASN1_OBJECT, @ptrCast(sk_new_null())); } pub fn sk_ASN1_OBJECT_num(arg_sk: ?*const struct_stack_st_ASN1_OBJECT) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_ASN1_OBJECT_zero(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_ASN1_OBJECT_value(arg_sk: ?*const struct_stack_st_ASN1_OBJECT, arg_i: usize) callconv(.C) ?*ASN1_OBJECT { var sk = arg_sk; var i = arg_i; - return @ptrCast(?*ASN1_OBJECT, sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i)); + return @as(?*ASN1_OBJECT, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } pub fn sk_ASN1_OBJECT_set(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_i: usize, arg_p: ?*ASN1_OBJECT) callconv(.C) ?*ASN1_OBJECT { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast(?*ASN1_OBJECT, sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p))); + return @as(?*ASN1_OBJECT, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } pub fn sk_ASN1_OBJECT_free(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_OBJECT_pop_free(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_free_func: stack_ASN1_OBJECT_free_func) callconv(.C) void { +pub fn sk_ASN1_OBJECT_pop_free(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_free_func: sk_ASN1_OBJECT_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_ASN1_OBJECT_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_OBJECT_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_ASN1_OBJECT_insert(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_p: ?*ASN1_OBJECT, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_ASN1_OBJECT_delete(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_where: usize) callconv(.C) ?*ASN1_OBJECT { var sk = arg_sk; var where = arg_where; - return @ptrCast(?*ASN1_OBJECT, sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where)); + return @as(?*ASN1_OBJECT, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } pub fn sk_ASN1_OBJECT_delete_ptr(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_p: ?*const ASN1_OBJECT) callconv(.C) ?*ASN1_OBJECT { var sk = arg_sk; var p = arg_p; - return @ptrCast(?*ASN1_OBJECT, sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p))); + return @as(?*ASN1_OBJECT, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } pub fn sk_ASN1_OBJECT_find(arg_sk: ?*const struct_stack_st_ASN1_OBJECT, arg_out_index: [*c]usize, arg_p: ?*const ASN1_OBJECT) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_ASN1_OBJECT_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_ASN1_OBJECT_call_cmp_func); } pub fn sk_ASN1_OBJECT_shift(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.C) ?*ASN1_OBJECT { var sk = arg_sk; - return @ptrCast(?*ASN1_OBJECT, sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*ASN1_OBJECT, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_ASN1_OBJECT_push(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_p: ?*ASN1_OBJECT) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_ASN1_OBJECT_pop(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.C) ?*ASN1_OBJECT { var sk = arg_sk; - return @ptrCast(?*ASN1_OBJECT, sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*ASN1_OBJECT, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_ASN1_OBJECT_dup(arg_sk: ?*const struct_stack_st_ASN1_OBJECT) callconv(.C) ?*struct_stack_st_ASN1_OBJECT { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_ASN1_OBJECT, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_ASN1_OBJECT, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_ASN1_OBJECT_sort(arg_sk: ?*struct_stack_st_ASN1_OBJECT) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_OBJECT_call_cmp_func); } pub fn sk_ASN1_OBJECT_is_sorted(arg_sk: ?*const struct_stack_st_ASN1_OBJECT) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_OBJECT_set_cmp_func(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_comp: stack_ASN1_OBJECT_cmp_func) callconv(.C) stack_ASN1_OBJECT_cmp_func { +pub fn sk_ASN1_OBJECT_set_cmp_func(arg_sk: ?*struct_stack_st_ASN1_OBJECT, arg_comp: sk_ASN1_OBJECT_cmp_func) callconv(.C) sk_ASN1_OBJECT_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_ASN1_OBJECT_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const ASN1_OBJECT, [*c]?*const ASN1_OBJECT) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_ASN1_OBJECT_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_ASN1_OBJECT_deep_copy(arg_sk: ?*const struct_stack_st_ASN1_OBJECT, arg_copy_func: ?*const fn (?*ASN1_OBJECT) callconv(.C) ?*ASN1_OBJECT, arg_free_func: ?*const fn (?*ASN1_OBJECT) callconv(.C) void) callconv(.C) ?*struct_stack_st_ASN1_OBJECT { +pub fn sk_ASN1_OBJECT_deep_copy(arg_sk: ?*const struct_stack_st_ASN1_OBJECT, arg_copy_func: sk_ASN1_OBJECT_copy_func, arg_free_func: sk_ASN1_OBJECT_free_func) callconv(.C) ?*struct_stack_st_ASN1_OBJECT { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_ASN1_OBJECT, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_ASN1_OBJECT_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_ASN1_OBJECT_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_ASN1_OBJECT, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_OBJECT_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_ASN1_OBJECT_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub extern fn ASN1_OBJECT_create(nid: c_int, data: [*c]const u8, len: c_int, sn: [*c]const u8, ln: [*c]const u8) ?*ASN1_OBJECT; pub extern fn ASN1_OBJECT_free(a: ?*ASN1_OBJECT) void; @@ -2160,119 +2021,119 @@ pub extern fn i2d_ASN1_OBJECT(a: ?*const ASN1_OBJECT, outp: [*c][*c]u8) c_int; pub extern fn c2i_ASN1_OBJECT(out: [*c]?*ASN1_OBJECT, inp: [*c][*c]const u8, len: c_long) ?*ASN1_OBJECT; pub extern const ASN1_OBJECT_it: ASN1_ITEM; pub const struct_stack_st_ASN1_TYPE = opaque {}; -pub const stack_ASN1_TYPE_free_func = ?*const fn ([*c]ASN1_TYPE) callconv(.C) void; -pub const stack_ASN1_TYPE_copy_func = ?*const fn ([*c]ASN1_TYPE) callconv(.C) [*c]ASN1_TYPE; -pub const stack_ASN1_TYPE_cmp_func = ?*const fn ([*c][*c]const ASN1_TYPE, [*c][*c]const ASN1_TYPE) callconv(.C) c_int; -pub fn sk_ASN1_TYPE_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_ASN1_TYPE_free_func = ?*const fn ([*c]ASN1_TYPE) callconv(.C) void; +pub const sk_ASN1_TYPE_copy_func = ?*const fn ([*c]ASN1_TYPE) callconv(.C) [*c]ASN1_TYPE; +pub const sk_ASN1_TYPE_cmp_func = ?*const fn ([*c][*c]const ASN1_TYPE, [*c][*c]const ASN1_TYPE) callconv(.C) c_int; +pub fn sk_ASN1_TYPE_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_ASN1_TYPE_free_func, @alignCast(@import("std").meta.alignment(fn ([*c]ASN1_TYPE) callconv(.C) void), free_func)).?(@ptrCast([*c]ASN1_TYPE, @alignCast(@import("std").meta.alignment(ASN1_TYPE), ptr))); + @as(sk_ASN1_TYPE_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]ASN1_TYPE, @ptrCast(@alignCast(ptr)))); } -pub fn sk_ASN1_TYPE_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_ASN1_TYPE_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_ASN1_TYPE_copy_func, @alignCast(@import("std").meta.alignment(fn ([*c]ASN1_TYPE) callconv(.C) [*c]ASN1_TYPE), copy_func)).?(@ptrCast([*c]ASN1_TYPE, @alignCast(@import("std").meta.alignment(ASN1_TYPE), ptr)))); + return @as(?*anyopaque, @ptrCast(@as(sk_ASN1_TYPE_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]ASN1_TYPE, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_ASN1_TYPE_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_ASN1_TYPE_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: [*c]const ASN1_TYPE = @ptrCast([*c]const ASN1_TYPE, @alignCast(@import("std").meta.alignment(ASN1_TYPE), a.*)); - var b_ptr: [*c]const ASN1_TYPE = @ptrCast([*c]const ASN1_TYPE, @alignCast(@import("std").meta.alignment(ASN1_TYPE), b.*)); - return @ptrCast(stack_ASN1_TYPE_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const ASN1_TYPE, [*c][*c]const ASN1_TYPE) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: [*c]const ASN1_TYPE = @as([*c]const ASN1_TYPE, @ptrCast(@alignCast(a.*))); + var b_ptr: [*c]const ASN1_TYPE = @as([*c]const ASN1_TYPE, @ptrCast(@alignCast(b.*))); + return @as(sk_ASN1_TYPE_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_ASN1_TYPE_new(arg_comp: stack_ASN1_TYPE_cmp_func) callconv(.C) ?*struct_stack_st_ASN1_TYPE { +pub fn sk_ASN1_TYPE_new(arg_comp: sk_ASN1_TYPE_cmp_func) callconv(.C) ?*struct_stack_st_ASN1_TYPE { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_ASN1_TYPE, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_ASN1_TYPE, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_ASN1_TYPE_new_null() callconv(.C) ?*struct_stack_st_ASN1_TYPE { - return @ptrCast(?*struct_stack_st_ASN1_TYPE, sk_new_null()); + return @as(?*struct_stack_st_ASN1_TYPE, @ptrCast(sk_new_null())); } pub fn sk_ASN1_TYPE_num(arg_sk: ?*const struct_stack_st_ASN1_TYPE) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_ASN1_TYPE_zero(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_ASN1_TYPE_value(arg_sk: ?*const struct_stack_st_ASN1_TYPE, arg_i: usize) callconv(.C) [*c]ASN1_TYPE { var sk = arg_sk; var i = arg_i; - return @ptrCast([*c]ASN1_TYPE, @alignCast(@import("std").meta.alignment(ASN1_TYPE), sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i))); + return @as([*c]ASN1_TYPE, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } pub fn sk_ASN1_TYPE_set(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_i: usize, arg_p: [*c]ASN1_TYPE) callconv(.C) [*c]ASN1_TYPE { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast([*c]ASN1_TYPE, @alignCast(@import("std").meta.alignment(ASN1_TYPE), sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p)))); + return @as([*c]ASN1_TYPE, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } pub fn sk_ASN1_TYPE_free(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_TYPE_pop_free(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_free_func: stack_ASN1_TYPE_free_func) callconv(.C) void { +pub fn sk_ASN1_TYPE_pop_free(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_free_func: sk_ASN1_TYPE_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_ASN1_TYPE_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_TYPE_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_ASN1_TYPE_insert(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_p: [*c]ASN1_TYPE, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_ASN1_TYPE_delete(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_where: usize) callconv(.C) [*c]ASN1_TYPE { var sk = arg_sk; var where = arg_where; - return @ptrCast([*c]ASN1_TYPE, @alignCast(@import("std").meta.alignment(ASN1_TYPE), sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where))); + return @as([*c]ASN1_TYPE, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } pub fn sk_ASN1_TYPE_delete_ptr(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_p: [*c]const ASN1_TYPE) callconv(.C) [*c]ASN1_TYPE { var sk = arg_sk; var p = arg_p; - return @ptrCast([*c]ASN1_TYPE, @alignCast(@import("std").meta.alignment(ASN1_TYPE), sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p)))); + return @as([*c]ASN1_TYPE, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } pub fn sk_ASN1_TYPE_find(arg_sk: ?*const struct_stack_st_ASN1_TYPE, arg_out_index: [*c]usize, arg_p: [*c]const ASN1_TYPE) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_ASN1_TYPE_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_ASN1_TYPE_call_cmp_func); } pub fn sk_ASN1_TYPE_shift(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.C) [*c]ASN1_TYPE { var sk = arg_sk; - return @ptrCast([*c]ASN1_TYPE, @alignCast(@import("std").meta.alignment(ASN1_TYPE), sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]ASN1_TYPE, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_ASN1_TYPE_push(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_p: [*c]ASN1_TYPE) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_ASN1_TYPE_pop(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.C) [*c]ASN1_TYPE { var sk = arg_sk; - return @ptrCast([*c]ASN1_TYPE, @alignCast(@import("std").meta.alignment(ASN1_TYPE), sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]ASN1_TYPE, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_ASN1_TYPE_dup(arg_sk: ?*const struct_stack_st_ASN1_TYPE) callconv(.C) ?*struct_stack_st_ASN1_TYPE { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_ASN1_TYPE, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_ASN1_TYPE, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_ASN1_TYPE_sort(arg_sk: ?*struct_stack_st_ASN1_TYPE) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_TYPE_call_cmp_func); } pub fn sk_ASN1_TYPE_is_sorted(arg_sk: ?*const struct_stack_st_ASN1_TYPE) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_ASN1_TYPE_set_cmp_func(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_comp: stack_ASN1_TYPE_cmp_func) callconv(.C) stack_ASN1_TYPE_cmp_func { +pub fn sk_ASN1_TYPE_set_cmp_func(arg_sk: ?*struct_stack_st_ASN1_TYPE, arg_comp: sk_ASN1_TYPE_cmp_func) callconv(.C) sk_ASN1_TYPE_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_ASN1_TYPE_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const ASN1_TYPE, [*c][*c]const ASN1_TYPE) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_ASN1_TYPE_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_ASN1_TYPE_deep_copy(arg_sk: ?*const struct_stack_st_ASN1_TYPE, arg_copy_func: ?*const fn ([*c]ASN1_TYPE) callconv(.C) [*c]ASN1_TYPE, arg_free_func: ?*const fn ([*c]ASN1_TYPE) callconv(.C) void) callconv(.C) ?*struct_stack_st_ASN1_TYPE { +pub fn sk_ASN1_TYPE_deep_copy(arg_sk: ?*const struct_stack_st_ASN1_TYPE, arg_copy_func: sk_ASN1_TYPE_copy_func, arg_free_func: sk_ASN1_TYPE_free_func) callconv(.C) ?*struct_stack_st_ASN1_TYPE { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_ASN1_TYPE, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_ASN1_TYPE_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_ASN1_TYPE_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_ASN1_TYPE, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_ASN1_TYPE_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_ASN1_TYPE_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub extern fn ASN1_TYPE_new() [*c]ASN1_TYPE; pub extern fn ASN1_TYPE_free(a: [*c]ASN1_TYPE) void; @@ -2293,7 +2154,7 @@ pub extern fn ASN1_GENERALIZEDTIME_print(out: [*c]BIO, a: [*c]const ASN1_GENERAL pub extern fn ASN1_TIME_print(out: [*c]BIO, a: [*c]const ASN1_TIME) c_int; pub extern fn ASN1_STRING_print(out: [*c]BIO, str: [*c]const ASN1_STRING) c_int; pub extern fn ASN1_STRING_print_ex(out: [*c]BIO, str: [*c]const ASN1_STRING, flags: c_ulong) c_int; -pub extern fn ASN1_STRING_print_ex_fp(fp: [*c]FILE, str: [*c]const ASN1_STRING, flags: c_ulong) c_int; +// pub extern fn ASN1_STRING_print_ex_fp(fp: [*c]FILE, str: [*c]const ASN1_STRING, flags: c_ulong) c_int; pub extern fn i2a_ASN1_INTEGER(bp: [*c]BIO, a: [*c]const ASN1_INTEGER) c_int; pub extern fn i2a_ASN1_ENUMERATED(bp: [*c]BIO, a: [*c]const ASN1_ENUMERATED) c_int; pub extern fn i2a_ASN1_OBJECT(bp: [*c]BIO, a: ?*const ASN1_OBJECT) c_int; @@ -2303,7 +2164,6 @@ pub extern fn ASN1_get_object(inp: [*c][*c]const u8, out_length: [*c]c_long, out pub extern fn ASN1_put_object(outp: [*c][*c]u8, constructed: c_int, length: c_int, tag: c_int, xclass: c_int) void; pub extern fn ASN1_put_eoc(outp: [*c][*c]u8) c_int; pub extern fn ASN1_object_size(constructed: c_int, length: c_int, tag: c_int) c_int; -pub extern fn ASN1_PRINTABLE_type(s: [*c]const u8, len: c_int) c_int; pub extern fn ASN1_STRING_set_default_mask(mask: c_ulong) void; pub extern fn ASN1_STRING_set_default_mask_asc(p: [*c]const u8) c_int; pub extern fn ASN1_STRING_get_default_mask() c_ulong; @@ -2313,36 +2173,46 @@ pub extern fn ASN1_PRINTABLE_free(str: [*c]ASN1_STRING) void; pub extern fn d2i_ASN1_PRINTABLE(out: [*c][*c]ASN1_STRING, inp: [*c][*c]const u8, len: c_long) [*c]ASN1_STRING; pub extern fn i2d_ASN1_PRINTABLE(in: [*c]const ASN1_STRING, outp: [*c][*c]u8) c_int; pub extern const ASN1_PRINTABLE_it: ASN1_ITEM; -pub extern fn DH_new() [*c]DH; -pub extern fn DH_free(dh: [*c]DH) void; -pub extern fn DH_up_ref(dh: [*c]DH) c_int; -pub extern fn DH_get0_pub_key(dh: [*c]const DH) [*c]const BIGNUM; -pub extern fn DH_get0_priv_key(dh: [*c]const DH) [*c]const BIGNUM; -pub extern fn DH_get0_p(dh: [*c]const DH) [*c]const BIGNUM; -pub extern fn DH_get0_q(dh: [*c]const DH) [*c]const BIGNUM; -pub extern fn DH_get0_g(dh: [*c]const DH) [*c]const BIGNUM; -pub extern fn DH_get0_key(dh: [*c]const DH, out_pub_key: [*c][*c]const BIGNUM, out_priv_key: [*c][*c]const BIGNUM) void; -pub extern fn DH_set0_key(dh: [*c]DH, pub_key: [*c]BIGNUM, priv_key: [*c]BIGNUM) c_int; -pub extern fn DH_get0_pqg(dh: [*c]const DH, out_p: [*c][*c]const BIGNUM, out_q: [*c][*c]const BIGNUM, out_g: [*c][*c]const BIGNUM) void; -pub extern fn DH_set0_pqg(dh: [*c]DH, p: [*c]BIGNUM, q: [*c]BIGNUM, g: [*c]BIGNUM) c_int; -pub extern fn DH_set_length(dh: [*c]DH, priv_length: c_uint) c_int; +pub extern fn ASN1_INTEGER_set(a: [*c]ASN1_INTEGER, v: c_long) c_int; +pub extern fn ASN1_ENUMERATED_set(a: [*c]ASN1_ENUMERATED, v: c_long) c_int; +pub extern fn ASN1_INTEGER_get(a: [*c]const ASN1_INTEGER) c_long; +pub extern fn ASN1_ENUMERATED_get(a: [*c]const ASN1_ENUMERATED) c_long; +pub extern fn DH_new() ?*DH; +pub extern fn DH_free(dh: ?*DH) void; +pub extern fn DH_up_ref(dh: ?*DH) c_int; +pub extern fn DH_bits(dh: ?*const DH) c_uint; +pub extern fn DH_get0_pub_key(dh: ?*const DH) [*c]const BIGNUM; +pub extern fn DH_get0_priv_key(dh: ?*const DH) [*c]const BIGNUM; +pub extern fn DH_get0_p(dh: ?*const DH) [*c]const BIGNUM; +pub extern fn DH_get0_q(dh: ?*const DH) [*c]const BIGNUM; +pub extern fn DH_get0_g(dh: ?*const DH) [*c]const BIGNUM; +pub extern fn DH_get0_key(dh: ?*const DH, out_pub_key: [*c][*c]const BIGNUM, out_priv_key: [*c][*c]const BIGNUM) void; +pub extern fn DH_set0_key(dh: ?*DH, pub_key: [*c]BIGNUM, priv_key: [*c]BIGNUM) c_int; +pub extern fn DH_get0_pqg(dh: ?*const DH, out_p: [*c][*c]const BIGNUM, out_q: [*c][*c]const BIGNUM, out_g: [*c][*c]const BIGNUM) void; +pub extern fn DH_set0_pqg(dh: ?*DH, p: [*c]BIGNUM, q: [*c]BIGNUM, g: [*c]BIGNUM) c_int; +pub extern fn DH_set_length(dh: ?*DH, priv_length: c_uint) c_int; +pub extern fn DH_get_rfc7919_2048() ?*DH; pub extern fn BN_get_rfc3526_prime_1536(ret: [*c]BIGNUM) [*c]BIGNUM; -pub extern fn DH_get_rfc7919_2048() [*c]DH; -pub extern fn DH_generate_parameters_ex(dh: [*c]DH, prime_bits: c_int, generator: c_int, cb: [*c]BN_GENCB) c_int; -pub extern fn DH_generate_key(dh: [*c]DH) c_int; -pub extern fn DH_compute_key_padded(out: [*c]u8, peers_key: [*c]const BIGNUM, dh: [*c]DH) c_int; -pub extern fn DH_compute_key_hashed(dh: [*c]DH, out: [*c]u8, out_len: [*c]usize, max_out_len: usize, peers_key: [*c]const BIGNUM, digest: ?*const EVP_MD) c_int; -pub extern fn DH_size(dh: [*c]const DH) c_int; -pub extern fn DH_num_bits(dh: [*c]const DH) c_uint; -pub extern fn DH_check(dh: [*c]const DH, out_flags: [*c]c_int) c_int; -pub extern fn DH_check_pub_key(dh: [*c]const DH, pub_key: [*c]const BIGNUM, out_flags: [*c]c_int) c_int; -pub extern fn DHparams_dup(dh: [*c]const DH) [*c]DH; -pub extern fn DH_parse_parameters(cbs: [*c]CBS) [*c]DH; -pub extern fn DH_marshal_parameters(cbb: [*c]CBB, dh: [*c]const DH) c_int; -pub extern fn DH_generate_parameters(prime_len: c_int, generator: c_int, callback: ?*const fn (c_int, c_int, ?*anyopaque) callconv(.C) void, cb_arg: ?*anyopaque) [*c]DH; -pub extern fn d2i_DHparams(ret: [*c][*c]DH, inp: [*c][*c]const u8, len: c_long) [*c]DH; -pub extern fn i2d_DHparams(in: [*c]const DH, outp: [*c][*c]u8) c_int; -pub extern fn DH_compute_key(out: [*c]u8, peers_key: [*c]const BIGNUM, dh: [*c]DH) c_int; +pub extern fn BN_get_rfc3526_prime_2048(ret: [*c]BIGNUM) [*c]BIGNUM; +pub extern fn BN_get_rfc3526_prime_3072(ret: [*c]BIGNUM) [*c]BIGNUM; +pub extern fn BN_get_rfc3526_prime_4096(ret: [*c]BIGNUM) [*c]BIGNUM; +pub extern fn BN_get_rfc3526_prime_6144(ret: [*c]BIGNUM) [*c]BIGNUM; +pub extern fn BN_get_rfc3526_prime_8192(ret: [*c]BIGNUM) [*c]BIGNUM; +pub extern fn DH_generate_parameters_ex(dh: ?*DH, prime_bits: c_int, generator: c_int, cb: [*c]BN_GENCB) c_int; +pub extern fn DH_generate_key(dh: ?*DH) c_int; +pub extern fn DH_compute_key_padded(out: [*c]u8, peers_key: [*c]const BIGNUM, dh: ?*DH) c_int; +pub extern fn DH_compute_key_hashed(dh: ?*DH, out: [*c]u8, out_len: [*c]usize, max_out_len: usize, peers_key: [*c]const BIGNUM, digest: ?*const EVP_MD) c_int; +pub extern fn DH_size(dh: ?*const DH) c_int; +pub extern fn DH_num_bits(dh: ?*const DH) c_uint; +pub extern fn DH_check(dh: ?*const DH, out_flags: [*c]c_int) c_int; +pub extern fn DH_check_pub_key(dh: ?*const DH, pub_key: [*c]const BIGNUM, out_flags: [*c]c_int) c_int; +pub extern fn DHparams_dup(dh: ?*const DH) ?*DH; +pub extern fn DH_parse_parameters(cbs: [*c]CBS) ?*DH; +pub extern fn DH_marshal_parameters(cbb: ?*CBB, dh: ?*const DH) c_int; +pub extern fn DH_generate_parameters(prime_len: c_int, generator: c_int, callback: ?*const fn (c_int, c_int, ?*anyopaque) callconv(.C) void, cb_arg: ?*anyopaque) ?*DH; +pub extern fn d2i_DHparams(ret: [*c]?*DH, inp: [*c][*c]const u8, len: c_long) ?*DH; +pub extern fn i2d_DHparams(in: ?*const DH, outp: [*c][*c]u8) c_int; +pub extern fn DH_compute_key(out: [*c]u8, peers_key: [*c]const BIGNUM, dh: ?*DH) c_int; pub extern fn ENGINE_new() ?*ENGINE; pub extern fn ENGINE_free(engine: ?*ENGINE) c_int; pub extern fn ENGINE_set_RSA_method(engine: ?*ENGINE, method: [*c]const RSA_METHOD, method_size: usize) c_int; @@ -2354,6 +2224,7 @@ pub extern fn METHOD_unref(method: ?*anyopaque) void; pub extern fn DSA_new() [*c]DSA; pub extern fn DSA_free(dsa: [*c]DSA) void; pub extern fn DSA_up_ref(dsa: [*c]DSA) c_int; +pub extern fn DSA_bits(dsa: [*c]const DSA) c_uint; pub extern fn DSA_get0_pub_key(dsa: [*c]const DSA) [*c]const BIGNUM; pub extern fn DSA_get0_priv_key(dsa: [*c]const DSA) [*c]const BIGNUM; pub extern fn DSA_get0_p(dsa: [*c]const DSA) [*c]const BIGNUM; @@ -2378,15 +2249,15 @@ pub extern fn DSA_verify(@"type": c_int, digest: [*c]const u8, digest_len: usize pub extern fn DSA_check_signature(out_valid: [*c]c_int, digest: [*c]const u8, digest_len: usize, sig: [*c]const u8, sig_len: usize, dsa: [*c]const DSA) c_int; pub extern fn DSA_size(dsa: [*c]const DSA) c_int; pub extern fn DSA_SIG_parse(cbs: [*c]CBS) [*c]DSA_SIG; -pub extern fn DSA_SIG_marshal(cbb: [*c]CBB, sig: [*c]const DSA_SIG) c_int; +pub extern fn DSA_SIG_marshal(cbb: ?*CBB, sig: [*c]const DSA_SIG) c_int; pub extern fn DSA_parse_public_key(cbs: [*c]CBS) [*c]DSA; -pub extern fn DSA_marshal_public_key(cbb: [*c]CBB, dsa: [*c]const DSA) c_int; +pub extern fn DSA_marshal_public_key(cbb: ?*CBB, dsa: [*c]const DSA) c_int; pub extern fn DSA_parse_private_key(cbs: [*c]CBS) [*c]DSA; -pub extern fn DSA_marshal_private_key(cbb: [*c]CBB, dsa: [*c]const DSA) c_int; +pub extern fn DSA_marshal_private_key(cbb: ?*CBB, dsa: [*c]const DSA) c_int; pub extern fn DSA_parse_parameters(cbs: [*c]CBS) [*c]DSA; -pub extern fn DSA_marshal_parameters(cbb: [*c]CBB, dsa: [*c]const DSA) c_int; -pub extern fn DSA_dup_DH(dsa: [*c]const DSA) [*c]DH; -pub extern fn DSA_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?CRYPTO_EX_dup, free_func: ?CRYPTO_EX_free) c_int; +pub extern fn DSA_marshal_parameters(cbb: ?*CBB, dsa: [*c]const DSA) c_int; +pub extern fn DSA_dup_DH(dsa: [*c]const DSA) ?*DH; +pub extern fn DSA_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?*const CRYPTO_EX_dup, free_func: ?*const CRYPTO_EX_free) c_int; pub extern fn DSA_set_ex_data(dsa: [*c]DSA, idx: c_int, arg: ?*anyopaque) c_int; pub extern fn DSA_get_ex_data(dsa: [*c]const DSA, idx: c_int) ?*anyopaque; pub extern fn d2i_DSA_SIG(out_sig: [*c][*c]DSA_SIG, inp: [*c][*c]const u8, len: c_long) [*c]DSA_SIG; @@ -2427,8 +2298,9 @@ pub extern fn EC_POINT_get_affine_coordinates_GFp(group: ?*const EC_GROUP, point pub extern fn EC_POINT_get_affine_coordinates(group: ?*const EC_GROUP, point: ?*const EC_POINT, x: [*c]BIGNUM, y: [*c]BIGNUM, ctx: ?*BN_CTX) c_int; pub extern fn EC_POINT_set_affine_coordinates_GFp(group: ?*const EC_GROUP, point: ?*EC_POINT, x: [*c]const BIGNUM, y: [*c]const BIGNUM, ctx: ?*BN_CTX) c_int; pub extern fn EC_POINT_set_affine_coordinates(group: ?*const EC_GROUP, point: ?*EC_POINT, x: [*c]const BIGNUM, y: [*c]const BIGNUM, ctx: ?*BN_CTX) c_int; -pub extern fn EC_POINT_point2oct(group: ?*const EC_GROUP, point: ?*const EC_POINT, form: point_conversion_form_t, buf: [*c]u8, len: usize, ctx: ?*BN_CTX) usize; -pub extern fn EC_POINT_point2cbb(out: [*c]CBB, group: ?*const EC_GROUP, point: ?*const EC_POINT, form: point_conversion_form_t, ctx: ?*BN_CTX) c_int; +pub extern fn EC_POINT_point2oct(group: ?*const EC_GROUP, point: ?*const EC_POINT, form: point_conversion_form_t, buf: [*c]u8, max_out: usize, ctx: ?*BN_CTX) usize; +pub extern fn EC_POINT_point2buf(group: ?*const EC_GROUP, point: ?*const EC_POINT, form: point_conversion_form_t, out_buf: [*c][*c]u8, ctx: ?*BN_CTX) usize; +pub extern fn EC_POINT_point2cbb(out: ?*CBB, group: ?*const EC_GROUP, point: ?*const EC_POINT, form: point_conversion_form_t, ctx: ?*BN_CTX) c_int; pub extern fn EC_POINT_oct2point(group: ?*const EC_GROUP, point: ?*EC_POINT, buf: [*c]const u8, len: usize, ctx: ?*BN_CTX) c_int; pub extern fn EC_POINT_set_compressed_coordinates_GFp(group: ?*const EC_GROUP, point: ?*EC_POINT, x: [*c]const BIGNUM, y_bit: c_int, ctx: ?*BN_CTX) c_int; pub extern fn EC_POINT_add(group: ?*const EC_GROUP, r: ?*EC_POINT, a: ?*const EC_POINT, b: ?*const EC_POINT, ctx: ?*BN_CTX) c_int; @@ -2471,16 +2343,20 @@ pub extern fn EC_KEY_set_conv_form(key: ?*EC_KEY, cform: point_conversion_form_t pub extern fn EC_KEY_check_key(key: ?*const EC_KEY) c_int; pub extern fn EC_KEY_check_fips(key: ?*const EC_KEY) c_int; pub extern fn EC_KEY_set_public_key_affine_coordinates(key: ?*EC_KEY, x: [*c]const BIGNUM, y: [*c]const BIGNUM) c_int; +pub extern fn EC_KEY_oct2key(key: ?*EC_KEY, in: [*c]const u8, len: usize, ctx: ?*BN_CTX) c_int; pub extern fn EC_KEY_key2buf(key: ?*const EC_KEY, form: point_conversion_form_t, out_buf: [*c][*c]u8, ctx: ?*BN_CTX) usize; +pub extern fn EC_KEY_oct2priv(key: ?*EC_KEY, in: [*c]const u8, len: usize) c_int; +pub extern fn EC_KEY_priv2oct(key: ?*const EC_KEY, out: [*c]u8, max_out: usize) usize; +pub extern fn EC_KEY_priv2buf(key: ?*const EC_KEY, out_buf: [*c][*c]u8) usize; pub extern fn EC_KEY_generate_key(key: ?*EC_KEY) c_int; pub extern fn EC_KEY_generate_key_fips(key: ?*EC_KEY) c_int; pub extern fn EC_KEY_derive_from_secret(group: ?*const EC_GROUP, secret: [*c]const u8, secret_len: usize) ?*EC_KEY; pub extern fn EC_KEY_parse_private_key(cbs: [*c]CBS, group: ?*const EC_GROUP) ?*EC_KEY; -pub extern fn EC_KEY_marshal_private_key(cbb: [*c]CBB, key: ?*const EC_KEY, enc_flags: c_uint) c_int; +pub extern fn EC_KEY_marshal_private_key(cbb: ?*CBB, key: ?*const EC_KEY, enc_flags: c_uint) c_int; pub extern fn EC_KEY_parse_curve_name(cbs: [*c]CBS) ?*EC_GROUP; -pub extern fn EC_KEY_marshal_curve_name(cbb: [*c]CBB, group: ?*const EC_GROUP) c_int; +pub extern fn EC_KEY_marshal_curve_name(cbb: ?*CBB, group: ?*const EC_GROUP) c_int; pub extern fn EC_KEY_parse_parameters(cbs: [*c]CBS) ?*EC_GROUP; -pub extern fn EC_KEY_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?CRYPTO_EX_dup, free_func: ?CRYPTO_EX_free) c_int; +pub extern fn EC_KEY_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?*const CRYPTO_EX_dup, free_func: ?*const CRYPTO_EX_free) c_int; pub extern fn EC_KEY_set_ex_data(r: ?*EC_KEY, idx: c_int, arg: ?*anyopaque) c_int; pub extern fn EC_KEY_get_ex_data(r: ?*const EC_KEY, idx: c_int) ?*anyopaque; pub extern fn EC_KEY_set_asn1_flag(key: ?*EC_KEY, flag: c_int) void; @@ -2505,85 +2381,89 @@ pub extern fn ECDSA_do_sign(digest: [*c]const u8, digest_len: usize, key: ?*cons pub extern fn ECDSA_do_verify(digest: [*c]const u8, digest_len: usize, sig: [*c]const ECDSA_SIG, key: ?*const EC_KEY) c_int; pub extern fn ECDSA_SIG_parse(cbs: [*c]CBS) [*c]ECDSA_SIG; pub extern fn ECDSA_SIG_from_bytes(in: [*c]const u8, in_len: usize) [*c]ECDSA_SIG; -pub extern fn ECDSA_SIG_marshal(cbb: [*c]CBB, sig: [*c]const ECDSA_SIG) c_int; +pub extern fn ECDSA_SIG_marshal(cbb: ?*CBB, sig: [*c]const ECDSA_SIG) c_int; pub extern fn ECDSA_SIG_to_bytes(out_bytes: [*c][*c]u8, out_len: [*c]usize, sig: [*c]const ECDSA_SIG) c_int; pub extern fn ECDSA_SIG_max_len(order_len: usize) usize; pub extern fn ECDSA_sign_with_nonce_and_leak_private_key_for_testing(digest: [*c]const u8, digest_len: usize, eckey: ?*const EC_KEY, nonce: [*c]const u8, nonce_len: usize) [*c]ECDSA_SIG; pub extern fn d2i_ECDSA_SIG(out: [*c][*c]ECDSA_SIG, inp: [*c][*c]const u8, len: c_long) [*c]ECDSA_SIG; pub extern fn i2d_ECDSA_SIG(sig: [*c]const ECDSA_SIG, outp: [*c][*c]u8) c_int; -pub extern fn CBS_init(cbs: [*c]CBS, data: [*c]const u8, len: usize) void; -pub extern fn CBS_skip(cbs: [*c]CBS, len: usize) c_int; -pub extern fn CBS_data(cbs: [*c]const CBS) [*c]const u8; -pub extern fn CBS_len(cbs: [*c]const CBS) usize; -pub extern fn CBS_stow(cbs: [*c]const CBS, out_ptr: [*c][*c]u8, out_len: [*c]usize) c_int; -pub extern fn CBS_strdup(cbs: [*c]const CBS, out_ptr: [*c][*c]u8) c_int; -pub extern fn CBS_contains_zero_byte(cbs: [*c]const CBS) c_int; -pub extern fn CBS_mem_equal(cbs: [*c]const CBS, data: [*c]const u8, len: usize) c_int; -pub extern fn CBS_get_u8(cbs: [*c]CBS, out: [*c]u8) c_int; -pub extern fn CBS_get_u16(cbs: [*c]CBS, out: [*c]u16) c_int; -pub extern fn CBS_get_u16le(cbs: [*c]CBS, out: [*c]u16) c_int; -pub extern fn CBS_get_u24(cbs: [*c]CBS, out: [*c]u32) c_int; -pub extern fn CBS_get_u32(cbs: [*c]CBS, out: [*c]u32) c_int; -pub extern fn CBS_get_u32le(cbs: [*c]CBS, out: [*c]u32) c_int; -pub extern fn CBS_get_u64(cbs: [*c]CBS, out: [*c]u64) c_int; -pub extern fn CBS_get_u64le(cbs: [*c]CBS, out: [*c]u64) c_int; -pub extern fn CBS_get_last_u8(cbs: [*c]CBS, out: [*c]u8) c_int; -pub extern fn CBS_get_bytes(cbs: [*c]CBS, out: [*c]CBS, len: usize) c_int; -pub extern fn CBS_copy_bytes(cbs: [*c]CBS, out: [*c]u8, len: usize) c_int; -pub extern fn CBS_get_u8_length_prefixed(cbs: [*c]CBS, out: [*c]CBS) c_int; -pub extern fn CBS_get_u16_length_prefixed(cbs: [*c]CBS, out: [*c]CBS) c_int; -pub extern fn CBS_get_u24_length_prefixed(cbs: [*c]CBS, out: [*c]CBS) c_int; -pub extern fn CBS_get_until_first(cbs: [*c]CBS, out: [*c]CBS, c: u8) c_int; -pub extern fn CBS_get_asn1(cbs: [*c]CBS, out: [*c]CBS, tag_value: c_uint) c_int; -pub extern fn CBS_get_asn1_element(cbs: [*c]CBS, out: [*c]CBS, tag_value: c_uint) c_int; -pub extern fn CBS_peek_asn1_tag(cbs: [*c]const CBS, tag_value: c_uint) c_int; -pub extern fn CBS_get_any_asn1(cbs: [*c]CBS, out: [*c]CBS, out_tag: [*c]c_uint) c_int; -pub extern fn CBS_get_any_asn1_element(cbs: [*c]CBS, out: [*c]CBS, out_tag: [*c]c_uint, out_header_len: [*c]usize) c_int; -pub extern fn CBS_get_any_ber_asn1_element(cbs: [*c]CBS, out: [*c]CBS, out_tag: [*c]c_uint, out_header_len: [*c]usize, out_ber_found: [*c]c_int) c_int; -pub extern fn CBS_get_asn1_uint64(cbs: [*c]CBS, out: [*c]u64) c_int; -pub extern fn CBS_get_asn1_int64(cbs: [*c]CBS, out: [*c]i64) c_int; -pub extern fn CBS_get_asn1_bool(cbs: [*c]CBS, out: [*c]c_int) c_int; -pub extern fn CBS_get_optional_asn1(cbs: [*c]CBS, out: [*c]CBS, out_present: [*c]c_int, tag: c_uint) c_int; -pub extern fn CBS_get_optional_asn1_octet_string(cbs: [*c]CBS, out: [*c]CBS, out_present: [*c]c_int, tag: c_uint) c_int; -pub extern fn CBS_get_optional_asn1_uint64(cbs: [*c]CBS, out: [*c]u64, tag: c_uint, default_value: u64) c_int; -pub extern fn CBS_get_optional_asn1_bool(cbs: [*c]CBS, out: [*c]c_int, tag: c_uint, default_value: c_int) c_int; -pub extern fn CBS_is_valid_asn1_bitstring(cbs: [*c]const CBS) c_int; -pub extern fn CBS_asn1_bitstring_has_bit(cbs: [*c]const CBS, bit: c_uint) c_int; -pub extern fn CBS_is_valid_asn1_integer(cbs: [*c]const CBS, out_is_negative: [*c]c_int) c_int; -pub extern fn CBS_is_unsigned_asn1_integer(cbs: [*c]const CBS) c_int; -pub extern fn CBS_asn1_oid_to_text(cbs: [*c]const CBS) [*c]u8; -pub extern fn CBB_zero(cbb: [*c]CBB) void; -pub extern fn CBB_init(cbb: [*c]CBB, initial_capacity: usize) c_int; -pub extern fn CBB_init_fixed(cbb: [*c]CBB, buf: [*c]u8, len: usize) c_int; -pub extern fn CBB_cleanup(cbb: [*c]CBB) void; -pub extern fn CBB_finish(cbb: [*c]CBB, out_data: [*c][*c]u8, out_len: [*c]usize) c_int; -pub extern fn CBB_flush(cbb: [*c]CBB) c_int; -pub extern fn CBB_data(cbb: [*c]const CBB) [*c]const u8; -pub extern fn CBB_len(cbb: [*c]const CBB) usize; -pub extern fn CBB_add_u8_length_prefixed(cbb: [*c]CBB, out_contents: [*c]CBB) c_int; -pub extern fn CBB_add_u16_length_prefixed(cbb: [*c]CBB, out_contents: [*c]CBB) c_int; -pub extern fn CBB_add_u24_length_prefixed(cbb: [*c]CBB, out_contents: [*c]CBB) c_int; -pub extern fn CBB_add_asn1(cbb: [*c]CBB, out_contents: [*c]CBB, tag: c_uint) c_int; -pub extern fn CBB_add_bytes(cbb: [*c]CBB, data: [*c]const u8, len: usize) c_int; -pub extern fn CBB_add_zeros(cbb: [*c]CBB, len: usize) c_int; -pub extern fn CBB_add_space(cbb: [*c]CBB, out_data: [*c][*c]u8, len: usize) c_int; -pub extern fn CBB_reserve(cbb: [*c]CBB, out_data: [*c][*c]u8, len: usize) c_int; -pub extern fn CBB_did_write(cbb: [*c]CBB, len: usize) c_int; -pub extern fn CBB_add_u8(cbb: [*c]CBB, value: u8) c_int; -pub extern fn CBB_add_u16(cbb: [*c]CBB, value: u16) c_int; -pub extern fn CBB_add_u16le(cbb: [*c]CBB, value: u16) c_int; -pub extern fn CBB_add_u24(cbb: [*c]CBB, value: u32) c_int; -pub extern fn CBB_add_u32(cbb: [*c]CBB, value: u32) c_int; -pub extern fn CBB_add_u32le(cbb: [*c]CBB, value: u32) c_int; -pub extern fn CBB_add_u64(cbb: [*c]CBB, value: u64) c_int; -pub extern fn CBB_add_u64le(cbb: [*c]CBB, value: u64) c_int; -pub extern fn CBB_discard_child(cbb: [*c]CBB) void; -pub extern fn CBB_add_asn1_uint64(cbb: [*c]CBB, value: u64) c_int; -pub extern fn CBB_add_asn1_int64(cbb: [*c]CBB, value: i64) c_int; -pub extern fn CBB_add_asn1_octet_string(cbb: [*c]CBB, data: [*c]const u8, data_len: usize) c_int; -pub extern fn CBB_add_asn1_bool(cbb: [*c]CBB, value: c_int) c_int; -pub extern fn CBB_add_asn1_oid_from_text(cbb: [*c]CBB, text: [*c]const u8, len: usize) c_int; -pub extern fn CBB_flush_asn1_set_of(cbb: [*c]CBB) c_int; +// pub extern fn CBS_init(cbs: [*c]CBS, data: [*c]const u8, len: usize) void; +// pub extern fn CBS_skip(cbs: [*c]CBS, len: usize) c_int; +// pub extern fn CBS_data(cbs: [*c]const CBS) [*c]const u8; +// pub extern fn CBS_len(cbs: [*c]const CBS) usize; +// pub extern fn CBS_stow(cbs: [*c]const CBS, out_ptr: [*c][*c]u8, out_len: [*c]usize) c_int; +// pub extern fn CBS_strdup(cbs: [*c]const CBS, out_ptr: [*c][*c]u8) c_int; +// pub extern fn CBS_contains_zero_byte(cbs: [*c]const CBS) c_int; +// pub extern fn CBS_mem_equal(cbs: [*c]const CBS, data: [*c]const u8, len: usize) c_int; +// pub extern fn CBS_get_u8(cbs: [*c]CBS, out: [*c]u8) c_int; +// pub extern fn CBS_get_u16(cbs: [*c]CBS, out: [*c]u16) c_int; +// pub extern fn CBS_get_u16le(cbs: [*c]CBS, out: [*c]u16) c_int; +// pub extern fn CBS_get_u24(cbs: [*c]CBS, out: [*c]u32) c_int; +// pub extern fn CBS_get_u32(cbs: [*c]CBS, out: [*c]u32) c_int; +// pub extern fn CBS_get_u32le(cbs: [*c]CBS, out: [*c]u32) c_int; +// pub extern fn CBS_get_u64(cbs: [*c]CBS, out: [*c]u64) c_int; +// pub extern fn CBS_get_u64le(cbs: [*c]CBS, out: [*c]u64) c_int; +// pub extern fn CBS_get_last_u8(cbs: [*c]CBS, out: [*c]u8) c_int; +// pub extern fn CBS_get_bytes(cbs: [*c]CBS, out: [*c]CBS, len: usize) c_int; +// pub extern fn CBS_copy_bytes(cbs: [*c]CBS, out: [*c]u8, len: usize) c_int; +// pub extern fn CBS_get_u8_length_prefixed(cbs: [*c]CBS, out: [*c]CBS) c_int; +// pub extern fn CBS_get_u16_length_prefixed(cbs: [*c]CBS, out: [*c]CBS) c_int; +// pub extern fn CBS_get_u24_length_prefixed(cbs: [*c]CBS, out: [*c]CBS) c_int; +// pub extern fn CBS_get_until_first(cbs: [*c]CBS, out: [*c]CBS, c: u8) c_int; +// pub extern fn CBS_get_asn1(cbs: [*c]CBS, out: [*c]CBS, tag_value: CBS_ASN1_TAG) c_int; +// pub extern fn CBS_get_asn1_element(cbs: [*c]CBS, out: [*c]CBS, tag_value: CBS_ASN1_TAG) c_int; +// pub extern fn CBS_peek_asn1_tag(cbs: [*c]const CBS, tag_value: CBS_ASN1_TAG) c_int; +// pub extern fn CBS_get_any_asn1(cbs: [*c]CBS, out: [*c]CBS, out_tag: [*c]CBS_ASN1_TAG) c_int; +// pub extern fn CBS_get_any_asn1_element(cbs: [*c]CBS, out: [*c]CBS, out_tag: [*c]CBS_ASN1_TAG, out_header_len: [*c]usize) c_int; +// pub extern fn CBS_get_any_ber_asn1_element(cbs: [*c]CBS, out: [*c]CBS, out_tag: [*c]CBS_ASN1_TAG, out_header_len: [*c]usize, out_ber_found: [*c]c_int, out_indefinite: [*c]c_int) c_int; +// pub extern fn CBS_get_asn1_uint64(cbs: [*c]CBS, out: [*c]u64) c_int; +// pub extern fn CBS_get_asn1_int64(cbs: [*c]CBS, out: [*c]i64) c_int; +// pub extern fn CBS_get_asn1_bool(cbs: [*c]CBS, out: [*c]c_int) c_int; +// pub extern fn CBS_get_optional_asn1(cbs: [*c]CBS, out: [*c]CBS, out_present: [*c]c_int, tag: CBS_ASN1_TAG) c_int; +// pub extern fn CBS_get_optional_asn1_octet_string(cbs: [*c]CBS, out: [*c]CBS, out_present: [*c]c_int, tag: CBS_ASN1_TAG) c_int; +// pub extern fn CBS_get_optional_asn1_uint64(cbs: [*c]CBS, out: [*c]u64, tag: CBS_ASN1_TAG, default_value: u64) c_int; +// pub extern fn CBS_get_optional_asn1_bool(cbs: [*c]CBS, out: [*c]c_int, tag: CBS_ASN1_TAG, default_value: c_int) c_int; +// pub extern fn CBS_is_valid_asn1_bitstring(cbs: [*c]const CBS) c_int; +// pub extern fn CBS_asn1_bitstring_has_bit(cbs: [*c]const CBS, bit: c_uint) c_int; +// pub extern fn CBS_is_valid_asn1_integer(cbs: [*c]const CBS, out_is_negative: [*c]c_int) c_int; +// pub extern fn CBS_is_unsigned_asn1_integer(cbs: [*c]const CBS) c_int; +// pub extern fn CBS_asn1_oid_to_text(cbs: [*c]const CBS) [*c]u8; +// pub extern fn CBS_parse_generalized_time(cbs: [*c]const CBS, out_tm: [*c]struct_tm, allow_timezone_offset: c_int) c_int; +// pub extern fn CBS_parse_utc_time(cbs: [*c]const CBS, out_tm: [*c]struct_tm, allow_timezone_offset: c_int) c_int; +// pub extern fn CBB_zero(cbb: ?*CBB) void; +// pub extern fn CBB_init(cbb: ?*CBB, initial_capacity: usize) c_int; +// pub extern fn CBB_init_fixed(cbb: ?*CBB, buf: [*c]u8, len: usize) c_int; +// pub extern fn CBB_cleanup(cbb: ?*CBB) void; +// pub extern fn CBB_finish(cbb: ?*CBB, out_data: [*c][*c]u8, out_len: [*c]usize) c_int; +// pub extern fn CBB_flush(cbb: ?*CBB) c_int; +// pub extern fn CBB_data(cbb: ?*const CBB) [*c]const u8; +// pub extern fn CBB_len(cbb: ?*const CBB) usize; +// pub extern fn CBB_add_u8_length_prefixed(cbb: ?*CBB, out_contents: ?*CBB) c_int; +// pub extern fn CBB_add_u16_length_prefixed(cbb: ?*CBB, out_contents: ?*CBB) c_int; +// pub extern fn CBB_add_u24_length_prefixed(cbb: ?*CBB, out_contents: ?*CBB) c_int; +// pub extern fn CBB_add_asn1(cbb: ?*CBB, out_contents: ?*CBB, tag: CBS_ASN1_TAG) c_int; +// pub extern fn CBB_add_bytes(cbb: ?*CBB, data: [*c]const u8, len: usize) c_int; +// pub extern fn CBB_add_zeros(cbb: ?*CBB, len: usize) c_int; +// pub extern fn CBB_add_space(cbb: ?*CBB, out_data: [*c][*c]u8, len: usize) c_int; +// pub extern fn CBB_reserve(cbb: ?*CBB, out_data: [*c][*c]u8, len: usize) c_int; +// pub extern fn CBB_did_write(cbb: ?*CBB, len: usize) c_int; +// pub extern fn CBB_add_u8(cbb: ?*CBB, value: u8) c_int; +// pub extern fn CBB_add_u16(cbb: ?*CBB, value: u16) c_int; +// pub extern fn CBB_add_u16le(cbb: ?*CBB, value: u16) c_int; +// pub extern fn CBB_add_u24(cbb: ?*CBB, value: u32) c_int; +// pub extern fn CBB_add_u32(cbb: ?*CBB, value: u32) c_int; +// pub extern fn CBB_add_u32le(cbb: ?*CBB, value: u32) c_int; +// pub extern fn CBB_add_u64(cbb: ?*CBB, value: u64) c_int; +// pub extern fn CBB_add_u64le(cbb: ?*CBB, value: u64) c_int; +// pub extern fn CBB_discard_child(cbb: ?*CBB) void; +// pub extern fn CBB_add_asn1_uint64(cbb: ?*CBB, value: u64) c_int; +// pub extern fn CBB_add_asn1_uint64_with_tag(cbb: ?*CBB, value: u64, tag: CBS_ASN1_TAG) c_int; +// pub extern fn CBB_add_asn1_int64(cbb: ?*CBB, value: i64) c_int; +// pub extern fn CBB_add_asn1_int64_with_tag(cbb: ?*CBB, value: i64, tag: CBS_ASN1_TAG) c_int; +// pub extern fn CBB_add_asn1_octet_string(cbb: ?*CBB, data: [*c]const u8, data_len: usize) c_int; +// pub extern fn CBB_add_asn1_bool(cbb: ?*CBB, value: c_int) c_int; +// pub extern fn CBB_add_asn1_oid_from_text(cbb: ?*CBB, text: [*c]const u8, len: usize) c_int; +// pub extern fn CBB_flush_asn1_set_of(cbb: ?*CBB) c_int; pub extern fn OBJ_dup(obj: ?*const ASN1_OBJECT) ?*ASN1_OBJECT; pub extern fn OBJ_cmp(a: ?*const ASN1_OBJECT, b: ?*const ASN1_OBJECT) c_int; pub extern fn OBJ_get0_data(obj: ?*const ASN1_OBJECT) [*c]const u8; @@ -2596,7 +2476,7 @@ pub extern fn OBJ_txt2nid(s: [*c]const u8) c_int; pub extern fn OBJ_nid2obj(nid: c_int) ?*ASN1_OBJECT; pub extern fn OBJ_nid2sn(nid: c_int) [*c]const u8; pub extern fn OBJ_nid2ln(nid: c_int) [*c]const u8; -pub extern fn OBJ_nid2cbb(out: [*c]CBB, nid: c_int) c_int; +pub extern fn OBJ_nid2cbb(out: ?*CBB, nid: c_int) c_int; pub extern fn OBJ_txt2obj(s: [*c]const u8, dont_search_names: c_int) ?*ASN1_OBJECT; pub extern fn OBJ_obj2txt(out: [*c]u8, out_len: c_int, obj: ?*const ASN1_OBJECT, always_return_oid: c_int) c_int; pub extern fn OBJ_create(oid: [*c]const u8, short_name: [*c]const u8, long_name: [*c]const u8) c_int; @@ -2612,119 +2492,119 @@ pub const OBJ_NAME = struct_obj_name_st; pub extern fn OBJ_NAME_do_all_sorted(@"type": c_int, callback: ?*const fn ([*c]const OBJ_NAME, ?*anyopaque) callconv(.C) void, arg: ?*anyopaque) void; pub extern fn OBJ_NAME_do_all(@"type": c_int, callback: ?*const fn ([*c]const OBJ_NAME, ?*anyopaque) callconv(.C) void, arg: ?*anyopaque) void; pub extern fn OBJ_cleanup() void; -pub const stack_CRYPTO_BUFFER_free_func = ?*const fn (?*CRYPTO_BUFFER) callconv(.C) void; -pub const stack_CRYPTO_BUFFER_copy_func = ?*const fn (?*CRYPTO_BUFFER) callconv(.C) ?*CRYPTO_BUFFER; -pub const stack_CRYPTO_BUFFER_cmp_func = ?*const fn ([*c]?*const CRYPTO_BUFFER, [*c]?*const CRYPTO_BUFFER) callconv(.C) c_int; -pub fn sk_CRYPTO_BUFFER_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_CRYPTO_BUFFER_free_func = ?*const fn (?*CRYPTO_BUFFER) callconv(.C) void; +pub const sk_CRYPTO_BUFFER_copy_func = ?*const fn (?*CRYPTO_BUFFER) callconv(.C) ?*CRYPTO_BUFFER; +pub const sk_CRYPTO_BUFFER_cmp_func = ?*const fn ([*c]?*const CRYPTO_BUFFER, [*c]?*const CRYPTO_BUFFER) callconv(.C) c_int; +pub fn sk_CRYPTO_BUFFER_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_CRYPTO_BUFFER_free_func, @alignCast(@import("std").meta.alignment(fn (?*CRYPTO_BUFFER) callconv(.C) void), free_func)).?(@ptrCast(?*CRYPTO_BUFFER, ptr)); + @as(sk_CRYPTO_BUFFER_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*CRYPTO_BUFFER, @ptrCast(ptr))); } -pub fn sk_CRYPTO_BUFFER_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_CRYPTO_BUFFER_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_CRYPTO_BUFFER_copy_func, @alignCast(@import("std").meta.alignment(fn (?*CRYPTO_BUFFER) callconv(.C) ?*CRYPTO_BUFFER), copy_func)).?(@ptrCast(?*CRYPTO_BUFFER, ptr))); + return @as(?*anyopaque, @ptrCast(@as(sk_CRYPTO_BUFFER_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*CRYPTO_BUFFER, @ptrCast(ptr))))); } -pub fn sk_CRYPTO_BUFFER_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_CRYPTO_BUFFER_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: ?*const CRYPTO_BUFFER = @ptrCast(?*const CRYPTO_BUFFER, a.*); - var b_ptr: ?*const CRYPTO_BUFFER = @ptrCast(?*const CRYPTO_BUFFER, b.*); - return @ptrCast(stack_CRYPTO_BUFFER_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const CRYPTO_BUFFER, [*c]?*const CRYPTO_BUFFER) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: ?*const CRYPTO_BUFFER = @as(?*const CRYPTO_BUFFER, @ptrCast(a.*)); + var b_ptr: ?*const CRYPTO_BUFFER = @as(?*const CRYPTO_BUFFER, @ptrCast(b.*)); + return @as(sk_CRYPTO_BUFFER_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_CRYPTO_BUFFER_new(arg_comp: stack_CRYPTO_BUFFER_cmp_func) callconv(.C) ?*struct_stack_st_CRYPTO_BUFFER { +pub fn sk_CRYPTO_BUFFER_new(arg_comp: sk_CRYPTO_BUFFER_cmp_func) callconv(.C) ?*struct_stack_st_CRYPTO_BUFFER { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_CRYPTO_BUFFER, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_CRYPTO_BUFFER, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_CRYPTO_BUFFER_new_null() callconv(.C) ?*struct_stack_st_CRYPTO_BUFFER { - return @ptrCast(?*struct_stack_st_CRYPTO_BUFFER, sk_new_null()); + return @as(?*struct_stack_st_CRYPTO_BUFFER, @ptrCast(sk_new_null())); } pub fn sk_CRYPTO_BUFFER_num(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_CRYPTO_BUFFER_zero(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_CRYPTO_BUFFER_value(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER, arg_i: usize) callconv(.C) ?*CRYPTO_BUFFER { var sk = arg_sk; var i = arg_i; - return @ptrCast(?*CRYPTO_BUFFER, sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i)); + return @as(?*CRYPTO_BUFFER, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } pub fn sk_CRYPTO_BUFFER_set(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_i: usize, arg_p: ?*CRYPTO_BUFFER) callconv(.C) ?*CRYPTO_BUFFER { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast(?*CRYPTO_BUFFER, sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p))); + return @as(?*CRYPTO_BUFFER, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } pub fn sk_CRYPTO_BUFFER_free(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_CRYPTO_BUFFER_pop_free(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_free_func: stack_CRYPTO_BUFFER_free_func) callconv(.C) void { +pub fn sk_CRYPTO_BUFFER_pop_free(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_free_func: sk_CRYPTO_BUFFER_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_CRYPTO_BUFFER_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_CRYPTO_BUFFER_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_CRYPTO_BUFFER_insert(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_p: ?*CRYPTO_BUFFER, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_CRYPTO_BUFFER_delete(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_where: usize) callconv(.C) ?*CRYPTO_BUFFER { var sk = arg_sk; var where = arg_where; - return @ptrCast(?*CRYPTO_BUFFER, sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where)); + return @as(?*CRYPTO_BUFFER, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } pub fn sk_CRYPTO_BUFFER_delete_ptr(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_p: ?*const CRYPTO_BUFFER) callconv(.C) ?*CRYPTO_BUFFER { var sk = arg_sk; var p = arg_p; - return @ptrCast(?*CRYPTO_BUFFER, sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p))); + return @as(?*CRYPTO_BUFFER, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } pub fn sk_CRYPTO_BUFFER_find(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER, arg_out_index: [*c]usize, arg_p: ?*const CRYPTO_BUFFER) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_CRYPTO_BUFFER_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_CRYPTO_BUFFER_call_cmp_func); } pub fn sk_CRYPTO_BUFFER_shift(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.C) ?*CRYPTO_BUFFER { var sk = arg_sk; - return @ptrCast(?*CRYPTO_BUFFER, sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*CRYPTO_BUFFER, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_CRYPTO_BUFFER_push(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_p: ?*CRYPTO_BUFFER) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_CRYPTO_BUFFER_pop(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.C) ?*CRYPTO_BUFFER { var sk = arg_sk; - return @ptrCast(?*CRYPTO_BUFFER, sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*CRYPTO_BUFFER, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_CRYPTO_BUFFER_dup(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER) callconv(.C) ?*struct_stack_st_CRYPTO_BUFFER { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_CRYPTO_BUFFER, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_CRYPTO_BUFFER, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_CRYPTO_BUFFER_sort(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_CRYPTO_BUFFER_call_cmp_func); } pub fn sk_CRYPTO_BUFFER_is_sorted(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_CRYPTO_BUFFER_set_cmp_func(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_comp: stack_CRYPTO_BUFFER_cmp_func) callconv(.C) stack_CRYPTO_BUFFER_cmp_func { +pub fn sk_CRYPTO_BUFFER_set_cmp_func(arg_sk: ?*struct_stack_st_CRYPTO_BUFFER, arg_comp: sk_CRYPTO_BUFFER_cmp_func) callconv(.C) sk_CRYPTO_BUFFER_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_CRYPTO_BUFFER_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const CRYPTO_BUFFER, [*c]?*const CRYPTO_BUFFER) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_CRYPTO_BUFFER_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_CRYPTO_BUFFER_deep_copy(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER, arg_copy_func: ?*const fn (?*CRYPTO_BUFFER) callconv(.C) ?*CRYPTO_BUFFER, arg_free_func: ?*const fn (?*CRYPTO_BUFFER) callconv(.C) void) callconv(.C) ?*struct_stack_st_CRYPTO_BUFFER { +pub fn sk_CRYPTO_BUFFER_deep_copy(arg_sk: ?*const struct_stack_st_CRYPTO_BUFFER, arg_copy_func: sk_CRYPTO_BUFFER_copy_func, arg_free_func: sk_CRYPTO_BUFFER_free_func) callconv(.C) ?*struct_stack_st_CRYPTO_BUFFER { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_CRYPTO_BUFFER, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_CRYPTO_BUFFER_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_CRYPTO_BUFFER_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_CRYPTO_BUFFER, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_CRYPTO_BUFFER_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_CRYPTO_BUFFER_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub extern fn CRYPTO_BUFFER_POOL_new() ?*CRYPTO_BUFFER_POOL; pub extern fn CRYPTO_BUFFER_POOL_free(pool: ?*CRYPTO_BUFFER_POOL) void; @@ -2762,7 +2642,7 @@ pub extern fn RSA_encrypt(rsa: ?*RSA, out_len: [*c]usize, out: [*c]u8, max_out: pub extern fn RSA_decrypt(rsa: ?*RSA, out_len: [*c]usize, out: [*c]u8, max_out: usize, in: [*c]const u8, in_len: usize, padding: c_int) c_int; pub extern fn RSA_public_encrypt(flen: usize, from: [*c]const u8, to: [*c]u8, rsa: ?*RSA, padding: c_int) c_int; pub extern fn RSA_private_decrypt(flen: usize, from: [*c]const u8, to: [*c]u8, rsa: ?*RSA, padding: c_int) c_int; -pub extern fn RSA_sign(hash_nid: c_int, digest: [*c]const u8, digest_len: c_uint, out: [*c]u8, out_len: [*c]c_uint, rsa: ?*RSA) c_int; +pub extern fn RSA_sign(hash_nid: c_int, digest: [*c]const u8, digest_len: usize, out: [*c]u8, out_len: [*c]c_uint, rsa: ?*RSA) c_int; pub extern fn RSA_sign_pss_mgf1(rsa: ?*RSA, out_len: [*c]usize, out: [*c]u8, max_out: usize, digest: [*c]const u8, digest_len: usize, md: ?*const EVP_MD, mgf1_md: ?*const EVP_MD, salt_len: c_int) c_int; pub extern fn RSA_sign_raw(rsa: ?*RSA, out_len: [*c]usize, out: [*c]u8, max_out: usize, in: [*c]const u8, in_len: usize, padding: c_int) c_int; pub extern fn RSA_verify(hash_nid: c_int, digest: [*c]const u8, digest_len: usize, sig: [*c]const u8, sig_len: usize, rsa: ?*RSA) c_int; @@ -2782,18 +2662,19 @@ pub extern fn RSA_padding_add_PKCS1_OAEP_mgf1(to: [*c]u8, to_len: usize, from: [ pub extern fn RSA_add_pkcs1_prefix(out_msg: [*c][*c]u8, out_msg_len: [*c]usize, is_alloced: [*c]c_int, hash_nid: c_int, digest: [*c]const u8, digest_len: usize) c_int; pub extern fn RSA_parse_public_key(cbs: [*c]CBS) ?*RSA; pub extern fn RSA_public_key_from_bytes(in: [*c]const u8, in_len: usize) ?*RSA; -pub extern fn RSA_marshal_public_key(cbb: [*c]CBB, rsa: ?*const RSA) c_int; +pub extern fn RSA_marshal_public_key(cbb: ?*CBB, rsa: ?*const RSA) c_int; pub extern fn RSA_public_key_to_bytes(out_bytes: [*c][*c]u8, out_len: [*c]usize, rsa: ?*const RSA) c_int; pub extern fn RSA_parse_private_key(cbs: [*c]CBS) ?*RSA; pub extern fn RSA_private_key_from_bytes(in: [*c]const u8, in_len: usize) ?*RSA; -pub extern fn RSA_marshal_private_key(cbb: [*c]CBB, rsa: ?*const RSA) c_int; +pub extern fn RSA_marshal_private_key(cbb: ?*CBB, rsa: ?*const RSA) c_int; pub extern fn RSA_private_key_to_bytes(out_bytes: [*c][*c]u8, out_len: [*c]usize, rsa: ?*const RSA) c_int; -pub extern fn RSA_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?CRYPTO_EX_dup, free_func: ?CRYPTO_EX_free) c_int; +pub extern fn RSA_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?*const CRYPTO_EX_dup, free_func: ?*const CRYPTO_EX_free) c_int; pub extern fn RSA_set_ex_data(rsa: ?*RSA, idx: c_int, arg: ?*anyopaque) c_int; pub extern fn RSA_get_ex_data(rsa: ?*const RSA, idx: c_int) ?*anyopaque; pub extern fn RSA_flags(rsa: ?*const RSA) c_int; +pub extern fn RSA_test_flags(rsa: ?*const RSA, flags: c_int) c_int; pub extern fn RSA_blinding_on(rsa: ?*RSA, ctx: ?*BN_CTX) c_int; -pub extern fn RSA_generate_key(bits: c_int, e: c_ulong, callback: ?*anyopaque, cb_arg: ?*anyopaque) ?*RSA; +pub extern fn RSA_generate_key(bits: c_int, e: u64, callback: ?*anyopaque, cb_arg: ?*anyopaque) ?*RSA; pub extern fn d2i_RSAPublicKey(out: [*c]?*RSA, inp: [*c][*c]const u8, len: c_long) ?*RSA; pub extern fn i2d_RSAPublicKey(in: ?*const RSA, outp: [*c][*c]u8) c_int; pub extern fn d2i_RSAPrivateKey(out: [*c]?*RSA, inp: [*c][*c]const u8, len: c_long) ?*RSA; @@ -2803,1324 +2684,1543 @@ pub extern fn RSA_verify_PKCS1_PSS(rsa: ?*const RSA, mHash: [*c]const u8, Hash: pub extern fn RSA_padding_add_PKCS1_OAEP(to: [*c]u8, to_len: usize, from: [*c]const u8, from_len: usize, param: [*c]const u8, param_len: usize) c_int; pub extern fn RSA_print(bio: [*c]BIO, rsa: ?*const RSA, indent: c_int) c_int; pub extern fn RSA_get0_pss_params(rsa: ?*const RSA) [*c]const RSA_PSS_PARAMS; -pub extern fn SHA1_Init(sha: *SHA_CTX) c_int; -pub extern fn SHA1_Update(sha: *SHA_CTX, data: ?[*]const u8, len: usize) c_int; -pub extern fn SHA1_Final(out: [*]u8, sha: *SHA_CTX) c_int; -pub extern fn SHA1(data: [*]const u8, len: usize, out: [*]u8) [*]u8; -pub extern fn SHA1_Transform(sha: *SHA_CTX, block: [*]const u8) void; -pub extern fn SHA224_Init(sha: *SHA256_CTX) c_int; -pub extern fn SHA224_Update(sha: *SHA256_CTX, data: ?[*]const u8, len: usize) c_int; -pub extern fn SHA224_Final(out: [*]u8, sha: *SHA256_CTX) c_int; -pub extern fn SHA224(data: [*]const u8, len: usize, out: [*]u8) [*]u8; -pub extern fn SHA256_Init(sha: *SHA256_CTX) c_int; -pub extern fn SHA256_Update(sha: *SHA256_CTX, data: ?[*]const u8, len: usize) c_int; -pub extern fn SHA256_Final(out: [*]u8, sha: *SHA256_CTX) c_int; -pub extern fn SHA256(data: [*]const u8, len: usize, out: [*]u8) [*]u8; -pub extern fn SHA256_Transform(sha: *SHA256_CTX, block: [*]const u8) void; -pub extern fn SHA256_TransformBlocks(state: [*c]u32, data: [*]const u8, num_blocks: usize) void; -pub extern fn SHA384_Init(sha: *SHA512_CTX) c_int; -pub extern fn SHA384_Update(sha: *SHA512_CTX, data: ?[*]const u8, len: usize) c_int; -pub extern fn SHA384_Final(out: [*]u8, sha: *SHA512_CTX) c_int; -pub extern fn SHA384(data: [*]const u8, len: usize, out: [*]u8) [*]u8; -pub extern fn SHA512_Init(sha: *SHA512_CTX) c_int; -pub extern fn SHA512_Update(sha: *SHA512_CTX, data: ?[*]const u8, len: usize) c_int; -pub extern fn SHA512_Final(out: [*]u8, sha: *SHA512_CTX) c_int; -pub extern fn SHA512(data: [*]const u8, len: usize, out: [*]u8) [*]u8; -pub extern fn SHA512_Transform(sha: *SHA512_CTX, block: [*]const u8) void; -pub extern fn SHA512_256_Init(sha: *SHA512_CTX) c_int; -pub extern fn SHA512_256_Update(sha: *SHA512_CTX, data: ?[*]const u8, len: usize) c_int; -pub extern fn SHA512_256_Final(out: [*]u8, sha: *SHA512_CTX) c_int; -pub extern fn SHA512_256(data: [*]const u8, len: usize, out: [*]u8) [*]u8; -pub extern fn X509_ALGOR_new() [*c]X509_ALGOR; -pub extern fn X509_ALGOR_free(a: [*c]X509_ALGOR) void; -pub extern fn d2i_X509_ALGOR(a: [*c][*c]X509_ALGOR, in: [*c][*c]const u8, len: c_long) [*c]X509_ALGOR; -pub extern fn i2d_X509_ALGOR(a: [*c]X509_ALGOR, out: [*c][*c]u8) c_int; - -pub extern const X509_ALGOR_it: ASN1_ITEM; -pub const struct_stack_st_X509_ALGOR = opaque {}; -pub const stack_X509_ALGOR_free_func = ?*const fn ([*c]X509_ALGOR) callconv(.C) void; -pub const stack_X509_ALGOR_copy_func = ?*const fn ([*c]X509_ALGOR) callconv(.C) [*c]X509_ALGOR; -pub const stack_X509_ALGOR_cmp_func = ?*const fn ([*c][*c]const X509_ALGOR, [*c][*c]const X509_ALGOR) callconv(.C) c_int; -pub fn sk_X509_ALGOR_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub extern fn SHA1_Init(sha: [*c]SHA_CTX) c_int; +pub extern fn SHA1_Update(sha: [*c]SHA_CTX, data: ?*const anyopaque, len: usize) c_int; +pub extern fn SHA1_Final(out: [*c]u8, sha: [*c]SHA_CTX) c_int; +pub extern fn SHA1(data: [*c]const u8, len: usize, out: [*c]u8) [*c]u8; +pub extern fn SHA1_Transform(sha: [*c]SHA_CTX, block: [*c]const u8) void; +pub extern fn SHA224_Init(sha: [*c]SHA256_CTX) c_int; +pub extern fn SHA224_Update(sha: [*c]SHA256_CTX, data: ?*const anyopaque, len: usize) c_int; +pub extern fn SHA224_Final(out: [*c]u8, sha: [*c]SHA256_CTX) c_int; +pub extern fn SHA224(data: [*c]const u8, len: usize, out: [*c]u8) [*c]u8; +pub extern fn SHA256_Init(sha: [*c]SHA256_CTX) c_int; +pub extern fn SHA256_Update(sha: [*c]SHA256_CTX, data: ?*const anyopaque, len: usize) c_int; +pub extern fn SHA256_Final(out: [*c]u8, sha: [*c]SHA256_CTX) c_int; +pub extern fn SHA256(data: [*c]const u8, len: usize, out: [*c]u8) [*c]u8; +pub extern fn SHA256_Transform(sha: [*c]SHA256_CTX, block: [*c]const u8) void; +pub extern fn SHA256_TransformBlocks(state: [*c]u32, data: [*c]const u8, num_blocks: usize) void; +pub extern fn SHA384_Init(sha: [*c]SHA512_CTX) c_int; +pub extern fn SHA384_Update(sha: [*c]SHA512_CTX, data: ?*const anyopaque, len: usize) c_int; +pub extern fn SHA384_Final(out: [*c]u8, sha: [*c]SHA512_CTX) c_int; +pub extern fn SHA384(data: [*c]const u8, len: usize, out: [*c]u8) [*c]u8; +pub extern fn SHA512_Init(sha: [*c]SHA512_CTX) c_int; +pub extern fn SHA512_Update(sha: [*c]SHA512_CTX, data: ?*const anyopaque, len: usize) c_int; +pub extern fn SHA512_Final(out: [*c]u8, sha: [*c]SHA512_CTX) c_int; +pub extern fn SHA512(data: [*c]const u8, len: usize, out: [*c]u8) [*c]u8; +pub extern fn SHA512_Transform(sha: [*c]SHA512_CTX, block: [*c]const u8) void; +pub extern fn SHA512_256_Init(sha: [*c]SHA512_CTX) c_int; +pub extern fn SHA512_256_Update(sha: [*c]SHA512_CTX, data: ?*const anyopaque, len: usize) c_int; +pub extern fn SHA512_256_Final(out: [*c]u8, sha: [*c]SHA512_CTX) c_int; +pub extern fn SHA512_256(data: [*c]const u8, len: usize, out: [*c]u8) [*c]u8; +pub const sk_X509_free_func = ?*const fn (?*X509) callconv(.C) void; +pub const sk_X509_copy_func = ?*const fn (?*X509) callconv(.C) ?*X509; +pub const sk_X509_cmp_func = ?*const fn ([*c]?*const X509, [*c]?*const X509) callconv(.C) c_int; +pub fn sk_X509_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_X509_ALGOR_free_func, @alignCast(@import("std").meta.alignment(fn ([*c]X509_ALGOR) callconv(.C) void), free_func)).?(@ptrCast([*c]X509_ALGOR, @alignCast(@import("std").meta.alignment(X509_ALGOR), ptr))); + @as(sk_X509_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509, @ptrCast(ptr))); } -pub fn sk_X509_ALGOR_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_X509_ALGOR_copy_func, @alignCast(@import("std").meta.alignment(fn ([*c]X509_ALGOR) callconv(.C) [*c]X509_ALGOR), copy_func)).?(@ptrCast([*c]X509_ALGOR, @alignCast(@import("std").meta.alignment(X509_ALGOR), ptr)))); + return @as(?*anyopaque, @ptrCast(@as(sk_X509_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509, @ptrCast(ptr))))); } -pub fn sk_X509_ALGOR_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: [*c]const X509_ALGOR = @ptrCast([*c]const X509_ALGOR, @alignCast(@import("std").meta.alignment(X509_ALGOR), a.*)); - var b_ptr: [*c]const X509_ALGOR = @ptrCast([*c]const X509_ALGOR, @alignCast(@import("std").meta.alignment(X509_ALGOR), b.*)); - return @ptrCast(stack_X509_ALGOR_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const X509_ALGOR, [*c][*c]const X509_ALGOR) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: ?*const X509 = @as(?*const X509, @ptrCast(a.*)); + var b_ptr: ?*const X509 = @as(?*const X509, @ptrCast(b.*)); + return @as(sk_X509_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_ALGOR_new(arg_comp: stack_X509_ALGOR_cmp_func) callconv(.C) ?*struct_stack_st_X509_ALGOR { +pub fn sk_X509_new(arg_comp: sk_X509_cmp_func) callconv(.C) ?*struct_stack_st_X509 { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_X509_ALGOR, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_X509, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_ALGOR_new_null() callconv(.C) ?*struct_stack_st_X509_ALGOR { - return @ptrCast(?*struct_stack_st_X509_ALGOR, sk_new_null()); +pub fn sk_X509_new_null() callconv(.C) ?*struct_stack_st_X509 { + return @as(?*struct_stack_st_X509, @ptrCast(sk_new_null())); } -pub fn sk_X509_ALGOR_num(arg_sk: ?*const struct_stack_st_X509_ALGOR) callconv(.C) usize { +pub fn sk_X509_num(arg_sk: ?*const struct_stack_st_X509) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ALGOR_zero(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) void { +pub fn sk_X509_zero(arg_sk: ?*struct_stack_st_X509) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ALGOR_value(arg_sk: ?*const struct_stack_st_X509_ALGOR, arg_i: usize) callconv(.C) [*c]X509_ALGOR { +pub fn sk_X509_value(arg_sk: ?*const struct_stack_st_X509, arg_i: usize) callconv(.C) ?*X509 { var sk = arg_sk; var i = arg_i; - return @ptrCast([*c]X509_ALGOR, @alignCast(@import("std").meta.alignment(X509_ALGOR), sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i))); + return @as(?*X509, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_X509_ALGOR_set(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_i: usize, arg_p: [*c]X509_ALGOR) callconv(.C) [*c]X509_ALGOR { +pub fn sk_X509_set(arg_sk: ?*struct_stack_st_X509, arg_i: usize, arg_p: ?*X509) callconv(.C) ?*X509 { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast([*c]X509_ALGOR, @alignCast(@import("std").meta.alignment(X509_ALGOR), sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p)))); + return @as(?*X509, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_X509_ALGOR_free(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) void { +pub fn sk_X509_free(arg_sk: ?*struct_stack_st_X509) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ALGOR_pop_free(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_free_func: stack_X509_ALGOR_free_func) callconv(.C) void { +pub fn sk_X509_pop_free(arg_sk: ?*struct_stack_st_X509, arg_free_func: sk_X509_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_ALGOR_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_ALGOR_insert(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_p: [*c]X509_ALGOR, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_insert(arg_sk: ?*struct_stack_st_X509, arg_p: ?*X509, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_ALGOR_delete(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_where: usize) callconv(.C) [*c]X509_ALGOR { +pub fn sk_X509_delete(arg_sk: ?*struct_stack_st_X509, arg_where: usize) callconv(.C) ?*X509 { var sk = arg_sk; var where = arg_where; - return @ptrCast([*c]X509_ALGOR, @alignCast(@import("std").meta.alignment(X509_ALGOR), sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where))); + return @as(?*X509, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_X509_ALGOR_delete_ptr(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_p: [*c]const X509_ALGOR) callconv(.C) [*c]X509_ALGOR { +pub fn sk_X509_delete_ptr(arg_sk: ?*struct_stack_st_X509, arg_p: ?*const X509) callconv(.C) ?*X509 { var sk = arg_sk; var p = arg_p; - return @ptrCast([*c]X509_ALGOR, @alignCast(@import("std").meta.alignment(X509_ALGOR), sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p)))); + return @as(?*X509, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_X509_ALGOR_find(arg_sk: ?*const struct_stack_st_X509_ALGOR, arg_out_index: [*c]usize, arg_p: [*c]const X509_ALGOR) callconv(.C) c_int { +pub fn sk_X509_find(arg_sk: ?*const struct_stack_st_X509, arg_out_index: [*c]usize, arg_p: ?*const X509) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_X509_ALGOR_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_call_cmp_func); } -pub fn sk_X509_ALGOR_shift(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) [*c]X509_ALGOR { +pub fn sk_X509_shift(arg_sk: ?*struct_stack_st_X509) callconv(.C) ?*X509 { var sk = arg_sk; - return @ptrCast([*c]X509_ALGOR, @alignCast(@import("std").meta.alignment(X509_ALGOR), sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as(?*X509, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_ALGOR_push(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_p: [*c]X509_ALGOR) callconv(.C) usize { +pub fn sk_X509_push(arg_sk: ?*struct_stack_st_X509, arg_p: ?*X509) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_ALGOR_pop(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) [*c]X509_ALGOR { +pub fn sk_X509_pop(arg_sk: ?*struct_stack_st_X509) callconv(.C) ?*X509 { var sk = arg_sk; - return @ptrCast([*c]X509_ALGOR, @alignCast(@import("std").meta.alignment(X509_ALGOR), sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as(?*X509, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_ALGOR_dup(arg_sk: ?*const struct_stack_st_X509_ALGOR) callconv(.C) ?*struct_stack_st_X509_ALGOR { +pub fn sk_X509_dup(arg_sk: ?*const struct_stack_st_X509) callconv(.C) ?*struct_stack_st_X509 { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_X509_ALGOR, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_X509, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_ALGOR_sort(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) void { +pub fn sk_X509_sort(arg_sk: ?*struct_stack_st_X509) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_call_cmp_func); } -pub fn sk_X509_ALGOR_is_sorted(arg_sk: ?*const struct_stack_st_X509_ALGOR) callconv(.C) c_int { +pub fn sk_X509_is_sorted(arg_sk: ?*const struct_stack_st_X509) callconv(.C) c_int { + var sk = arg_sk; + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); +} +pub fn sk_X509_set_cmp_func(arg_sk: ?*struct_stack_st_X509, arg_comp: sk_X509_cmp_func) callconv(.C) sk_X509_cmp_func { + var sk = arg_sk; + var comp = arg_comp; + return @as(sk_X509_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); +} +pub fn sk_X509_deep_copy(arg_sk: ?*const struct_stack_st_X509, arg_copy_func: sk_X509_copy_func, arg_free_func: sk_X509_free_func) callconv(.C) ?*struct_stack_st_X509 { + var sk = arg_sk; + var copy_func = arg_copy_func; + var free_func = arg_free_func; + return @as(?*struct_stack_st_X509, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); +} +pub const stack_free_func = ?*const fn (?*anyopaque) callconv(.C) void; +pub const stack_copy_func = ?*const fn (?*anyopaque) callconv(.C) ?*anyopaque; +pub const stack_cmp_func = ?*const fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int; +pub extern const X509_it: ASN1_ITEM; +pub extern fn X509_up_ref(x509: ?*X509) c_int; +pub extern fn X509_chain_up_ref(chain: ?*struct_stack_st_X509) ?*struct_stack_st_X509; +pub extern fn X509_dup(x509: ?*X509) ?*X509; +pub extern fn X509_free(x509: ?*X509) void; +pub extern fn d2i_X509(out: [*c]?*X509, inp: [*c][*c]const u8, len: c_long) ?*X509; +pub extern fn X509_parse_from_buffer(buf: ?*CRYPTO_BUFFER) ?*X509; +pub extern fn i2d_X509(x509: ?*X509, outp: [*c][*c]u8) c_int; +pub extern fn X509_get_version(x509: ?*const X509) c_long; +pub extern fn X509_get0_serialNumber(x509: ?*const X509) [*c]const ASN1_INTEGER; +pub extern fn X509_get0_notBefore(x509: ?*const X509) [*c]const ASN1_TIME; +pub extern fn X509_get0_notAfter(x509: ?*const X509) [*c]const ASN1_TIME; +pub extern fn X509_get_issuer_name(x509: ?*const X509) ?*X509_NAME; +pub extern fn X509_get_subject_name(x509: ?*const X509) ?*X509_NAME; +pub extern fn X509_get_X509_PUBKEY(x509: ?*const X509) ?*X509_PUBKEY; +pub extern fn X509_get_pubkey(x509: ?*X509) [*c]EVP_PKEY; +pub extern fn X509_get0_pubkey_bitstr(x509: ?*const X509) [*c]ASN1_BIT_STRING; +pub extern fn X509_get0_uids(x509: ?*const X509, out_issuer_uid: [*c][*c]const ASN1_BIT_STRING, out_subject_uid: [*c][*c]const ASN1_BIT_STRING) void; +pub const struct_stack_st_X509_EXTENSION = opaque {}; +pub extern fn X509_get0_extensions(x509: ?*const X509) ?*const struct_stack_st_X509_EXTENSION; +pub extern fn X509_get_ext_count(x: ?*const X509) c_int; +pub extern fn X509_get_ext_by_NID(x: ?*const X509, nid: c_int, lastpos: c_int) c_int; +pub extern fn X509_get_ext_by_OBJ(x: ?*const X509, obj: ?*const ASN1_OBJECT, lastpos: c_int) c_int; +pub extern fn X509_get_ext_by_critical(x: ?*const X509, crit: c_int, lastpos: c_int) c_int; +pub extern fn X509_get_ext(x: ?*const X509, loc: c_int) ?*X509_EXTENSION; +pub extern fn X509_get0_tbs_sigalg(x509: ?*const X509) [*c]const X509_ALGOR; +pub extern fn X509_get0_signature(out_sig: [*c][*c]const ASN1_BIT_STRING, out_alg: [*c][*c]const X509_ALGOR, x509: ?*const X509) void; +pub extern fn X509_get_signature_nid(x509: ?*const X509) c_int; +pub extern fn i2d_X509_tbs(x509: ?*X509, outp: [*c][*c]u8) c_int; +pub extern fn X509_new() ?*X509; +pub extern fn X509_set_version(x509: ?*X509, version: c_long) c_int; +pub extern fn X509_set_serialNumber(x509: ?*X509, serial: [*c]const ASN1_INTEGER) c_int; +pub extern fn X509_set1_notBefore(x509: ?*X509, tm: [*c]const ASN1_TIME) c_int; +pub extern fn X509_set1_notAfter(x509: ?*X509, tm: [*c]const ASN1_TIME) c_int; +pub extern fn X509_getm_notBefore(x509: ?*X509) [*c]ASN1_TIME; +pub extern fn X509_getm_notAfter(x: ?*X509) [*c]ASN1_TIME; +pub extern fn X509_set_issuer_name(x509: ?*X509, name: ?*X509_NAME) c_int; +pub extern fn X509_set_subject_name(x509: ?*X509, name: ?*X509_NAME) c_int; +pub extern fn X509_set_pubkey(x509: ?*X509, pkey: [*c]EVP_PKEY) c_int; +pub extern fn X509_delete_ext(x: ?*X509, loc: c_int) ?*X509_EXTENSION; +pub extern fn X509_add_ext(x: ?*X509, ex: ?*const X509_EXTENSION, loc: c_int) c_int; +pub extern fn X509_sign(x509: ?*X509, pkey: [*c]EVP_PKEY, md: ?*const EVP_MD) c_int; +pub extern fn X509_sign_ctx(x509: ?*X509, ctx: [*c]EVP_MD_CTX) c_int; +pub extern fn i2d_re_X509_tbs(x509: ?*X509, outp: [*c][*c]u8) c_int; +pub extern fn X509_set1_signature_algo(x509: ?*X509, algo: [*c]const X509_ALGOR) c_int; +pub extern fn X509_set1_signature_value(x509: ?*X509, sig: [*c]const u8, sig_len: usize) c_int; +pub extern fn i2d_X509_AUX(x509: ?*X509, outp: [*c][*c]u8) c_int; +pub extern fn d2i_X509_AUX(x509: [*c]?*X509, inp: [*c][*c]const u8, length: c_long) ?*X509; +pub extern fn X509_alias_set1(x509: ?*X509, name: [*c]const u8, len: c_int) c_int; +pub extern fn X509_keyid_set1(x509: ?*X509, id: [*c]const u8, len: c_int) c_int; +pub extern fn X509_alias_get0(x509: ?*X509, out_len: [*c]c_int) [*c]u8; +pub extern fn X509_keyid_get0(x509: ?*X509, out_len: [*c]c_int) [*c]u8; +pub const sk_X509_CRL_free_func = ?*const fn (?*X509_CRL) callconv(.C) void; +pub const sk_X509_CRL_copy_func = ?*const fn (?*X509_CRL) callconv(.C) ?*X509_CRL; +pub const sk_X509_CRL_cmp_func = ?*const fn ([*c]?*const X509_CRL, [*c]?*const X509_CRL) callconv(.C) c_int; +pub fn sk_X509_CRL_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { + var free_func = arg_free_func; + var ptr = arg_ptr; + @as(sk_X509_CRL_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_CRL, @ptrCast(ptr))); +} +pub extern fn X509V3_EXT_d2i(ex: ?*X509_EXTENSION) ?*anyopaque; +pub extern fn X509V3_EXT_get(ex: ?*X509_EXTENSION) ?*X509V3_EXT_METHOD; +pub const X509V3_EXT_METHOD = opaque {}; +pub extern fn X509V3_EXT_get_nid(ndi: c_int) ?*X509V3_EXT_METHOD; +pub fn sk_X509_CRL_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { + var cmp_func = arg_cmp_func; + var a = arg_a; + var b = arg_b; + var a_ptr: ?*const X509_CRL = @as(?*const X509_CRL, @ptrCast(a.*)); + var b_ptr: ?*const X509_CRL = @as(?*const X509_CRL, @ptrCast(b.*)); + return @as(sk_X509_CRL_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); +} +pub const struct_stack_st_X509_REVOKED = opaque {}; +pub const stack_X509_REVOKED_free_func = ?*const fn ([*c]X509_REVOKED) callconv(.C) void; +pub const stack_X509_REVOKED_copy_func = ?*const fn ([*c]X509_REVOKED) callconv(.C) [*c]X509_REVOKED; +pub const stack_X509_REVOKED_cmp_func = ?*const fn ([*c][*c]const X509_REVOKED, [*c][*c]const X509_REVOKED) callconv(.C) c_int; +pub const struct_stack_st_GENERAL_NAMES = opaque {}; +pub const struct_stack_st_ACCESS_DESCRIPTION = opaque {}; + +pub const OTHERNAME = extern struct { + type_id: ?*ASN1_OBJECT, + value: ?*ASN1_TYPE, +}; + +pub const GENERAL_NAME = extern struct { + name_type: enum(c_int) { + GEN_OTHERNAME = 0, + GEN_EMAIL = 1, + GEN_DNS = 2, + GEN_X400 = 3, + GEN_DIRNAME = 4, + GEN_EDIPARTY = 5, + GEN_URI = 6, + GEN_IPADD = 7, + GEN_RID = 8, + }, + d: extern union { + ptr: *c_char, + otherName: *OTHERNAME, + rfc822Name: *ASN1_IA5STRING, + dNSName: *ASN1_IA5STRING, + x400Address: *ASN1_STRING, + directoryName: *X509_NAME, + //EDIPARTYNAME + ediPartyName: *anyopaque, + uniformResourceIdentifier: *ASN1_IA5STRING, + iPAddress: *ASN1_OCTET_STRING, + registeredID: *ASN1_OBJECT, + ip: *ASN1_OCTET_STRING, + dirn: *X509_NAME, + ia5: *ASN1_IA5STRING, + rid: *ASN1_OBJECT, + other: *ASN1_TYPE, + }, +}; + +pub const ACCESS_DESCRIPTION = extern struct { + method: *ASN1_OBJECT, + location: *GENERAL_NAME, +}; + +pub fn sk_GENERAL_NAME_num(arg_sk: ?*const struct_stack_st_GENERAL_NAME) callconv(.C) usize { + var sk = arg_sk; + return sk_num(@as([*c]const _STACK, @alignCast(@ptrCast(sk)))); +} +pub fn sk_GENERAL_NAME_free(arg_sk: ?*struct_stack_st_GENERAL_NAME) callconv(.C) void { + var sk = arg_sk; + sk_free(@as([*c]_STACK, @alignCast(@ptrCast(sk)))); +} +pub const stack_GENERAL_NAME_free_func = ?*const fn (?*struct_stack_st_GENERAL_NAME) callconv(.C) void; + +pub fn sk_GENERAL_NAME_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { + var free_func = arg_free_func; + var ptr = arg_ptr; + @as(stack_GENERAL_NAME_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*struct_stack_st_GENERAL_NAME, @ptrCast(ptr))); +} +pub fn sk_GENERAL_NAME_pop_free(arg_sk: ?*struct_stack_st_GENERAL_NAME, arg_free_func: stack_GENERAL_NAME_free_func) callconv(.C) void { + var sk = arg_sk; + var free_func = arg_free_func; + sk_pop_free_ex(@as([*c]_STACK, @alignCast(@ptrCast(sk))), sk_GENERAL_NAME_call_free_func, @as(stack_free_func, @ptrCast(free_func))); +} +pub fn sk_GENERAL_NAME_value(arg_sk: ?*const struct_stack_st_GENERAL_NAME, arg_i: usize) callconv(.C) ?*GENERAL_NAME { + var sk = arg_sk; + var i = arg_i; + return @alignCast(@ptrCast(sk_value(@as([*c]const _STACK, @alignCast(@ptrCast(sk))), i))); +} + +pub fn sk_ACCESS_DESCRIPTION_num(arg_sk: ?*const AUTHORITY_INFO_ACCESS) callconv(.C) usize { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @alignCast(@ptrCast(sk)))); +} +pub fn sk_ACCESS_DESCRIPTION_free(arg_sk: ?*AUTHORITY_INFO_ACCESS) callconv(.C) void { + var sk = arg_sk; + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); +} +pub const stack_ACCESS_DESCRIPTION_free_func = ?*const fn (?*AUTHORITY_INFO_ACCESS) callconv(.C) void; + +pub fn sk_ACCESS_DESCRIPTION_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { + var free_func = arg_free_func; + var ptr = arg_ptr; + @as(stack_ACCESS_DESCRIPTION_free_func, @ptrCast(free_func)).?(@as(?*AUTHORITY_INFO_ACCESS, @ptrCast(ptr))); } -pub fn sk_X509_ALGOR_set_cmp_func(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_comp: stack_X509_ALGOR_cmp_func) callconv(.C) stack_X509_ALGOR_cmp_func { +pub fn sk_ACCESS_DESCRIPTION_pop_free(arg_sk: ?*AUTHORITY_INFO_ACCESS, arg_free_func: stack_ACCESS_DESCRIPTION_free_func) callconv(.C) void { var sk = arg_sk; + var free_func = arg_free_func; + sk_pop_free_ex(@as([*c]_STACK, @alignCast(@ptrCast(sk))), sk_ACCESS_DESCRIPTION_call_free_func, @as(stack_free_func, @ptrCast(free_func))); +} +pub extern fn X509_get_serialNumber(x509: ?*X509) [*c]ASN1_INTEGER; +pub fn sk_ACCESS_DESCRIPTION_value(arg_sk: ?*const AUTHORITY_INFO_ACCESS, arg_i: usize) callconv(.C) ?*ACCESS_DESCRIPTION { + var sk = arg_sk; + var i = arg_i; + return @alignCast(@ptrCast(sk_value(@as([*c]const _STACK, @alignCast(@ptrCast(sk))), i))); +} +pub const NID_id_on_SmtpUTF8Mailbox = @as(c_int, 1208); +pub const NID_XmppAddr = @as(c_int, 1209); +pub const NID_SRVName = @as(c_int, 1210); +pub const NID_NAIRealm = @as(c_int, 1211); + +pub const stack_X509_CRL_free_func = ?*const fn (?*X509_CRL) callconv(.C) void; +pub const stack_X509_CRL_copy_func = ?*const fn (?*X509_CRL) callconv(.C) ?*X509_CRL; +pub const stack_X509_CRL_cmp_func = ?*const fn ([*c]?*const X509_CRL, [*c]?*const X509_CRL) callconv(.C) c_int; +pub fn sk_X509_CRL_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { + var copy_func = arg_copy_func; + var ptr = arg_ptr; + return @as(?*anyopaque, @ptrCast(@as(stack_X509_CRL_copy_func, @ptrCast(copy_func)).?(@as(?*X509_CRL, @ptrCast(ptr))))); +} +pub fn sk_X509_CRL_new(arg_comp: stack_X509_CRL_cmp_func) callconv(.C) ?*struct_stack_st_X509_CRL { var comp = arg_comp; - return @ptrCast(stack_X509_ALGOR_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const X509_ALGOR, [*c][*c]const X509_ALGOR) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(?*struct_stack_st_X509_CRL, @ptrCast(sk_new(@as(stack_cmp_func, @ptrCast(comp))))); +} +pub fn sk_X509_CRL_new_null() callconv(.C) ?*struct_stack_st_X509_CRL { + return @as(?*struct_stack_st_X509_CRL, @ptrCast(sk_new_null())); +} +pub fn sk_X509_CRL_num(arg_sk: ?*const struct_stack_st_X509_CRL) callconv(.C) usize { + var sk = arg_sk; + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); +} +pub fn sk_X509_CRL_zero(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) void { + var sk = arg_sk; + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); +} +pub fn sk_X509_CRL_value(arg_sk: ?*const struct_stack_st_X509_CRL, arg_i: usize) callconv(.C) ?*X509_CRL { + var sk = arg_sk; + var i = arg_i; + return @as(?*X509_CRL, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); +} +pub fn sk_X509_CRL_set(arg_sk: ?*struct_stack_st_X509_CRL, arg_i: usize, arg_p: ?*X509_CRL) callconv(.C) ?*X509_CRL { + var sk = arg_sk; + var i = arg_i; + var p = arg_p; + return @as(?*X509_CRL, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); +} +pub fn sk_X509_CRL_free(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) void { + var sk = arg_sk; + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); +} +pub fn sk_X509_CRL_pop_free(arg_sk: ?*struct_stack_st_X509_CRL, arg_free_func: sk_X509_CRL_free_func) callconv(.C) void { + var sk = arg_sk; + var free_func = arg_free_func; + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_CRL_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); +} +pub fn sk_X509_CRL_insert(arg_sk: ?*struct_stack_st_X509_CRL, arg_p: ?*X509_CRL, arg_where: usize) callconv(.C) usize { + var sk = arg_sk; + var p = arg_p; + var where = arg_where; + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_ALGOR_deep_copy(arg_sk: ?*const struct_stack_st_X509_ALGOR, arg_copy_func: ?*const fn ([*c]X509_ALGOR) callconv(.C) [*c]X509_ALGOR, arg_free_func: ?*const fn ([*c]X509_ALGOR) callconv(.C) void) callconv(.C) ?*struct_stack_st_X509_ALGOR { +pub fn sk_X509_CRL_delete(arg_sk: ?*struct_stack_st_X509_CRL, arg_where: usize) callconv(.C) ?*X509_CRL { + var sk = arg_sk; + var where = arg_where; + return @as(?*X509_CRL, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); +} +pub fn sk_X509_CRL_delete_ptr(arg_sk: ?*struct_stack_st_X509_CRL, arg_p: ?*const X509_CRL) callconv(.C) ?*X509_CRL { + var sk = arg_sk; + var p = arg_p; + return @as(?*X509_CRL, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); +} +pub fn sk_X509_CRL_find(arg_sk: ?*const struct_stack_st_X509_CRL, arg_out_index: [*c]usize, arg_p: ?*const X509_CRL) callconv(.C) c_int { + var sk = arg_sk; + var out_index = arg_out_index; + var p = arg_p; + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_CRL_call_cmp_func); +} +pub fn sk_X509_CRL_shift(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) ?*X509_CRL { + var sk = arg_sk; + return @as(?*X509_CRL, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); +} +pub fn sk_X509_CRL_push(arg_sk: ?*struct_stack_st_X509_CRL, arg_p: ?*X509_CRL) callconv(.C) usize { + var sk = arg_sk; + var p = arg_p; + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); +} +pub fn sk_X509_CRL_pop(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) ?*X509_CRL { + var sk = arg_sk; + return @as(?*X509_CRL, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); +} +pub fn sk_X509_CRL_dup(arg_sk: ?*const struct_stack_st_X509_CRL) callconv(.C) ?*struct_stack_st_X509_CRL { + var sk = arg_sk; + return @as(?*struct_stack_st_X509_CRL, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); +} +pub fn sk_X509_CRL_sort(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) void { + var sk = arg_sk; + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_CRL_call_cmp_func); +} +pub fn sk_X509_CRL_is_sorted(arg_sk: ?*const struct_stack_st_X509_CRL) callconv(.C) c_int { + var sk = arg_sk; + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); +} +pub fn sk_X509_CRL_set_cmp_func(arg_sk: ?*struct_stack_st_X509_CRL, arg_comp: sk_X509_CRL_cmp_func) callconv(.C) sk_X509_CRL_cmp_func { + var sk = arg_sk; + var comp = arg_comp; + return @as(sk_X509_CRL_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); +} +pub fn sk_X509_CRL_deep_copy(arg_sk: ?*const struct_stack_st_X509_CRL, arg_copy_func: sk_X509_CRL_copy_func, arg_free_func: sk_X509_CRL_free_func) callconv(.C) ?*struct_stack_st_X509_CRL { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_X509_ALGOR, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_ALGOR_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_X509_ALGOR_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_X509_CRL, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_CRL_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_CRL_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } -pub const X509_ALGORS = struct_stack_st_X509_ALGOR; +pub extern const X509_CRL_it: ASN1_ITEM; +pub extern fn X509_CRL_up_ref(crl: ?*X509_CRL) c_int; +pub extern fn X509_CRL_dup(crl: ?*X509_CRL) ?*X509_CRL; +pub extern fn X509_CRL_free(crl: ?*X509_CRL) void; +pub extern fn d2i_X509_CRL(out: [*c]?*X509_CRL, inp: [*c][*c]const u8, len: c_long) ?*X509_CRL; +pub extern fn i2d_X509_CRL(crl: ?*X509_CRL, outp: [*c][*c]u8) c_int; +pub extern fn X509_CRL_get_version(crl: ?*const X509_CRL) c_long; +pub extern fn X509_CRL_get0_lastUpdate(crl: ?*const X509_CRL) [*c]const ASN1_TIME; +pub extern fn X509_CRL_get0_nextUpdate(crl: ?*const X509_CRL) [*c]const ASN1_TIME; +pub extern fn X509_CRL_get_issuer(crl: ?*const X509_CRL) ?*X509_NAME; +pub extern fn X509_CRL_get_REVOKED(crl: ?*X509_CRL) ?*struct_stack_st_X509_REVOKED; +pub extern fn X509_CRL_get0_extensions(crl: ?*const X509_CRL) ?*const struct_stack_st_X509_EXTENSION; +pub extern fn X509_CRL_get_ext_count(x: ?*const X509_CRL) c_int; +pub extern fn X509_CRL_get_ext_by_NID(x: ?*const X509_CRL, nid: c_int, lastpos: c_int) c_int; +pub extern fn X509_CRL_get_ext_by_OBJ(x: ?*const X509_CRL, obj: ?*const ASN1_OBJECT, lastpos: c_int) c_int; +pub extern fn X509_CRL_get_ext_by_critical(x: ?*const X509_CRL, crit: c_int, lastpos: c_int) c_int; +pub extern fn X509_CRL_get_ext(x: ?*const X509_CRL, loc: c_int) ?*X509_EXTENSION; +pub extern fn X509_CRL_get0_signature(crl: ?*const X509_CRL, out_sig: [*c][*c]const ASN1_BIT_STRING, out_alg: [*c][*c]const X509_ALGOR) void; +pub extern fn X509_CRL_get_signature_nid(crl: ?*const X509_CRL) c_int; +pub extern fn i2d_X509_CRL_tbs(crl: ?*X509_CRL, outp: [*c][*c]u8) c_int; +pub extern fn X509_CRL_new() ?*X509_CRL; +pub extern fn X509_CRL_set_version(crl: ?*X509_CRL, version: c_long) c_int; +pub extern fn X509_CRL_set_issuer_name(crl: ?*X509_CRL, name: ?*X509_NAME) c_int; +pub extern fn X509_CRL_set1_lastUpdate(crl: ?*X509_CRL, tm: [*c]const ASN1_TIME) c_int; +pub extern fn X509_CRL_set1_nextUpdate(crl: ?*X509_CRL, tm: [*c]const ASN1_TIME) c_int; +pub extern fn X509_CRL_delete_ext(x: ?*X509_CRL, loc: c_int) ?*X509_EXTENSION; +pub extern fn X509_CRL_add_ext(x: ?*X509_CRL, ex: ?*const X509_EXTENSION, loc: c_int) c_int; +pub extern fn X509_CRL_sign(crl: ?*X509_CRL, pkey: [*c]EVP_PKEY, md: ?*const EVP_MD) c_int; +pub extern fn X509_CRL_sign_ctx(crl: ?*X509_CRL, ctx: [*c]EVP_MD_CTX) c_int; +pub extern fn i2d_re_X509_CRL_tbs(crl: ?*X509_CRL, outp: [*c][*c]u8) c_int; +pub extern fn X509_CRL_set1_signature_algo(crl: ?*X509_CRL, algo: [*c]const X509_ALGOR) c_int; +pub extern fn X509_CRL_set1_signature_value(crl: ?*X509_CRL, sig: [*c]const u8, sig_len: usize) c_int; +pub extern const X509_REQ_it: ASN1_ITEM; +pub extern fn X509_REQ_dup(req: ?*X509_REQ) ?*X509_REQ; +pub extern fn X509_REQ_free(req: ?*X509_REQ) void; +pub extern fn d2i_X509_REQ(out: [*c]?*X509_REQ, inp: [*c][*c]const u8, len: c_long) ?*X509_REQ; +pub extern fn i2d_X509_REQ(req: ?*X509_REQ, outp: [*c][*c]u8) c_int; +pub extern fn X509_REQ_get_version(req: ?*const X509_REQ) c_long; +pub extern fn X509_REQ_get_subject_name(req: ?*const X509_REQ) ?*X509_NAME; +pub extern fn X509_REQ_get_pubkey(req: ?*X509_REQ) [*c]EVP_PKEY; +pub extern fn X509_REQ_get0_signature(req: ?*const X509_REQ, out_sig: [*c][*c]const ASN1_BIT_STRING, out_alg: [*c][*c]const X509_ALGOR) void; +pub extern fn X509_REQ_get_signature_nid(req: ?*const X509_REQ) c_int; +pub extern fn X509_REQ_new() ?*X509_REQ; +pub extern fn X509_REQ_set_version(req: ?*X509_REQ, version: c_long) c_int; +pub extern fn X509_REQ_set_subject_name(req: ?*X509_REQ, name: ?*X509_NAME) c_int; +pub extern fn X509_REQ_set_pubkey(req: ?*X509_REQ, pkey: [*c]EVP_PKEY) c_int; +pub extern fn X509_REQ_sign(req: ?*X509_REQ, pkey: [*c]EVP_PKEY, md: ?*const EVP_MD) c_int; +pub extern fn X509_REQ_sign_ctx(req: ?*X509_REQ, ctx: [*c]EVP_MD_CTX) c_int; +pub extern fn i2d_re_X509_REQ_tbs(req: ?*X509_REQ, outp: [*c][*c]u8) c_int; +pub extern fn X509_REQ_set1_signature_algo(req: ?*X509_REQ, algo: [*c]const X509_ALGOR) c_int; +pub extern fn X509_REQ_set1_signature_value(req: ?*X509_REQ, sig: [*c]const u8, sig_len: usize) c_int; pub const struct_stack_st_X509_NAME_ENTRY = opaque {}; -pub const stack_X509_NAME_ENTRY_free_func = ?*const fn (?*X509_NAME_ENTRY) callconv(.C) void; -pub const stack_X509_NAME_ENTRY_copy_func = ?*const fn (?*X509_NAME_ENTRY) callconv(.C) ?*X509_NAME_ENTRY; -pub const stack_X509_NAME_ENTRY_cmp_func = ?*const fn ([*c]?*const X509_NAME_ENTRY, [*c]?*const X509_NAME_ENTRY) callconv(.C) c_int; -pub fn sk_X509_NAME_ENTRY_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_NAME_ENTRY_free_func = ?*const fn (?*X509_NAME_ENTRY) callconv(.C) void; +pub const sk_X509_NAME_ENTRY_copy_func = ?*const fn (?*X509_NAME_ENTRY) callconv(.C) ?*X509_NAME_ENTRY; +pub const sk_X509_NAME_ENTRY_cmp_func = ?*const fn ([*c]?*const X509_NAME_ENTRY, [*c]?*const X509_NAME_ENTRY) callconv(.C) c_int; +pub fn sk_X509_NAME_ENTRY_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_X509_NAME_ENTRY_free_func, @alignCast(@import("std").meta.alignment(fn (?*X509_NAME_ENTRY) callconv(.C) void), free_func)).?(@ptrCast(?*X509_NAME_ENTRY, ptr)); + @as(sk_X509_NAME_ENTRY_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_NAME_ENTRY, @ptrCast(ptr))); } -pub fn sk_X509_NAME_ENTRY_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_NAME_ENTRY_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_X509_NAME_ENTRY_copy_func, @alignCast(@import("std").meta.alignment(fn (?*X509_NAME_ENTRY) callconv(.C) ?*X509_NAME_ENTRY), copy_func)).?(@ptrCast(?*X509_NAME_ENTRY, ptr))); + return @as(?*anyopaque, @ptrCast(@as(sk_X509_NAME_ENTRY_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_NAME_ENTRY, @ptrCast(ptr))))); } -pub fn sk_X509_NAME_ENTRY_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_NAME_ENTRY_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: ?*const X509_NAME_ENTRY = @ptrCast(?*const X509_NAME_ENTRY, a.*); - var b_ptr: ?*const X509_NAME_ENTRY = @ptrCast(?*const X509_NAME_ENTRY, b.*); - return @ptrCast(stack_X509_NAME_ENTRY_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_NAME_ENTRY, [*c]?*const X509_NAME_ENTRY) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: ?*const X509_NAME_ENTRY = @as(?*const X509_NAME_ENTRY, @ptrCast(a.*)); + var b_ptr: ?*const X509_NAME_ENTRY = @as(?*const X509_NAME_ENTRY, @ptrCast(b.*)); + return @as(sk_X509_NAME_ENTRY_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_NAME_ENTRY_new(arg_comp: stack_X509_NAME_ENTRY_cmp_func) callconv(.C) ?*struct_stack_st_X509_NAME_ENTRY { +pub fn sk_X509_NAME_ENTRY_new(arg_comp: sk_X509_NAME_ENTRY_cmp_func) callconv(.C) ?*struct_stack_st_X509_NAME_ENTRY { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_X509_NAME_ENTRY, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_X509_NAME_ENTRY, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_X509_NAME_ENTRY_new_null() callconv(.C) ?*struct_stack_st_X509_NAME_ENTRY { - return @ptrCast(?*struct_stack_st_X509_NAME_ENTRY, sk_new_null()); + return @as(?*struct_stack_st_X509_NAME_ENTRY, @ptrCast(sk_new_null())); } pub fn sk_X509_NAME_ENTRY_num(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_NAME_ENTRY_zero(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_NAME_ENTRY_value(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY, arg_i: usize) callconv(.C) ?*X509_NAME_ENTRY { var sk = arg_sk; var i = arg_i; - return @ptrCast(?*X509_NAME_ENTRY, sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i)); + return @as(?*X509_NAME_ENTRY, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } pub fn sk_X509_NAME_ENTRY_set(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_i: usize, arg_p: ?*X509_NAME_ENTRY) callconv(.C) ?*X509_NAME_ENTRY { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast(?*X509_NAME_ENTRY, sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p))); + return @as(?*X509_NAME_ENTRY, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } pub fn sk_X509_NAME_ENTRY_free(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_NAME_ENTRY_pop_free(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_free_func: stack_X509_NAME_ENTRY_free_func) callconv(.C) void { +pub fn sk_X509_NAME_ENTRY_pop_free(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_free_func: sk_X509_NAME_ENTRY_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_NAME_ENTRY_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_NAME_ENTRY_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_X509_NAME_ENTRY_insert(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_p: ?*X509_NAME_ENTRY, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_X509_NAME_ENTRY_delete(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_where: usize) callconv(.C) ?*X509_NAME_ENTRY { var sk = arg_sk; var where = arg_where; - return @ptrCast(?*X509_NAME_ENTRY, sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where)); + return @as(?*X509_NAME_ENTRY, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } pub fn sk_X509_NAME_ENTRY_delete_ptr(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_p: ?*const X509_NAME_ENTRY) callconv(.C) ?*X509_NAME_ENTRY { var sk = arg_sk; var p = arg_p; - return @ptrCast(?*X509_NAME_ENTRY, sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p))); + return @as(?*X509_NAME_ENTRY, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } pub fn sk_X509_NAME_ENTRY_find(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY, arg_out_index: [*c]usize, arg_p: ?*const X509_NAME_ENTRY) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_X509_NAME_ENTRY_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_NAME_ENTRY_call_cmp_func); } pub fn sk_X509_NAME_ENTRY_shift(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.C) ?*X509_NAME_ENTRY { var sk = arg_sk; - return @ptrCast(?*X509_NAME_ENTRY, sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_NAME_ENTRY, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_NAME_ENTRY_push(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_p: ?*X509_NAME_ENTRY) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_X509_NAME_ENTRY_pop(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.C) ?*X509_NAME_ENTRY { var sk = arg_sk; - return @ptrCast(?*X509_NAME_ENTRY, sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_NAME_ENTRY, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_NAME_ENTRY_dup(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY) callconv(.C) ?*struct_stack_st_X509_NAME_ENTRY { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_X509_NAME_ENTRY, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_X509_NAME_ENTRY, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_NAME_ENTRY_sort(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_NAME_ENTRY_call_cmp_func); } pub fn sk_X509_NAME_ENTRY_is_sorted(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_NAME_ENTRY_set_cmp_func(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_comp: stack_X509_NAME_ENTRY_cmp_func) callconv(.C) stack_X509_NAME_ENTRY_cmp_func { +pub fn sk_X509_NAME_ENTRY_set_cmp_func(arg_sk: ?*struct_stack_st_X509_NAME_ENTRY, arg_comp: sk_X509_NAME_ENTRY_cmp_func) callconv(.C) sk_X509_NAME_ENTRY_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_X509_NAME_ENTRY_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_NAME_ENTRY, [*c]?*const X509_NAME_ENTRY) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_X509_NAME_ENTRY_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_NAME_ENTRY_deep_copy(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY, arg_copy_func: ?*const fn (?*X509_NAME_ENTRY) callconv(.C) ?*X509_NAME_ENTRY, arg_free_func: ?*const fn (?*X509_NAME_ENTRY) callconv(.C) void) callconv(.C) ?*struct_stack_st_X509_NAME_ENTRY { +pub fn sk_X509_NAME_ENTRY_deep_copy(arg_sk: ?*const struct_stack_st_X509_NAME_ENTRY, arg_copy_func: sk_X509_NAME_ENTRY_copy_func, arg_free_func: sk_X509_NAME_ENTRY_free_func) callconv(.C) ?*struct_stack_st_X509_NAME_ENTRY { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_X509_NAME_ENTRY, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_NAME_ENTRY_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_X509_NAME_ENTRY_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_X509_NAME_ENTRY, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_NAME_ENTRY_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_NAME_ENTRY_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub const struct_stack_st_X509_NAME = opaque {}; -pub const stack_X509_NAME_free_func = ?*const fn (?*X509_NAME) callconv(.C) void; -pub const stack_X509_NAME_copy_func = ?*const fn (?*X509_NAME) callconv(.C) ?*X509_NAME; -pub const stack_X509_NAME_cmp_func = ?*const fn ([*c]?*const X509_NAME, [*c]?*const X509_NAME) callconv(.C) c_int; -pub fn sk_X509_NAME_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_NAME_free_func = ?*const fn (?*X509_NAME) callconv(.C) void; +pub const sk_X509_NAME_copy_func = ?*const fn (?*X509_NAME) callconv(.C) ?*X509_NAME; +pub const sk_X509_NAME_cmp_func = ?*const fn ([*c]?*const X509_NAME, [*c]?*const X509_NAME) callconv(.C) c_int; +pub fn sk_X509_NAME_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_X509_NAME_free_func, @alignCast(@import("std").meta.alignment(fn (?*X509_NAME) callconv(.C) void), free_func)).?(@ptrCast(?*X509_NAME, ptr)); + @as(sk_X509_NAME_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_NAME, @ptrCast(ptr))); } -pub fn sk_X509_NAME_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_NAME_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_X509_NAME_copy_func, @alignCast(@import("std").meta.alignment(fn (?*X509_NAME) callconv(.C) ?*X509_NAME), copy_func)).?(@ptrCast(?*X509_NAME, ptr))); + return @as(?*anyopaque, @ptrCast(@as(sk_X509_NAME_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_NAME, @ptrCast(ptr))))); } -pub fn sk_X509_NAME_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_NAME_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: ?*const X509_NAME = @ptrCast(?*const X509_NAME, a.*); - var b_ptr: ?*const X509_NAME = @ptrCast(?*const X509_NAME, b.*); - return @ptrCast(stack_X509_NAME_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_NAME, [*c]?*const X509_NAME) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: ?*const X509_NAME = @as(?*const X509_NAME, @ptrCast(a.*)); + var b_ptr: ?*const X509_NAME = @as(?*const X509_NAME, @ptrCast(b.*)); + return @as(sk_X509_NAME_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_NAME_new(arg_comp: stack_X509_NAME_cmp_func) callconv(.C) ?*struct_stack_st_X509_NAME { +pub fn sk_X509_NAME_new(arg_comp: sk_X509_NAME_cmp_func) callconv(.C) ?*struct_stack_st_X509_NAME { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_X509_NAME, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_X509_NAME, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_X509_NAME_new_null() callconv(.C) ?*struct_stack_st_X509_NAME { - return @ptrCast(?*struct_stack_st_X509_NAME, sk_new_null()); + return @as(?*struct_stack_st_X509_NAME, @ptrCast(sk_new_null())); } pub fn sk_X509_NAME_num(arg_sk: ?*const struct_stack_st_X509_NAME) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_NAME_zero(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_NAME_value(arg_sk: ?*const struct_stack_st_X509_NAME, arg_i: usize) callconv(.C) ?*X509_NAME { var sk = arg_sk; var i = arg_i; - return @ptrCast(?*X509_NAME, sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i)); + return @as(?*X509_NAME, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } pub fn sk_X509_NAME_set(arg_sk: ?*struct_stack_st_X509_NAME, arg_i: usize, arg_p: ?*X509_NAME) callconv(.C) ?*X509_NAME { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast(?*X509_NAME, sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p))); + return @as(?*X509_NAME, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } pub fn sk_X509_NAME_free(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_NAME_pop_free(arg_sk: ?*struct_stack_st_X509_NAME, arg_free_func: stack_X509_NAME_free_func) callconv(.C) void { +pub fn sk_X509_NAME_pop_free(arg_sk: ?*struct_stack_st_X509_NAME, arg_free_func: sk_X509_NAME_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_NAME_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_NAME_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_X509_NAME_insert(arg_sk: ?*struct_stack_st_X509_NAME, arg_p: ?*X509_NAME, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_X509_NAME_delete(arg_sk: ?*struct_stack_st_X509_NAME, arg_where: usize) callconv(.C) ?*X509_NAME { var sk = arg_sk; var where = arg_where; - return @ptrCast(?*X509_NAME, sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where)); + return @as(?*X509_NAME, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } pub fn sk_X509_NAME_delete_ptr(arg_sk: ?*struct_stack_st_X509_NAME, arg_p: ?*const X509_NAME) callconv(.C) ?*X509_NAME { var sk = arg_sk; var p = arg_p; - return @ptrCast(?*X509_NAME, sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p))); + return @as(?*X509_NAME, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } pub fn sk_X509_NAME_find(arg_sk: ?*const struct_stack_st_X509_NAME, arg_out_index: [*c]usize, arg_p: ?*const X509_NAME) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_X509_NAME_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_NAME_call_cmp_func); } pub fn sk_X509_NAME_shift(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.C) ?*X509_NAME { var sk = arg_sk; - return @ptrCast(?*X509_NAME, sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_NAME, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_NAME_push(arg_sk: ?*struct_stack_st_X509_NAME, arg_p: ?*X509_NAME) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_X509_NAME_pop(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.C) ?*X509_NAME { var sk = arg_sk; - return @ptrCast(?*X509_NAME, sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_NAME, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_NAME_dup(arg_sk: ?*const struct_stack_st_X509_NAME) callconv(.C) ?*struct_stack_st_X509_NAME { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_X509_NAME, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_X509_NAME, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_NAME_sort(arg_sk: ?*struct_stack_st_X509_NAME) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_NAME_call_cmp_func); } pub fn sk_X509_NAME_is_sorted(arg_sk: ?*const struct_stack_st_X509_NAME) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_NAME_set_cmp_func(arg_sk: ?*struct_stack_st_X509_NAME, arg_comp: stack_X509_NAME_cmp_func) callconv(.C) stack_X509_NAME_cmp_func { +pub fn sk_X509_NAME_set_cmp_func(arg_sk: ?*struct_stack_st_X509_NAME, arg_comp: sk_X509_NAME_cmp_func) callconv(.C) sk_X509_NAME_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_X509_NAME_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_NAME, [*c]?*const X509_NAME) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_X509_NAME_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_NAME_deep_copy(arg_sk: ?*const struct_stack_st_X509_NAME, arg_copy_func: ?*const fn (?*X509_NAME) callconv(.C) ?*X509_NAME, arg_free_func: ?*const fn (?*X509_NAME) callconv(.C) void) callconv(.C) ?*struct_stack_st_X509_NAME { +pub fn sk_X509_NAME_deep_copy(arg_sk: ?*const struct_stack_st_X509_NAME, arg_copy_func: sk_X509_NAME_copy_func, arg_free_func: sk_X509_NAME_free_func) callconv(.C) ?*struct_stack_st_X509_NAME { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_X509_NAME, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_NAME_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_X509_NAME_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_X509_NAME, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_NAME_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_NAME_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } -pub const X509_EXTENSIONS = struct_stack_st_X509_EXTENSION; -pub const stack_X509_EXTENSION_free_func = ?*const fn (?*X509_EXTENSION) callconv(.C) void; -pub const stack_X509_EXTENSION_copy_func = ?*const fn (?*X509_EXTENSION) callconv(.C) ?*X509_EXTENSION; -pub const stack_X509_EXTENSION_cmp_func = ?*const fn ([*c]?*const X509_EXTENSION, [*c]?*const X509_EXTENSION) callconv(.C) c_int; -pub fn sk_X509_EXTENSION_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub extern const X509_NAME_it: ASN1_ITEM; +pub extern fn X509_NAME_new() ?*X509_NAME; +pub extern fn X509_NAME_free(name: ?*X509_NAME) void; +pub extern fn d2i_X509_NAME(out: [*c]?*X509_NAME, inp: [*c][*c]const u8, len: c_long) ?*X509_NAME; +pub extern fn i2d_X509_NAME(in: ?*X509_NAME, outp: [*c][*c]u8) c_int; +pub extern fn X509_NAME_dup(name: ?*X509_NAME) ?*X509_NAME; +pub extern fn X509_NAME_get0_der(name: ?*X509_NAME, out_der: [*c][*c]const u8, out_der_len: [*c]usize) c_int; +pub extern fn X509_NAME_set(xn: [*c]?*X509_NAME, name: ?*X509_NAME) c_int; +pub extern fn X509_NAME_entry_count(name: ?*const X509_NAME) c_int; +pub extern fn X509_NAME_get_index_by_NID(name: ?*const X509_NAME, nid: c_int, lastpos: c_int) c_int; +pub extern fn X509_NAME_get_index_by_OBJ(name: ?*const X509_NAME, obj: ?*const ASN1_OBJECT, lastpos: c_int) c_int; +pub extern fn X509_NAME_get_entry(name: ?*const X509_NAME, loc: c_int) ?*X509_NAME_ENTRY; +pub extern fn X509_NAME_delete_entry(name: ?*X509_NAME, loc: c_int) ?*X509_NAME_ENTRY; +pub extern fn X509_NAME_add_entry(name: ?*X509_NAME, entry: ?*const X509_NAME_ENTRY, loc: c_int, set: c_int) c_int; +pub extern fn X509_NAME_add_entry_by_OBJ(name: ?*X509_NAME, obj: ?*const ASN1_OBJECT, @"type": c_int, bytes: [*c]const u8, len: c_int, loc: c_int, set: c_int) c_int; +pub extern fn X509_NAME_add_entry_by_NID(name: ?*X509_NAME, nid: c_int, @"type": c_int, bytes: [*c]const u8, len: c_int, loc: c_int, set: c_int) c_int; +pub extern fn X509_NAME_add_entry_by_txt(name: ?*X509_NAME, field: [*c]const u8, @"type": c_int, bytes: [*c]const u8, len: c_int, loc: c_int, set: c_int) c_int; +pub extern const X509_NAME_ENTRY_it: ASN1_ITEM; +pub extern fn X509_NAME_ENTRY_new() ?*X509_NAME_ENTRY; +pub extern fn X509_NAME_ENTRY_free(entry: ?*X509_NAME_ENTRY) void; +pub extern fn d2i_X509_NAME_ENTRY(out: [*c]?*X509_NAME_ENTRY, inp: [*c][*c]const u8, len: c_long) ?*X509_NAME_ENTRY; +pub extern fn i2d_X509_NAME_ENTRY(in: ?*const X509_NAME_ENTRY, outp: [*c][*c]u8) c_int; +pub extern fn X509_NAME_ENTRY_dup(entry: ?*const X509_NAME_ENTRY) ?*X509_NAME_ENTRY; +pub extern fn X509_NAME_ENTRY_get_object(entry: ?*const X509_NAME_ENTRY) ?*ASN1_OBJECT; +pub extern fn X509_NAME_ENTRY_set_object(entry: ?*X509_NAME_ENTRY, obj: ?*const ASN1_OBJECT) c_int; +pub extern fn X509_NAME_ENTRY_get_data(entry: ?*const X509_NAME_ENTRY) [*c]ASN1_STRING; +pub extern fn X509_NAME_ENTRY_set_data(entry: ?*X509_NAME_ENTRY, @"type": c_int, bytes: [*c]const u8, len: c_int) c_int; +pub extern fn X509_NAME_ENTRY_set(entry: ?*const X509_NAME_ENTRY) c_int; +pub extern fn X509_NAME_ENTRY_create_by_OBJ(out: [*c]?*X509_NAME_ENTRY, obj: ?*const ASN1_OBJECT, @"type": c_int, bytes: [*c]const u8, len: c_int) ?*X509_NAME_ENTRY; +pub extern fn X509_NAME_ENTRY_create_by_NID(out: [*c]?*X509_NAME_ENTRY, nid: c_int, @"type": c_int, bytes: [*c]const u8, len: c_int) ?*X509_NAME_ENTRY; +pub extern fn X509_NAME_ENTRY_create_by_txt(out: [*c]?*X509_NAME_ENTRY, field: [*c]const u8, @"type": c_int, bytes: [*c]const u8, len: c_int) ?*X509_NAME_ENTRY; +pub extern const X509_EXTENSION_it: ASN1_ITEM; +pub extern fn X509_EXTENSION_new() ?*X509_EXTENSION; +pub extern fn X509_EXTENSION_free(ex: ?*X509_EXTENSION) void; +pub extern fn d2i_X509_EXTENSION(out: [*c]?*X509_EXTENSION, inp: [*c][*c]const u8, len: c_long) ?*X509_EXTENSION; +pub extern fn i2d_X509_EXTENSION(alg: ?*const X509_EXTENSION, outp: [*c][*c]u8) c_int; +pub extern fn X509_EXTENSION_dup(ex: ?*const X509_EXTENSION) ?*X509_EXTENSION; +pub extern fn X509_EXTENSION_create_by_NID(ex: [*c]?*X509_EXTENSION, nid: c_int, crit: c_int, data: [*c]const ASN1_OCTET_STRING) ?*X509_EXTENSION; +pub extern fn X509_EXTENSION_create_by_OBJ(ex: [*c]?*X509_EXTENSION, obj: ?*const ASN1_OBJECT, crit: c_int, data: [*c]const ASN1_OCTET_STRING) ?*X509_EXTENSION; +pub extern fn X509_EXTENSION_get_object(ex: ?*const X509_EXTENSION) ?*ASN1_OBJECT; +pub extern fn X509_EXTENSION_get_data(ne: ?*const X509_EXTENSION) [*c]ASN1_OCTET_STRING; +pub extern fn X509_EXTENSION_get_critical(ex: ?*const X509_EXTENSION) c_int; +pub extern fn X509_EXTENSION_set_object(ex: ?*X509_EXTENSION, obj: ?*const ASN1_OBJECT) c_int; +pub extern fn X509_EXTENSION_set_critical(ex: ?*X509_EXTENSION, crit: c_int) c_int; +pub extern fn X509_EXTENSION_set_data(ex: ?*X509_EXTENSION, data: [*c]const ASN1_OCTET_STRING) c_int; +pub const sk_X509_EXTENSION_free_func = ?*const fn (?*X509_EXTENSION) callconv(.C) void; +pub const sk_X509_EXTENSION_copy_func = ?*const fn (?*X509_EXTENSION) callconv(.C) ?*X509_EXTENSION; +pub const sk_X509_EXTENSION_cmp_func = ?*const fn ([*c]?*const X509_EXTENSION, [*c]?*const X509_EXTENSION) callconv(.C) c_int; +pub fn sk_X509_EXTENSION_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_X509_EXTENSION_free_func, @alignCast(@import("std").meta.alignment(fn (?*X509_EXTENSION) callconv(.C) void), free_func)).?(@ptrCast(?*X509_EXTENSION, ptr)); + @as(sk_X509_EXTENSION_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_EXTENSION, @ptrCast(ptr))); } -pub fn sk_X509_EXTENSION_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_EXTENSION_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_X509_EXTENSION_copy_func, @alignCast(@import("std").meta.alignment(fn (?*X509_EXTENSION) callconv(.C) ?*X509_EXTENSION), copy_func)).?(@ptrCast(?*X509_EXTENSION, ptr))); + return @as(?*anyopaque, @ptrCast(@as(sk_X509_EXTENSION_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_EXTENSION, @ptrCast(ptr))))); } -pub fn sk_X509_EXTENSION_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_EXTENSION_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: ?*const X509_EXTENSION = @ptrCast(?*const X509_EXTENSION, a.*); - var b_ptr: ?*const X509_EXTENSION = @ptrCast(?*const X509_EXTENSION, b.*); - return @ptrCast(stack_X509_EXTENSION_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_EXTENSION, [*c]?*const X509_EXTENSION) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: ?*const X509_EXTENSION = @as(?*const X509_EXTENSION, @ptrCast(a.*)); + var b_ptr: ?*const X509_EXTENSION = @as(?*const X509_EXTENSION, @ptrCast(b.*)); + return @as(sk_X509_EXTENSION_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_EXTENSION_new(arg_comp: stack_X509_EXTENSION_cmp_func) callconv(.C) ?*struct_stack_st_X509_EXTENSION { +pub fn sk_X509_EXTENSION_new(arg_comp: sk_X509_EXTENSION_cmp_func) callconv(.C) ?*struct_stack_st_X509_EXTENSION { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_X509_EXTENSION, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_X509_EXTENSION, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_X509_EXTENSION_new_null() callconv(.C) ?*struct_stack_st_X509_EXTENSION { - return @ptrCast(?*struct_stack_st_X509_EXTENSION, sk_new_null()); + return @as(?*struct_stack_st_X509_EXTENSION, @ptrCast(sk_new_null())); } pub fn sk_X509_EXTENSION_num(arg_sk: ?*const struct_stack_st_X509_EXTENSION) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_EXTENSION_zero(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_EXTENSION_value(arg_sk: ?*const struct_stack_st_X509_EXTENSION, arg_i: usize) callconv(.C) ?*X509_EXTENSION { var sk = arg_sk; var i = arg_i; - return @ptrCast(?*X509_EXTENSION, sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i)); + return @as(?*X509_EXTENSION, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } pub fn sk_X509_EXTENSION_set(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_i: usize, arg_p: ?*X509_EXTENSION) callconv(.C) ?*X509_EXTENSION { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast(?*X509_EXTENSION, sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p))); + return @as(?*X509_EXTENSION, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } pub fn sk_X509_EXTENSION_free(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_EXTENSION_pop_free(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_free_func: stack_X509_EXTENSION_free_func) callconv(.C) void { +pub fn sk_X509_EXTENSION_pop_free(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_free_func: sk_X509_EXTENSION_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_EXTENSION_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_EXTENSION_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_X509_EXTENSION_insert(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_p: ?*X509_EXTENSION, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_X509_EXTENSION_delete(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_where: usize) callconv(.C) ?*X509_EXTENSION { var sk = arg_sk; var where = arg_where; - return @ptrCast(?*X509_EXTENSION, sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where)); + return @as(?*X509_EXTENSION, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } pub fn sk_X509_EXTENSION_delete_ptr(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_p: ?*const X509_EXTENSION) callconv(.C) ?*X509_EXTENSION { var sk = arg_sk; var p = arg_p; - return @ptrCast(?*X509_EXTENSION, sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p))); + return @as(?*X509_EXTENSION, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } pub fn sk_X509_EXTENSION_find(arg_sk: ?*const struct_stack_st_X509_EXTENSION, arg_out_index: [*c]usize, arg_p: ?*const X509_EXTENSION) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_X509_EXTENSION_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_EXTENSION_call_cmp_func); } pub fn sk_X509_EXTENSION_shift(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.C) ?*X509_EXTENSION { var sk = arg_sk; - return @ptrCast(?*X509_EXTENSION, sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_EXTENSION, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_EXTENSION_push(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_p: ?*X509_EXTENSION) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_X509_EXTENSION_pop(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.C) ?*X509_EXTENSION { var sk = arg_sk; - return @ptrCast(?*X509_EXTENSION, sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_EXTENSION, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_EXTENSION_dup(arg_sk: ?*const struct_stack_st_X509_EXTENSION) callconv(.C) ?*struct_stack_st_X509_EXTENSION { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_X509_EXTENSION, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_X509_EXTENSION, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_EXTENSION_sort(arg_sk: ?*struct_stack_st_X509_EXTENSION) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_EXTENSION_call_cmp_func); } pub fn sk_X509_EXTENSION_is_sorted(arg_sk: ?*const struct_stack_st_X509_EXTENSION) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_EXTENSION_set_cmp_func(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_comp: stack_X509_EXTENSION_cmp_func) callconv(.C) stack_X509_EXTENSION_cmp_func { +pub fn sk_X509_EXTENSION_set_cmp_func(arg_sk: ?*struct_stack_st_X509_EXTENSION, arg_comp: sk_X509_EXTENSION_cmp_func) callconv(.C) sk_X509_EXTENSION_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_X509_EXTENSION_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_EXTENSION, [*c]?*const X509_EXTENSION) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_X509_EXTENSION_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_EXTENSION_deep_copy(arg_sk: ?*const struct_stack_st_X509_EXTENSION, arg_copy_func: ?*const fn (?*X509_EXTENSION) callconv(.C) ?*X509_EXTENSION, arg_free_func: ?*const fn (?*X509_EXTENSION) callconv(.C) void) callconv(.C) ?*struct_stack_st_X509_EXTENSION { +pub fn sk_X509_EXTENSION_deep_copy(arg_sk: ?*const struct_stack_st_X509_EXTENSION, arg_copy_func: sk_X509_EXTENSION_copy_func, arg_free_func: sk_X509_EXTENSION_free_func) callconv(.C) ?*struct_stack_st_X509_EXTENSION { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_X509_EXTENSION, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_EXTENSION_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_X509_EXTENSION_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_X509_EXTENSION, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_EXTENSION_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_EXTENSION_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } -pub const struct_stack_st_X509_ATTRIBUTE = opaque {}; -pub const stack_X509_ATTRIBUTE_free_func = ?*const fn (?*X509_ATTRIBUTE) callconv(.C) void; -pub const stack_X509_ATTRIBUTE_copy_func = ?*const fn (?*X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE; -pub const stack_X509_ATTRIBUTE_cmp_func = ?*const fn ([*c]?*const X509_ATTRIBUTE, [*c]?*const X509_ATTRIBUTE) callconv(.C) c_int; -pub fn sk_X509_ATTRIBUTE_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const X509_EXTENSIONS = struct_stack_st_X509_EXTENSION; +pub extern const X509_EXTENSIONS_it: ASN1_ITEM; +pub extern fn d2i_X509_EXTENSIONS(out: [*c]?*X509_EXTENSIONS, inp: [*c][*c]const u8, len: c_long) ?*X509_EXTENSIONS; +pub extern fn i2d_X509_EXTENSIONS(alg: ?*const X509_EXTENSIONS, outp: [*c][*c]u8) c_int; +pub extern fn X509v3_get_ext_count(x: ?*const struct_stack_st_X509_EXTENSION) c_int; +pub extern fn X509v3_get_ext_by_NID(x: ?*const struct_stack_st_X509_EXTENSION, nid: c_int, lastpos: c_int) c_int; +pub extern fn X509v3_get_ext_by_OBJ(x: ?*const struct_stack_st_X509_EXTENSION, obj: ?*const ASN1_OBJECT, lastpos: c_int) c_int; +pub extern fn X509v3_get_ext_by_critical(x: ?*const struct_stack_st_X509_EXTENSION, crit: c_int, lastpos: c_int) c_int; +pub extern fn X509v3_get_ext(x: ?*const struct_stack_st_X509_EXTENSION, loc: c_int) ?*X509_EXTENSION; +pub extern fn X509v3_delete_ext(x: ?*struct_stack_st_X509_EXTENSION, loc: c_int) ?*X509_EXTENSION; +pub extern fn X509v3_add_ext(x: [*c]?*struct_stack_st_X509_EXTENSION, ex: ?*const X509_EXTENSION, loc: c_int) ?*struct_stack_st_X509_EXTENSION; +pub const struct_stack_st_X509_ALGOR = opaque {}; +pub const sk_X509_ALGOR_free_func = ?*const fn ([*c]X509_ALGOR) callconv(.C) void; +pub const sk_X509_ALGOR_copy_func = ?*const fn ([*c]X509_ALGOR) callconv(.C) [*c]X509_ALGOR; +pub const sk_X509_ALGOR_cmp_func = ?*const fn ([*c][*c]const X509_ALGOR, [*c][*c]const X509_ALGOR) callconv(.C) c_int; +pub fn sk_X509_ALGOR_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_X509_ATTRIBUTE_free_func, @alignCast(@import("std").meta.alignment(fn (?*X509_ATTRIBUTE) callconv(.C) void), free_func)).?(@ptrCast(?*X509_ATTRIBUTE, ptr)); + @as(sk_X509_ALGOR_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]X509_ALGOR, @ptrCast(@alignCast(ptr)))); } -pub fn sk_X509_ATTRIBUTE_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_ALGOR_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_X509_ATTRIBUTE_copy_func, @alignCast(@import("std").meta.alignment(fn (?*X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE), copy_func)).?(@ptrCast(?*X509_ATTRIBUTE, ptr))); + return @as(?*anyopaque, @ptrCast(@as(sk_X509_ALGOR_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]X509_ALGOR, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_X509_ATTRIBUTE_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_ALGOR_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: ?*const X509_ATTRIBUTE = @ptrCast(?*const X509_ATTRIBUTE, a.*); - var b_ptr: ?*const X509_ATTRIBUTE = @ptrCast(?*const X509_ATTRIBUTE, b.*); - return @ptrCast(stack_X509_ATTRIBUTE_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_ATTRIBUTE, [*c]?*const X509_ATTRIBUTE) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: [*c]const X509_ALGOR = @as([*c]const X509_ALGOR, @ptrCast(@alignCast(a.*))); + var b_ptr: [*c]const X509_ALGOR = @as([*c]const X509_ALGOR, @ptrCast(@alignCast(b.*))); + return @as(sk_X509_ALGOR_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_ATTRIBUTE_new(arg_comp: stack_X509_ATTRIBUTE_cmp_func) callconv(.C) ?*struct_stack_st_X509_ATTRIBUTE { +pub fn sk_X509_ALGOR_new(arg_comp: sk_X509_ALGOR_cmp_func) callconv(.C) ?*struct_stack_st_X509_ALGOR { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_X509_ATTRIBUTE, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_X509_ALGOR, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_ATTRIBUTE_new_null() callconv(.C) ?*struct_stack_st_X509_ATTRIBUTE { - return @ptrCast(?*struct_stack_st_X509_ATTRIBUTE, sk_new_null()); +pub fn sk_X509_ALGOR_new_null() callconv(.C) ?*struct_stack_st_X509_ALGOR { + return @as(?*struct_stack_st_X509_ALGOR, @ptrCast(sk_new_null())); } -pub fn sk_X509_ATTRIBUTE_num(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE) callconv(.C) usize { +pub fn sk_X509_ALGOR_num(arg_sk: ?*const struct_stack_st_X509_ALGOR) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ATTRIBUTE_zero(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) void { +pub fn sk_X509_ALGOR_zero(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ATTRIBUTE_value(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE, arg_i: usize) callconv(.C) ?*X509_ATTRIBUTE { +pub fn sk_X509_ALGOR_value(arg_sk: ?*const struct_stack_st_X509_ALGOR, arg_i: usize) callconv(.C) [*c]X509_ALGOR { var sk = arg_sk; var i = arg_i; - return @ptrCast(?*X509_ATTRIBUTE, sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i)); + return @as([*c]X509_ALGOR, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } -pub fn sk_X509_ATTRIBUTE_set(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_i: usize, arg_p: ?*X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE { +pub fn sk_X509_ALGOR_set(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_i: usize, arg_p: [*c]X509_ALGOR) callconv(.C) [*c]X509_ALGOR { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast(?*X509_ATTRIBUTE, sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p))); + return @as([*c]X509_ALGOR, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } -pub fn sk_X509_ATTRIBUTE_free(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) void { +pub fn sk_X509_ALGOR_free(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ATTRIBUTE_pop_free(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_free_func: stack_X509_ATTRIBUTE_free_func) callconv(.C) void { +pub fn sk_X509_ALGOR_pop_free(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_free_func: sk_X509_ALGOR_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_ATTRIBUTE_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_ALGOR_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_ATTRIBUTE_insert(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_p: ?*X509_ATTRIBUTE, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_ALGOR_insert(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_p: [*c]X509_ALGOR, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_ATTRIBUTE_delete(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_where: usize) callconv(.C) ?*X509_ATTRIBUTE { +pub fn sk_X509_ALGOR_delete(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_where: usize) callconv(.C) [*c]X509_ALGOR { var sk = arg_sk; var where = arg_where; - return @ptrCast(?*X509_ATTRIBUTE, sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where)); + return @as([*c]X509_ALGOR, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } -pub fn sk_X509_ATTRIBUTE_delete_ptr(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_p: ?*const X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE { +pub fn sk_X509_ALGOR_delete_ptr(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_p: [*c]const X509_ALGOR) callconv(.C) [*c]X509_ALGOR { var sk = arg_sk; var p = arg_p; - return @ptrCast(?*X509_ATTRIBUTE, sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p))); + return @as([*c]X509_ALGOR, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } -pub fn sk_X509_ATTRIBUTE_find(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE, arg_out_index: [*c]usize, arg_p: ?*const X509_ATTRIBUTE) callconv(.C) c_int { +pub fn sk_X509_ALGOR_find(arg_sk: ?*const struct_stack_st_X509_ALGOR, arg_out_index: [*c]usize, arg_p: [*c]const X509_ALGOR) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_X509_ATTRIBUTE_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_ALGOR_call_cmp_func); } -pub fn sk_X509_ATTRIBUTE_shift(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE { +pub fn sk_X509_ALGOR_shift(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) [*c]X509_ALGOR { var sk = arg_sk; - return @ptrCast(?*X509_ATTRIBUTE, sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as([*c]X509_ALGOR, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_X509_ATTRIBUTE_push(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_p: ?*X509_ATTRIBUTE) callconv(.C) usize { +pub fn sk_X509_ALGOR_push(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_p: [*c]X509_ALGOR) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_ATTRIBUTE_pop(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE { +pub fn sk_X509_ALGOR_pop(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) [*c]X509_ALGOR { var sk = arg_sk; - return @ptrCast(?*X509_ATTRIBUTE, sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as([*c]X509_ALGOR, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } -pub fn sk_X509_ATTRIBUTE_dup(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE) callconv(.C) ?*struct_stack_st_X509_ATTRIBUTE { +pub fn sk_X509_ALGOR_dup(arg_sk: ?*const struct_stack_st_X509_ALGOR) callconv(.C) ?*struct_stack_st_X509_ALGOR { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_X509_ATTRIBUTE, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_X509_ALGOR, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_ATTRIBUTE_sort(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) void { +pub fn sk_X509_ALGOR_sort(arg_sk: ?*struct_stack_st_X509_ALGOR) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_ALGOR_call_cmp_func); } -pub fn sk_X509_ATTRIBUTE_is_sorted(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE) callconv(.C) c_int { +pub fn sk_X509_ALGOR_is_sorted(arg_sk: ?*const struct_stack_st_X509_ALGOR) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_ATTRIBUTE_set_cmp_func(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_comp: stack_X509_ATTRIBUTE_cmp_func) callconv(.C) stack_X509_ATTRIBUTE_cmp_func { +pub fn sk_X509_ALGOR_set_cmp_func(arg_sk: ?*struct_stack_st_X509_ALGOR, arg_comp: sk_X509_ALGOR_cmp_func) callconv(.C) sk_X509_ALGOR_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_X509_ATTRIBUTE_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_ATTRIBUTE, [*c]?*const X509_ATTRIBUTE) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_X509_ALGOR_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_ATTRIBUTE_deep_copy(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE, arg_copy_func: ?*const fn (?*X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE, arg_free_func: ?*const fn (?*X509_ATTRIBUTE) callconv(.C) void) callconv(.C) ?*struct_stack_st_X509_ATTRIBUTE { +pub fn sk_X509_ALGOR_deep_copy(arg_sk: ?*const struct_stack_st_X509_ALGOR, arg_copy_func: sk_X509_ALGOR_copy_func, arg_free_func: sk_X509_ALGOR_free_func) callconv(.C) ?*struct_stack_st_X509_ALGOR { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_X509_ATTRIBUTE, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_ATTRIBUTE_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_X509_ATTRIBUTE_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_X509_ALGOR, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_ALGOR_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_ALGOR_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } -pub const struct_stack_st_DIST_POINT = opaque {}; -pub const stack_X509_free_func = ?*const fn (?*X509) callconv(.C) void; -pub const stack_X509_copy_func = ?*const fn (?*X509) callconv(.C) ?*X509; -pub const stack_X509_cmp_func = ?*const fn ([*c]?*const X509, [*c]?*const X509) callconv(.C) c_int; -pub fn sk_X509_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub extern const X509_ALGOR_it: ASN1_ITEM; +pub extern fn X509_ALGOR_new() [*c]X509_ALGOR; +pub extern fn X509_ALGOR_dup(alg: [*c]const X509_ALGOR) [*c]X509_ALGOR; +pub extern fn X509_ALGOR_free(alg: [*c]X509_ALGOR) void; +pub extern fn d2i_X509_ALGOR(out: [*c][*c]X509_ALGOR, inp: [*c][*c]const u8, len: c_long) [*c]X509_ALGOR; +pub extern fn i2d_X509_ALGOR(alg: [*c]const X509_ALGOR, outp: [*c][*c]u8) c_int; +pub extern fn X509_ALGOR_set0(alg: [*c]X509_ALGOR, obj: ?*ASN1_OBJECT, param_type: c_int, param_value: ?*anyopaque) c_int; +pub extern fn X509_ALGOR_get0(out_obj: [*c]?*const ASN1_OBJECT, out_param_type: [*c]c_int, out_param_value: [*c]?*const anyopaque, alg: [*c]const X509_ALGOR) void; +pub extern fn X509_ALGOR_set_md(alg: [*c]X509_ALGOR, md: ?*const EVP_MD) void; +pub extern fn X509_ALGOR_cmp(a: [*c]const X509_ALGOR, b: [*c]const X509_ALGOR) c_int; +pub extern fn X509_signature_dump(bio: [*c]BIO, sig: [*c]const ASN1_STRING, indent: c_int) c_int; +pub extern fn X509_signature_print(bio: [*c]BIO, alg: [*c]const X509_ALGOR, sig: [*c]const ASN1_STRING) c_int; +pub extern fn X509_pubkey_digest(x509: ?*const X509, md: ?*const EVP_MD, out: [*c]u8, out_len: [*c]c_uint) c_int; +pub extern fn X509_digest(x509: ?*const X509, md: ?*const EVP_MD, out: [*c]u8, out_len: [*c]c_uint) c_int; +pub extern fn X509_CRL_digest(crl: ?*const X509_CRL, md: ?*const EVP_MD, out: [*c]u8, out_len: [*c]c_uint) c_int; +pub extern fn X509_REQ_digest(req: ?*const X509_REQ, md: ?*const EVP_MD, out: [*c]u8, out_len: [*c]c_uint) c_int; +pub extern fn X509_NAME_digest(name: ?*const X509_NAME, md: ?*const EVP_MD, out: [*c]u8, out_len: [*c]c_uint) c_int; +pub extern fn d2i_X509_bio(bp: [*c]BIO, x509: [*c]?*X509) ?*X509; +pub extern fn d2i_X509_CRL_bio(bp: [*c]BIO, crl: [*c]?*X509_CRL) ?*X509_CRL; +pub extern fn d2i_X509_REQ_bio(bp: [*c]BIO, req: [*c]?*X509_REQ) ?*X509_REQ; +pub extern fn d2i_RSAPrivateKey_bio(bp: [*c]BIO, rsa: [*c]?*RSA) ?*RSA; +pub extern fn d2i_RSAPublicKey_bio(bp: [*c]BIO, rsa: [*c]?*RSA) ?*RSA; +pub extern fn d2i_RSA_PUBKEY_bio(bp: [*c]BIO, rsa: [*c]?*RSA) ?*RSA; +pub extern fn d2i_DSA_PUBKEY_bio(bp: [*c]BIO, dsa: [*c][*c]DSA) [*c]DSA; +pub extern fn d2i_DSAPrivateKey_bio(bp: [*c]BIO, dsa: [*c][*c]DSA) [*c]DSA; +pub extern fn d2i_EC_PUBKEY_bio(bp: [*c]BIO, eckey: [*c]?*EC_KEY) ?*EC_KEY; +pub extern fn d2i_ECPrivateKey_bio(bp: [*c]BIO, eckey: [*c]?*EC_KEY) ?*EC_KEY; +pub extern fn d2i_PKCS8_bio(bp: [*c]BIO, p8: [*c]?*X509_SIG) ?*X509_SIG; +pub extern fn d2i_PKCS8_PRIV_KEY_INFO_bio(bp: [*c]BIO, p8inf: [*c]?*PKCS8_PRIV_KEY_INFO) ?*PKCS8_PRIV_KEY_INFO; +pub extern fn d2i_PUBKEY_bio(bp: [*c]BIO, a: [*c][*c]EVP_PKEY) [*c]EVP_PKEY; +pub extern fn d2i_DHparams_bio(bp: [*c]BIO, dh: [*c]?*DH) ?*DH; +pub extern fn d2i_PrivateKey_bio(bp: [*c]BIO, a: [*c][*c]EVP_PKEY) [*c]EVP_PKEY; +pub extern fn i2d_X509_bio(bp: [*c]BIO, x509: ?*X509) c_int; +pub extern fn i2d_X509_CRL_bio(bp: [*c]BIO, crl: ?*X509_CRL) c_int; +pub extern fn i2d_X509_REQ_bio(bp: [*c]BIO, req: ?*X509_REQ) c_int; +pub extern fn i2d_RSAPrivateKey_bio(bp: [*c]BIO, rsa: ?*RSA) c_int; +pub extern fn i2d_RSAPublicKey_bio(bp: [*c]BIO, rsa: ?*RSA) c_int; +pub extern fn i2d_RSA_PUBKEY_bio(bp: [*c]BIO, rsa: ?*RSA) c_int; +pub extern fn i2d_DSA_PUBKEY_bio(bp: [*c]BIO, dsa: [*c]DSA) c_int; +pub extern fn i2d_DSAPrivateKey_bio(bp: [*c]BIO, dsa: [*c]DSA) c_int; +pub extern fn i2d_EC_PUBKEY_bio(bp: [*c]BIO, eckey: ?*EC_KEY) c_int; +pub extern fn i2d_ECPrivateKey_bio(bp: [*c]BIO, eckey: ?*EC_KEY) c_int; +pub extern fn i2d_PKCS8_bio(bp: [*c]BIO, p8: ?*X509_SIG) c_int; +pub extern fn i2d_PKCS8_PRIV_KEY_INFO_bio(bp: [*c]BIO, p8inf: ?*PKCS8_PRIV_KEY_INFO) c_int; +pub extern fn i2d_PrivateKey_bio(bp: [*c]BIO, pkey: [*c]EVP_PKEY) c_int; +pub extern fn i2d_PUBKEY_bio(bp: [*c]BIO, pkey: [*c]EVP_PKEY) c_int; +pub extern fn i2d_DHparams_bio(bp: [*c]BIO, dh: ?*const DH) c_int; +pub extern fn i2d_PKCS8PrivateKeyInfo_bio(bp: [*c]BIO, key: [*c]EVP_PKEY) c_int; +// pub extern fn d2i_X509_fp(fp: [*c]FILE, x509: [*c]?*X509) ?*X509; +// pub extern fn d2i_X509_CRL_fp(fp: [*c]FILE, crl: [*c]?*X509_CRL) ?*X509_CRL; +// pub extern fn d2i_X509_REQ_fp(fp: [*c]FILE, req: [*c]?*X509_REQ) ?*X509_REQ; +// pub extern fn d2i_RSAPrivateKey_fp(fp: [*c]FILE, rsa: [*c]?*RSA) ?*RSA; +// pub extern fn d2i_RSAPublicKey_fp(fp: [*c]FILE, rsa: [*c]?*RSA) ?*RSA; +// pub extern fn d2i_RSA_PUBKEY_fp(fp: [*c]FILE, rsa: [*c]?*RSA) ?*RSA; +// pub extern fn d2i_DSA_PUBKEY_fp(fp: [*c]FILE, dsa: [*c][*c]DSA) [*c]DSA; +// pub extern fn d2i_DSAPrivateKey_fp(fp: [*c]FILE, dsa: [*c][*c]DSA) [*c]DSA; +// pub extern fn d2i_EC_PUBKEY_fp(fp: [*c]FILE, eckey: [*c]?*EC_KEY) ?*EC_KEY; +// pub extern fn d2i_ECPrivateKey_fp(fp: [*c]FILE, eckey: [*c]?*EC_KEY) ?*EC_KEY; +// pub extern fn d2i_PKCS8_fp(fp: [*c]FILE, p8: [*c]?*X509_SIG) ?*X509_SIG; +// pub extern fn d2i_PKCS8_PRIV_KEY_INFO_fp(fp: [*c]FILE, p8inf: [*c]?*PKCS8_PRIV_KEY_INFO) ?*PKCS8_PRIV_KEY_INFO; +// pub extern fn d2i_PrivateKey_fp(fp: [*c]FILE, a: [*c][*c]EVP_PKEY) [*c]EVP_PKEY; +// pub extern fn d2i_PUBKEY_fp(fp: [*c]FILE, a: [*c][*c]EVP_PKEY) [*c]EVP_PKEY; +// pub extern fn i2d_X509_fp(fp: [*c]FILE, x509: ?*X509) c_int; +// pub extern fn i2d_X509_CRL_fp(fp: [*c]FILE, crl: ?*X509_CRL) c_int; +// pub extern fn i2d_X509_REQ_fp(fp: [*c]FILE, req: ?*X509_REQ) c_int; +// pub extern fn i2d_RSAPrivateKey_fp(fp: [*c]FILE, rsa: ?*RSA) c_int; +// pub extern fn i2d_RSAPublicKey_fp(fp: [*c]FILE, rsa: ?*RSA) c_int; +// pub extern fn i2d_RSA_PUBKEY_fp(fp: [*c]FILE, rsa: ?*RSA) c_int; +// pub extern fn i2d_DSA_PUBKEY_fp(fp: [*c]FILE, dsa: [*c]DSA) c_int; +// pub extern fn i2d_DSAPrivateKey_fp(fp: [*c]FILE, dsa: [*c]DSA) c_int; +// pub extern fn i2d_EC_PUBKEY_fp(fp: [*c]FILE, eckey: ?*EC_KEY) c_int; +// pub extern fn i2d_ECPrivateKey_fp(fp: [*c]FILE, eckey: ?*EC_KEY) c_int; +// pub extern fn i2d_PKCS8_fp(fp: [*c]FILE, p8: ?*X509_SIG) c_int; +// pub extern fn i2d_PKCS8_PRIV_KEY_INFO_fp(fp: [*c]FILE, p8inf: ?*PKCS8_PRIV_KEY_INFO) c_int; +// pub extern fn i2d_PKCS8PrivateKeyInfo_fp(fp: [*c]FILE, key: [*c]EVP_PKEY) c_int; +// pub extern fn i2d_PrivateKey_fp(fp: [*c]FILE, pkey: [*c]EVP_PKEY) c_int; +// pub extern fn i2d_PUBKEY_fp(fp: [*c]FILE, pkey: [*c]EVP_PKEY) c_int; +pub extern fn X509_NAME_get_text_by_OBJ(name: ?*const X509_NAME, obj: ?*const ASN1_OBJECT, buf: [*c]u8, len: c_int) c_int; +pub extern fn X509_NAME_get_text_by_NID(name: ?*const X509_NAME, nid: c_int, buf: [*c]u8, len: c_int) c_int; +pub const struct_stack_st_X509_ATTRIBUTE = opaque {}; +pub const sk_X509_ATTRIBUTE_free_func = ?*const fn (?*X509_ATTRIBUTE) callconv(.C) void; +pub const sk_X509_ATTRIBUTE_copy_func = ?*const fn (?*X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE; +pub const sk_X509_ATTRIBUTE_cmp_func = ?*const fn ([*c]?*const X509_ATTRIBUTE, [*c]?*const X509_ATTRIBUTE) callconv(.C) c_int; +pub fn sk_X509_ATTRIBUTE_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_X509_free_func, @alignCast(@import("std").meta.alignment(fn (?*X509) callconv(.C) void), free_func)).?(@ptrCast(?*X509, ptr)); + @as(sk_X509_ATTRIBUTE_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_ATTRIBUTE, @ptrCast(ptr))); } -pub fn sk_X509_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_ATTRIBUTE_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_X509_copy_func, @alignCast(@import("std").meta.alignment(fn (?*X509) callconv(.C) ?*X509), copy_func)).?(@ptrCast(?*X509, ptr))); + return @as(?*anyopaque, @ptrCast(@as(sk_X509_ATTRIBUTE_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_ATTRIBUTE, @ptrCast(ptr))))); } -pub fn sk_X509_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_ATTRIBUTE_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: ?*const X509 = @ptrCast(?*const X509, a.*); - var b_ptr: ?*const X509 = @ptrCast(?*const X509, b.*); - return @ptrCast(stack_X509_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509, [*c]?*const X509) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: ?*const X509_ATTRIBUTE = @as(?*const X509_ATTRIBUTE, @ptrCast(a.*)); + var b_ptr: ?*const X509_ATTRIBUTE = @as(?*const X509_ATTRIBUTE, @ptrCast(b.*)); + return @as(sk_X509_ATTRIBUTE_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_new(arg_comp: stack_X509_cmp_func) callconv(.C) ?*struct_stack_st_X509 { +pub fn sk_X509_ATTRIBUTE_new(arg_comp: sk_X509_ATTRIBUTE_cmp_func) callconv(.C) ?*struct_stack_st_X509_ATTRIBUTE { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_X509, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_X509_ATTRIBUTE, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } -pub fn sk_X509_new_null() callconv(.C) ?*struct_stack_st_X509 { - return @ptrCast(?*struct_stack_st_X509, sk_new_null()); +pub fn sk_X509_ATTRIBUTE_new_null() callconv(.C) ?*struct_stack_st_X509_ATTRIBUTE { + return @as(?*struct_stack_st_X509_ATTRIBUTE, @ptrCast(sk_new_null())); } -pub fn sk_X509_num(arg_sk: ?*const struct_stack_st_X509) callconv(.C) usize { +pub fn sk_X509_ATTRIBUTE_num(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_zero(arg_sk: ?*struct_stack_st_X509) callconv(.C) void { +pub fn sk_X509_ATTRIBUTE_zero(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_value(arg_sk: ?*const struct_stack_st_X509, arg_i: usize) callconv(.C) ?*X509 { +pub fn sk_X509_ATTRIBUTE_value(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE, arg_i: usize) callconv(.C) ?*X509_ATTRIBUTE { var sk = arg_sk; var i = arg_i; - return @ptrCast(?*X509, sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i)); + return @as(?*X509_ATTRIBUTE, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_X509_set(arg_sk: ?*struct_stack_st_X509, arg_i: usize, arg_p: ?*X509) callconv(.C) ?*X509 { +pub fn sk_X509_ATTRIBUTE_set(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_i: usize, arg_p: ?*X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast(?*X509, sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p))); + return @as(?*X509_ATTRIBUTE, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } -pub fn sk_X509_free(arg_sk: ?*struct_stack_st_X509) callconv(.C) void { +pub fn sk_X509_ATTRIBUTE_free(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_pop_free(arg_sk: ?*struct_stack_st_X509, arg_free_func: stack_X509_free_func) callconv(.C) void { +pub fn sk_X509_ATTRIBUTE_pop_free(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_free_func: sk_X509_ATTRIBUTE_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_ATTRIBUTE_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_insert(arg_sk: ?*struct_stack_st_X509, arg_p: ?*X509, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_ATTRIBUTE_insert(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_p: ?*X509_ATTRIBUTE, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_delete(arg_sk: ?*struct_stack_st_X509, arg_where: usize) callconv(.C) ?*X509 { +pub fn sk_X509_ATTRIBUTE_delete(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_where: usize) callconv(.C) ?*X509_ATTRIBUTE { var sk = arg_sk; var where = arg_where; - return @ptrCast(?*X509, sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where)); + return @as(?*X509_ATTRIBUTE, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_X509_delete_ptr(arg_sk: ?*struct_stack_st_X509, arg_p: ?*const X509) callconv(.C) ?*X509 { +pub fn sk_X509_ATTRIBUTE_delete_ptr(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_p: ?*const X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE { var sk = arg_sk; var p = arg_p; - return @ptrCast(?*X509, sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p))); + return @as(?*X509_ATTRIBUTE, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_X509_find(arg_sk: ?*const struct_stack_st_X509, arg_out_index: [*c]usize, arg_p: ?*const X509) callconv(.C) c_int { +pub fn sk_X509_ATTRIBUTE_find(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE, arg_out_index: [*c]usize, arg_p: ?*const X509_ATTRIBUTE) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_X509_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_ATTRIBUTE_call_cmp_func); } -pub fn sk_X509_shift(arg_sk: ?*struct_stack_st_X509) callconv(.C) ?*X509 { +pub fn sk_X509_ATTRIBUTE_shift(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE { var sk = arg_sk; - return @ptrCast(?*X509, sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_ATTRIBUTE, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_push(arg_sk: ?*struct_stack_st_X509, arg_p: ?*X509) callconv(.C) usize { +pub fn sk_X509_ATTRIBUTE_push(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_p: ?*X509_ATTRIBUTE) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_pop(arg_sk: ?*struct_stack_st_X509) callconv(.C) ?*X509 { +pub fn sk_X509_ATTRIBUTE_pop(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) ?*X509_ATTRIBUTE { var sk = arg_sk; - return @ptrCast(?*X509, sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_ATTRIBUTE, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_dup(arg_sk: ?*const struct_stack_st_X509) callconv(.C) ?*struct_stack_st_X509 { +pub fn sk_X509_ATTRIBUTE_dup(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE) callconv(.C) ?*struct_stack_st_X509_ATTRIBUTE { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_X509, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_X509_ATTRIBUTE, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_sort(arg_sk: ?*struct_stack_st_X509) callconv(.C) void { +pub fn sk_X509_ATTRIBUTE_sort(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_ATTRIBUTE_call_cmp_func); } -pub fn sk_X509_is_sorted(arg_sk: ?*const struct_stack_st_X509) callconv(.C) c_int { +pub fn sk_X509_ATTRIBUTE_is_sorted(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_set_cmp_func(arg_sk: ?*struct_stack_st_X509, arg_comp: stack_X509_cmp_func) callconv(.C) stack_X509_cmp_func { +pub fn sk_X509_ATTRIBUTE_set_cmp_func(arg_sk: ?*struct_stack_st_X509_ATTRIBUTE, arg_comp: sk_X509_ATTRIBUTE_cmp_func) callconv(.C) sk_X509_ATTRIBUTE_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_X509_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509, [*c]?*const X509) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_X509_ATTRIBUTE_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_deep_copy(arg_sk: ?*const struct_stack_st_X509, arg_copy_func: ?*const fn (?*X509) callconv(.C) ?*X509, arg_free_func: ?*const fn (?*X509) callconv(.C) void) callconv(.C) ?*struct_stack_st_X509 { +pub fn sk_X509_ATTRIBUTE_deep_copy(arg_sk: ?*const struct_stack_st_X509_ATTRIBUTE, arg_copy_func: sk_X509_ATTRIBUTE_copy_func, arg_free_func: sk_X509_ATTRIBUTE_free_func) callconv(.C) ?*struct_stack_st_X509_ATTRIBUTE { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_X509, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_X509_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_X509_ATTRIBUTE, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_ATTRIBUTE_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_ATTRIBUTE_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } +pub const struct_stack_st_DIST_POINT = opaque {}; +pub const struct_stack_st_GENERAL_NAME = opaque {}; pub const struct_stack_st_X509_TRUST = opaque {}; -pub const stack_X509_TRUST_free_func = ?*const fn ([*c]X509_TRUST) callconv(.C) void; -pub const stack_X509_TRUST_copy_func = ?*const fn ([*c]X509_TRUST) callconv(.C) [*c]X509_TRUST; -pub const stack_X509_TRUST_cmp_func = ?*const fn ([*c][*c]const X509_TRUST, [*c][*c]const X509_TRUST) callconv(.C) c_int; -pub fn sk_X509_TRUST_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_TRUST_free_func = ?*const fn ([*c]X509_TRUST) callconv(.C) void; +pub const sk_X509_TRUST_copy_func = ?*const fn ([*c]X509_TRUST) callconv(.C) [*c]X509_TRUST; +pub const sk_X509_TRUST_cmp_func = ?*const fn ([*c][*c]const X509_TRUST, [*c][*c]const X509_TRUST) callconv(.C) c_int; +pub fn sk_X509_TRUST_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_X509_TRUST_free_func, @alignCast(@import("std").meta.alignment(fn ([*c]X509_TRUST) callconv(.C) void), free_func)).?(@ptrCast([*c]X509_TRUST, @alignCast(@import("std").meta.alignment(X509_TRUST), ptr))); + @as(sk_X509_TRUST_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]X509_TRUST, @ptrCast(@alignCast(ptr)))); } -pub fn sk_X509_TRUST_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_TRUST_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_X509_TRUST_copy_func, @alignCast(@import("std").meta.alignment(fn ([*c]X509_TRUST) callconv(.C) [*c]X509_TRUST), copy_func)).?(@ptrCast([*c]X509_TRUST, @alignCast(@import("std").meta.alignment(X509_TRUST), ptr)))); + return @as(?*anyopaque, @ptrCast(@as(sk_X509_TRUST_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]X509_TRUST, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_X509_TRUST_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_TRUST_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: [*c]const X509_TRUST = @ptrCast([*c]const X509_TRUST, @alignCast(@import("std").meta.alignment(X509_TRUST), a.*)); - var b_ptr: [*c]const X509_TRUST = @ptrCast([*c]const X509_TRUST, @alignCast(@import("std").meta.alignment(X509_TRUST), b.*)); - return @ptrCast(stack_X509_TRUST_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const X509_TRUST, [*c][*c]const X509_TRUST) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: [*c]const X509_TRUST = @as([*c]const X509_TRUST, @ptrCast(@alignCast(a.*))); + var b_ptr: [*c]const X509_TRUST = @as([*c]const X509_TRUST, @ptrCast(@alignCast(b.*))); + return @as(sk_X509_TRUST_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_TRUST_new(arg_comp: stack_X509_TRUST_cmp_func) callconv(.C) ?*struct_stack_st_X509_TRUST { +pub fn sk_X509_TRUST_new(arg_comp: sk_X509_TRUST_cmp_func) callconv(.C) ?*struct_stack_st_X509_TRUST { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_X509_TRUST, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_X509_TRUST, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_X509_TRUST_new_null() callconv(.C) ?*struct_stack_st_X509_TRUST { - return @ptrCast(?*struct_stack_st_X509_TRUST, sk_new_null()); + return @as(?*struct_stack_st_X509_TRUST, @ptrCast(sk_new_null())); } pub fn sk_X509_TRUST_num(arg_sk: ?*const struct_stack_st_X509_TRUST) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_TRUST_zero(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_TRUST_value(arg_sk: ?*const struct_stack_st_X509_TRUST, arg_i: usize) callconv(.C) [*c]X509_TRUST { var sk = arg_sk; var i = arg_i; - return @ptrCast([*c]X509_TRUST, @alignCast(@import("std").meta.alignment(X509_TRUST), sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i))); + return @as([*c]X509_TRUST, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } pub fn sk_X509_TRUST_set(arg_sk: ?*struct_stack_st_X509_TRUST, arg_i: usize, arg_p: [*c]X509_TRUST) callconv(.C) [*c]X509_TRUST { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast([*c]X509_TRUST, @alignCast(@import("std").meta.alignment(X509_TRUST), sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p)))); + return @as([*c]X509_TRUST, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } pub fn sk_X509_TRUST_free(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_TRUST_pop_free(arg_sk: ?*struct_stack_st_X509_TRUST, arg_free_func: stack_X509_TRUST_free_func) callconv(.C) void { +pub fn sk_X509_TRUST_pop_free(arg_sk: ?*struct_stack_st_X509_TRUST, arg_free_func: sk_X509_TRUST_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_TRUST_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_TRUST_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_X509_TRUST_insert(arg_sk: ?*struct_stack_st_X509_TRUST, arg_p: [*c]X509_TRUST, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_X509_TRUST_delete(arg_sk: ?*struct_stack_st_X509_TRUST, arg_where: usize) callconv(.C) [*c]X509_TRUST { var sk = arg_sk; var where = arg_where; - return @ptrCast([*c]X509_TRUST, @alignCast(@import("std").meta.alignment(X509_TRUST), sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where))); + return @as([*c]X509_TRUST, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } pub fn sk_X509_TRUST_delete_ptr(arg_sk: ?*struct_stack_st_X509_TRUST, arg_p: [*c]const X509_TRUST) callconv(.C) [*c]X509_TRUST { var sk = arg_sk; var p = arg_p; - return @ptrCast([*c]X509_TRUST, @alignCast(@import("std").meta.alignment(X509_TRUST), sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p)))); + return @as([*c]X509_TRUST, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } pub fn sk_X509_TRUST_find(arg_sk: ?*const struct_stack_st_X509_TRUST, arg_out_index: [*c]usize, arg_p: [*c]const X509_TRUST) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_X509_TRUST_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_TRUST_call_cmp_func); } pub fn sk_X509_TRUST_shift(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.C) [*c]X509_TRUST { var sk = arg_sk; - return @ptrCast([*c]X509_TRUST, @alignCast(@import("std").meta.alignment(X509_TRUST), sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]X509_TRUST, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_X509_TRUST_push(arg_sk: ?*struct_stack_st_X509_TRUST, arg_p: [*c]X509_TRUST) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_X509_TRUST_pop(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.C) [*c]X509_TRUST { var sk = arg_sk; - return @ptrCast([*c]X509_TRUST, @alignCast(@import("std").meta.alignment(X509_TRUST), sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]X509_TRUST, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_X509_TRUST_dup(arg_sk: ?*const struct_stack_st_X509_TRUST) callconv(.C) ?*struct_stack_st_X509_TRUST { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_X509_TRUST, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_X509_TRUST, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_TRUST_sort(arg_sk: ?*struct_stack_st_X509_TRUST) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_TRUST_call_cmp_func); } pub fn sk_X509_TRUST_is_sorted(arg_sk: ?*const struct_stack_st_X509_TRUST) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_TRUST_set_cmp_func(arg_sk: ?*struct_stack_st_X509_TRUST, arg_comp: stack_X509_TRUST_cmp_func) callconv(.C) stack_X509_TRUST_cmp_func { +pub fn sk_X509_TRUST_set_cmp_func(arg_sk: ?*struct_stack_st_X509_TRUST, arg_comp: sk_X509_TRUST_cmp_func) callconv(.C) sk_X509_TRUST_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_X509_TRUST_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const X509_TRUST, [*c][*c]const X509_TRUST) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_X509_TRUST_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_TRUST_deep_copy(arg_sk: ?*const struct_stack_st_X509_TRUST, arg_copy_func: ?*const fn ([*c]X509_TRUST) callconv(.C) [*c]X509_TRUST, arg_free_func: ?*const fn ([*c]X509_TRUST) callconv(.C) void) callconv(.C) ?*struct_stack_st_X509_TRUST { +pub fn sk_X509_TRUST_deep_copy(arg_sk: ?*const struct_stack_st_X509_TRUST, arg_copy_func: sk_X509_TRUST_copy_func, arg_free_func: sk_X509_TRUST_free_func) callconv(.C) ?*struct_stack_st_X509_TRUST { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_X509_TRUST, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_TRUST_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_X509_TRUST_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_X509_TRUST, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_TRUST_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_TRUST_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } -pub const struct_stack_st_X509_REVOKED = opaque {}; -pub const stack_X509_REVOKED_free_func = ?*const fn ([*c]X509_REVOKED) callconv(.C) void; -pub const stack_X509_REVOKED_copy_func = ?*const fn ([*c]X509_REVOKED) callconv(.C) [*c]X509_REVOKED; -pub const stack_X509_REVOKED_cmp_func = ?*const fn ([*c][*c]const X509_REVOKED, [*c][*c]const X509_REVOKED) callconv(.C) c_int; -pub fn sk_X509_REVOKED_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_REVOKED_free_func = ?*const fn (?*X509_REVOKED) callconv(.C) void; +pub const sk_X509_REVOKED_copy_func = ?*const fn (?*X509_REVOKED) callconv(.C) ?*X509_REVOKED; +pub const sk_X509_REVOKED_cmp_func = ?*const fn ([*c]?*const X509_REVOKED, [*c]?*const X509_REVOKED) callconv(.C) c_int; +pub fn sk_X509_REVOKED_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_X509_REVOKED_free_func, @alignCast(@import("std").meta.alignment(fn ([*c]X509_REVOKED) callconv(.C) void), free_func)).?(@ptrCast([*c]X509_REVOKED, @alignCast(@import("std").meta.alignment(X509_REVOKED), ptr))); + @as(sk_X509_REVOKED_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_REVOKED, @ptrCast(ptr))); } -pub fn sk_X509_REVOKED_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_REVOKED_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_X509_REVOKED_copy_func, @alignCast(@import("std").meta.alignment(fn ([*c]X509_REVOKED) callconv(.C) [*c]X509_REVOKED), copy_func)).?(@ptrCast([*c]X509_REVOKED, @alignCast(@import("std").meta.alignment(X509_REVOKED), ptr)))); + return @as(?*anyopaque, @ptrCast(@as(sk_X509_REVOKED_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_REVOKED, @ptrCast(ptr))))); } -pub fn sk_X509_REVOKED_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_REVOKED_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: [*c]const X509_REVOKED = @ptrCast([*c]const X509_REVOKED, @alignCast(@import("std").meta.alignment(X509_REVOKED), a.*)); - var b_ptr: [*c]const X509_REVOKED = @ptrCast([*c]const X509_REVOKED, @alignCast(@import("std").meta.alignment(X509_REVOKED), b.*)); - return @ptrCast(stack_X509_REVOKED_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const X509_REVOKED, [*c][*c]const X509_REVOKED) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: ?*const X509_REVOKED = @as(?*const X509_REVOKED, @ptrCast(a.*)); + var b_ptr: ?*const X509_REVOKED = @as(?*const X509_REVOKED, @ptrCast(b.*)); + return @as(sk_X509_REVOKED_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_REVOKED_new(arg_comp: stack_X509_REVOKED_cmp_func) callconv(.C) ?*struct_stack_st_X509_REVOKED { +pub fn sk_X509_REVOKED_new(arg_comp: sk_X509_REVOKED_cmp_func) callconv(.C) ?*struct_stack_st_X509_REVOKED { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_X509_REVOKED, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_X509_REVOKED, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_X509_REVOKED_new_null() callconv(.C) ?*struct_stack_st_X509_REVOKED { - return @ptrCast(?*struct_stack_st_X509_REVOKED, sk_new_null()); + return @as(?*struct_stack_st_X509_REVOKED, @ptrCast(sk_new_null())); } pub fn sk_X509_REVOKED_num(arg_sk: ?*const struct_stack_st_X509_REVOKED) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_REVOKED_zero(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_REVOKED_value(arg_sk: ?*const struct_stack_st_X509_REVOKED, arg_i: usize) callconv(.C) [*c]X509_REVOKED { +pub fn sk_X509_REVOKED_value(arg_sk: ?*const struct_stack_st_X509_REVOKED, arg_i: usize) callconv(.C) ?*X509_REVOKED { var sk = arg_sk; var i = arg_i; - return @ptrCast([*c]X509_REVOKED, @alignCast(@import("std").meta.alignment(X509_REVOKED), sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i))); + return @as(?*X509_REVOKED, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } -pub fn sk_X509_REVOKED_set(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_i: usize, arg_p: [*c]X509_REVOKED) callconv(.C) [*c]X509_REVOKED { +pub fn sk_X509_REVOKED_set(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_i: usize, arg_p: ?*X509_REVOKED) callconv(.C) ?*X509_REVOKED { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast([*c]X509_REVOKED, @alignCast(@import("std").meta.alignment(X509_REVOKED), sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p)))); + return @as(?*X509_REVOKED, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } pub fn sk_X509_REVOKED_free(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_REVOKED_pop_free(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_free_func: stack_X509_REVOKED_free_func) callconv(.C) void { +pub fn sk_X509_REVOKED_pop_free(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_free_func: sk_X509_REVOKED_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_REVOKED_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_REVOKED_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } -pub fn sk_X509_REVOKED_insert(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_p: [*c]X509_REVOKED, arg_where: usize) callconv(.C) usize { +pub fn sk_X509_REVOKED_insert(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_p: ?*X509_REVOKED, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } -pub fn sk_X509_REVOKED_delete(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_where: usize) callconv(.C) [*c]X509_REVOKED { +pub fn sk_X509_REVOKED_delete(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_where: usize) callconv(.C) ?*X509_REVOKED { var sk = arg_sk; var where = arg_where; - return @ptrCast([*c]X509_REVOKED, @alignCast(@import("std").meta.alignment(X509_REVOKED), sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where))); + return @as(?*X509_REVOKED, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } -pub fn sk_X509_REVOKED_delete_ptr(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_p: [*c]const X509_REVOKED) callconv(.C) [*c]X509_REVOKED { +pub fn sk_X509_REVOKED_delete_ptr(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_p: ?*const X509_REVOKED) callconv(.C) ?*X509_REVOKED { var sk = arg_sk; var p = arg_p; - return @ptrCast([*c]X509_REVOKED, @alignCast(@import("std").meta.alignment(X509_REVOKED), sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p)))); + return @as(?*X509_REVOKED, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } -pub fn sk_X509_REVOKED_find(arg_sk: ?*const struct_stack_st_X509_REVOKED, arg_out_index: [*c]usize, arg_p: [*c]const X509_REVOKED) callconv(.C) c_int { +pub fn sk_X509_REVOKED_find(arg_sk: ?*const struct_stack_st_X509_REVOKED, arg_out_index: [*c]usize, arg_p: ?*const X509_REVOKED) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_X509_REVOKED_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_REVOKED_call_cmp_func); } -pub fn sk_X509_REVOKED_shift(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.C) [*c]X509_REVOKED { +pub fn sk_X509_REVOKED_shift(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.C) ?*X509_REVOKED { var sk = arg_sk; - return @ptrCast([*c]X509_REVOKED, @alignCast(@import("std").meta.alignment(X509_REVOKED), sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as(?*X509_REVOKED, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } -pub fn sk_X509_REVOKED_push(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_p: [*c]X509_REVOKED) callconv(.C) usize { +pub fn sk_X509_REVOKED_push(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_p: ?*X509_REVOKED) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } -pub fn sk_X509_REVOKED_pop(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.C) [*c]X509_REVOKED { +pub fn sk_X509_REVOKED_pop(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.C) ?*X509_REVOKED { var sk = arg_sk; - return @ptrCast([*c]X509_REVOKED, @alignCast(@import("std").meta.alignment(X509_REVOKED), sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as(?*X509_REVOKED, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_REVOKED_dup(arg_sk: ?*const struct_stack_st_X509_REVOKED) callconv(.C) ?*struct_stack_st_X509_REVOKED { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_X509_REVOKED, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_X509_REVOKED, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_REVOKED_sort(arg_sk: ?*struct_stack_st_X509_REVOKED) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_REVOKED_call_cmp_func); } pub fn sk_X509_REVOKED_is_sorted(arg_sk: ?*const struct_stack_st_X509_REVOKED) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_REVOKED_set_cmp_func(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_comp: stack_X509_REVOKED_cmp_func) callconv(.C) stack_X509_REVOKED_cmp_func { +pub fn sk_X509_REVOKED_set_cmp_func(arg_sk: ?*struct_stack_st_X509_REVOKED, arg_comp: sk_X509_REVOKED_cmp_func) callconv(.C) sk_X509_REVOKED_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_X509_REVOKED_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const X509_REVOKED, [*c][*c]const X509_REVOKED) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_X509_REVOKED_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_REVOKED_deep_copy(arg_sk: ?*const struct_stack_st_X509_REVOKED, arg_copy_func: ?*const fn ([*c]X509_REVOKED) callconv(.C) [*c]X509_REVOKED, arg_free_func: ?*const fn ([*c]X509_REVOKED) callconv(.C) void) callconv(.C) ?*struct_stack_st_X509_REVOKED { +pub fn sk_X509_REVOKED_deep_copy(arg_sk: ?*const struct_stack_st_X509_REVOKED, arg_copy_func: sk_X509_REVOKED_copy_func, arg_free_func: sk_X509_REVOKED_free_func) callconv(.C) ?*struct_stack_st_X509_REVOKED { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_X509_REVOKED, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_REVOKED_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_X509_REVOKED_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); -} -pub const struct_stack_st_GENERAL_NAMES = opaque {}; -pub const struct_stack_st_ACCESS_DESCRIPTION = opaque {}; - -pub const OTHERNAME = extern struct { - type_id: ?*ASN1_OBJECT, - value: ?*ASN1_TYPE, -}; - -pub const GENERAL_NAME = extern struct { - name_type: enum(c_int) { - GEN_OTHERNAME = 0, - GEN_EMAIL = 1, - GEN_DNS = 2, - GEN_X400 = 3, - GEN_DIRNAME = 4, - GEN_EDIPARTY = 5, - GEN_URI = 6, - GEN_IPADD = 7, - GEN_RID = 8, - }, - d: extern union { - ptr: *c_char, - otherName: *OTHERNAME, - rfc822Name: *ASN1_IA5STRING, - dNSName: *ASN1_IA5STRING, - x400Address: *ASN1_STRING, - directoryName: *X509_NAME, - //EDIPARTYNAME - ediPartyName: *anyopaque, - uniformResourceIdentifier: *ASN1_IA5STRING, - iPAddress: *ASN1_OCTET_STRING, - registeredID: *ASN1_OBJECT, - ip: *ASN1_OCTET_STRING, - dirn: *X509_NAME, - ia5: *ASN1_IA5STRING, - rid: *ASN1_OBJECT, - other: *ASN1_TYPE, - }, -}; - -pub const ACCESS_DESCRIPTION = extern struct { - method: *ASN1_OBJECT, - location: *GENERAL_NAME, -}; - -pub fn sk_GENERAL_NAME_num(arg_sk: ?*const struct_stack_st_GENERAL_NAME) callconv(.C) usize { - var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); -} -pub fn sk_GENERAL_NAME_free(arg_sk: ?*struct_stack_st_GENERAL_NAME) callconv(.C) void { - var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); -} -pub const stack_GENERAL_NAME_free_func = ?*const fn (?*struct_stack_st_GENERAL_NAME) callconv(.C) void; - -pub fn sk_GENERAL_NAME_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { - var free_func = arg_free_func; - var ptr = arg_ptr; - @ptrCast(stack_GENERAL_NAME_free_func, @alignCast(@import("std").meta.alignment(fn (?*struct_stack_st_GENERAL_NAME) callconv(.C) void), free_func)).?(@ptrCast(?*struct_stack_st_GENERAL_NAME, ptr)); -} -pub fn sk_GENERAL_NAME_pop_free(arg_sk: ?*struct_stack_st_GENERAL_NAME, arg_free_func: stack_GENERAL_NAME_free_func) callconv(.C) void { - var sk = arg_sk; - var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_GENERAL_NAME_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); -} -pub fn sk_GENERAL_NAME_value(arg_sk: ?*const struct_stack_st_GENERAL_NAME, arg_i: usize) callconv(.C) ?*GENERAL_NAME { - var sk = arg_sk; - var i = arg_i; - return @ptrCast(?*GENERAL_NAME, @alignCast(@alignOf(GENERAL_NAME), sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i))); -} - -pub fn sk_ACCESS_DESCRIPTION_num(arg_sk: ?*const AUTHORITY_INFO_ACCESS) callconv(.C) usize { - var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); -} -pub fn sk_ACCESS_DESCRIPTION_free(arg_sk: ?*AUTHORITY_INFO_ACCESS) callconv(.C) void { - var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); -} -pub const stack_ACCESS_DESCRIPTION_free_func = ?*const fn (?*AUTHORITY_INFO_ACCESS) callconv(.C) void; - -pub fn sk_ACCESS_DESCRIPTION_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { - var free_func = arg_free_func; - var ptr = arg_ptr; - @ptrCast(stack_ACCESS_DESCRIPTION_free_func, @alignCast(@import("std").meta.alignment(fn (?*AUTHORITY_INFO_ACCESS) callconv(.C) void), free_func)).?(@ptrCast(?*AUTHORITY_INFO_ACCESS, ptr)); -} -pub fn sk_ACCESS_DESCRIPTION_pop_free(arg_sk: ?*AUTHORITY_INFO_ACCESS, arg_free_func: stack_ACCESS_DESCRIPTION_free_func) callconv(.C) void { - var sk = arg_sk; - var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_ACCESS_DESCRIPTION_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); -} -pub fn sk_ACCESS_DESCRIPTION_value(arg_sk: ?*const AUTHORITY_INFO_ACCESS, arg_i: usize) callconv(.C) ?*ACCESS_DESCRIPTION { - var sk = arg_sk; - var i = arg_i; - return @ptrCast(?*ACCESS_DESCRIPTION, @alignCast(@alignOf(ACCESS_DESCRIPTION), sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i))); -} - -pub const stack_X509_CRL_free_func = ?*const fn (?*X509_CRL) callconv(.C) void; -pub const stack_X509_CRL_copy_func = ?*const fn (?*X509_CRL) callconv(.C) ?*X509_CRL; -pub const stack_X509_CRL_cmp_func = ?*const fn ([*c]?*const X509_CRL, [*c]?*const X509_CRL) callconv(.C) c_int; -pub fn sk_X509_CRL_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { - var free_func = arg_free_func; - var ptr = arg_ptr; - @ptrCast(stack_X509_CRL_free_func, @alignCast(@import("std").meta.alignment(fn (?*X509_CRL) callconv(.C) void), free_func)).?(@ptrCast(?*X509_CRL, ptr)); -} -pub fn sk_X509_CRL_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { - var copy_func = arg_copy_func; - var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_X509_CRL_copy_func, @alignCast(@import("std").meta.alignment(fn (?*X509_CRL) callconv(.C) ?*X509_CRL), copy_func)).?(@ptrCast(?*X509_CRL, ptr))); -} -pub fn sk_X509_CRL_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { - var cmp_func = arg_cmp_func; - var a = arg_a; - var b = arg_b; - var a_ptr: ?*const X509_CRL = @ptrCast(?*const X509_CRL, a.*); - var b_ptr: ?*const X509_CRL = @ptrCast(?*const X509_CRL, b.*); - return @ptrCast(stack_X509_CRL_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_CRL, [*c]?*const X509_CRL) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); -} -pub fn sk_X509_CRL_new(arg_comp: stack_X509_CRL_cmp_func) callconv(.C) ?*struct_stack_st_X509_CRL { - var comp = arg_comp; - return @ptrCast(?*struct_stack_st_X509_CRL, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); -} -pub fn sk_X509_CRL_new_null() callconv(.C) ?*struct_stack_st_X509_CRL { - return @ptrCast(?*struct_stack_st_X509_CRL, sk_new_null()); -} -pub fn sk_X509_CRL_num(arg_sk: ?*const struct_stack_st_X509_CRL) callconv(.C) usize { - var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); -} -pub fn sk_X509_CRL_zero(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) void { - var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); -} -pub fn sk_X509_CRL_value(arg_sk: ?*const struct_stack_st_X509_CRL, arg_i: usize) callconv(.C) ?*X509_CRL { - var sk = arg_sk; - var i = arg_i; - return @ptrCast(?*X509_CRL, sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i)); -} -pub fn sk_X509_CRL_set(arg_sk: ?*struct_stack_st_X509_CRL, arg_i: usize, arg_p: ?*X509_CRL) callconv(.C) ?*X509_CRL { - var sk = arg_sk; - var i = arg_i; - var p = arg_p; - return @ptrCast(?*X509_CRL, sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p))); -} -pub fn sk_X509_CRL_free(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) void { - var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); -} -pub fn sk_X509_CRL_pop_free(arg_sk: ?*struct_stack_st_X509_CRL, arg_free_func: stack_X509_CRL_free_func) callconv(.C) void { - var sk = arg_sk; - var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_CRL_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); -} -pub fn sk_X509_CRL_insert(arg_sk: ?*struct_stack_st_X509_CRL, arg_p: ?*X509_CRL, arg_where: usize) callconv(.C) usize { - var sk = arg_sk; - var p = arg_p; - var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); -} -pub fn sk_X509_CRL_delete(arg_sk: ?*struct_stack_st_X509_CRL, arg_where: usize) callconv(.C) ?*X509_CRL { - var sk = arg_sk; - var where = arg_where; - return @ptrCast(?*X509_CRL, sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where)); -} -pub fn sk_X509_CRL_delete_ptr(arg_sk: ?*struct_stack_st_X509_CRL, arg_p: ?*const X509_CRL) callconv(.C) ?*X509_CRL { - var sk = arg_sk; - var p = arg_p; - return @ptrCast(?*X509_CRL, sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p))); -} -pub fn sk_X509_CRL_find(arg_sk: ?*const struct_stack_st_X509_CRL, arg_out_index: [*c]usize, arg_p: ?*const X509_CRL) callconv(.C) c_int { - var sk = arg_sk; - var out_index = arg_out_index; - var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_X509_CRL_call_cmp_func); -} -pub fn sk_X509_CRL_shift(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) ?*X509_CRL { - var sk = arg_sk; - return @ptrCast(?*X509_CRL, sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); -} -pub fn sk_X509_CRL_push(arg_sk: ?*struct_stack_st_X509_CRL, arg_p: ?*X509_CRL) callconv(.C) usize { - var sk = arg_sk; - var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); -} -pub fn sk_X509_CRL_pop(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) ?*X509_CRL { - var sk = arg_sk; - return @ptrCast(?*X509_CRL, sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); -} -pub fn sk_X509_CRL_dup(arg_sk: ?*const struct_stack_st_X509_CRL) callconv(.C) ?*struct_stack_st_X509_CRL { - var sk = arg_sk; - return @ptrCast(?*struct_stack_st_X509_CRL, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); -} -pub fn sk_X509_CRL_sort(arg_sk: ?*struct_stack_st_X509_CRL) callconv(.C) void { - var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); -} -pub fn sk_X509_CRL_is_sorted(arg_sk: ?*const struct_stack_st_X509_CRL) callconv(.C) c_int { - var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); -} -pub fn sk_X509_CRL_set_cmp_func(arg_sk: ?*struct_stack_st_X509_CRL, arg_comp: stack_X509_CRL_cmp_func) callconv(.C) stack_X509_CRL_cmp_func { - var sk = arg_sk; - var comp = arg_comp; - return @ptrCast(stack_X509_CRL_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_CRL, [*c]?*const X509_CRL) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); -} -pub fn sk_X509_CRL_deep_copy(arg_sk: ?*const struct_stack_st_X509_CRL, arg_copy_func: ?*const fn (?*X509_CRL) callconv(.C) ?*X509_CRL, arg_free_func: ?*const fn (?*X509_CRL) callconv(.C) void) callconv(.C) ?*struct_stack_st_X509_CRL { - var sk = arg_sk; - var copy_func = arg_copy_func; - var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_X509_CRL, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_CRL_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_X509_CRL_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_X509_REVOKED, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_REVOKED_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_REVOKED_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub const struct_stack_st_X509_INFO = opaque {}; -pub const stack_X509_INFO_free_func = ?*const fn ([*c]X509_INFO) callconv(.C) void; -pub const stack_X509_INFO_copy_func = ?*const fn ([*c]X509_INFO) callconv(.C) [*c]X509_INFO; -pub const stack_X509_INFO_cmp_func = ?*const fn ([*c][*c]const X509_INFO, [*c][*c]const X509_INFO) callconv(.C) c_int; -pub fn sk_X509_INFO_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_INFO_free_func = ?*const fn ([*c]X509_INFO) callconv(.C) void; +pub const sk_X509_INFO_copy_func = ?*const fn ([*c]X509_INFO) callconv(.C) [*c]X509_INFO; +pub const sk_X509_INFO_cmp_func = ?*const fn ([*c][*c]const X509_INFO, [*c][*c]const X509_INFO) callconv(.C) c_int; +pub fn sk_X509_INFO_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_X509_INFO_free_func, @alignCast(@import("std").meta.alignment(fn ([*c]X509_INFO) callconv(.C) void), free_func)).?(@ptrCast([*c]X509_INFO, @alignCast(@import("std").meta.alignment(X509_INFO), ptr))); + @as(sk_X509_INFO_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]X509_INFO, @ptrCast(@alignCast(ptr)))); } -pub fn sk_X509_INFO_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_INFO_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_X509_INFO_copy_func, @alignCast(@import("std").meta.alignment(fn ([*c]X509_INFO) callconv(.C) [*c]X509_INFO), copy_func)).?(@ptrCast([*c]X509_INFO, @alignCast(@import("std").meta.alignment(X509_INFO), ptr)))); + return @as(?*anyopaque, @ptrCast(@as(sk_X509_INFO_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]X509_INFO, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_X509_INFO_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_INFO_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: [*c]const X509_INFO = @ptrCast([*c]const X509_INFO, @alignCast(@import("std").meta.alignment(X509_INFO), a.*)); - var b_ptr: [*c]const X509_INFO = @ptrCast([*c]const X509_INFO, @alignCast(@import("std").meta.alignment(X509_INFO), b.*)); - return @ptrCast(stack_X509_INFO_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const X509_INFO, [*c][*c]const X509_INFO) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: [*c]const X509_INFO = @as([*c]const X509_INFO, @ptrCast(@alignCast(a.*))); + var b_ptr: [*c]const X509_INFO = @as([*c]const X509_INFO, @ptrCast(@alignCast(b.*))); + return @as(sk_X509_INFO_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_INFO_new(arg_comp: stack_X509_INFO_cmp_func) callconv(.C) ?*struct_stack_st_X509_INFO { +pub fn sk_X509_INFO_new(arg_comp: sk_X509_INFO_cmp_func) callconv(.C) ?*struct_stack_st_X509_INFO { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_X509_INFO, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_X509_INFO, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_X509_INFO_new_null() callconv(.C) ?*struct_stack_st_X509_INFO { - return @ptrCast(?*struct_stack_st_X509_INFO, sk_new_null()); + return @as(?*struct_stack_st_X509_INFO, @ptrCast(sk_new_null())); } pub fn sk_X509_INFO_num(arg_sk: ?*const struct_stack_st_X509_INFO) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_INFO_zero(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_INFO_value(arg_sk: ?*const struct_stack_st_X509_INFO, arg_i: usize) callconv(.C) [*c]X509_INFO { var sk = arg_sk; var i = arg_i; - return @ptrCast([*c]X509_INFO, @alignCast(@import("std").meta.alignment(X509_INFO), sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i))); + return @as([*c]X509_INFO, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } pub fn sk_X509_INFO_set(arg_sk: ?*struct_stack_st_X509_INFO, arg_i: usize, arg_p: [*c]X509_INFO) callconv(.C) [*c]X509_INFO { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast([*c]X509_INFO, @alignCast(@import("std").meta.alignment(X509_INFO), sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p)))); + return @as([*c]X509_INFO, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } pub fn sk_X509_INFO_free(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_INFO_pop_free(arg_sk: ?*struct_stack_st_X509_INFO, arg_free_func: stack_X509_INFO_free_func) callconv(.C) void { +pub fn sk_X509_INFO_pop_free(arg_sk: ?*struct_stack_st_X509_INFO, arg_free_func: sk_X509_INFO_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_INFO_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_INFO_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_X509_INFO_insert(arg_sk: ?*struct_stack_st_X509_INFO, arg_p: [*c]X509_INFO, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_X509_INFO_delete(arg_sk: ?*struct_stack_st_X509_INFO, arg_where: usize) callconv(.C) [*c]X509_INFO { var sk = arg_sk; var where = arg_where; - return @ptrCast([*c]X509_INFO, @alignCast(@import("std").meta.alignment(X509_INFO), sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where))); + return @as([*c]X509_INFO, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } pub fn sk_X509_INFO_delete_ptr(arg_sk: ?*struct_stack_st_X509_INFO, arg_p: [*c]const X509_INFO) callconv(.C) [*c]X509_INFO { var sk = arg_sk; var p = arg_p; - return @ptrCast([*c]X509_INFO, @alignCast(@import("std").meta.alignment(X509_INFO), sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p)))); + return @as([*c]X509_INFO, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } pub fn sk_X509_INFO_find(arg_sk: ?*const struct_stack_st_X509_INFO, arg_out_index: [*c]usize, arg_p: [*c]const X509_INFO) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_X509_INFO_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_INFO_call_cmp_func); } pub fn sk_X509_INFO_shift(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.C) [*c]X509_INFO { var sk = arg_sk; - return @ptrCast([*c]X509_INFO, @alignCast(@import("std").meta.alignment(X509_INFO), sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]X509_INFO, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_X509_INFO_push(arg_sk: ?*struct_stack_st_X509_INFO, arg_p: [*c]X509_INFO) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_X509_INFO_pop(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.C) [*c]X509_INFO { var sk = arg_sk; - return @ptrCast([*c]X509_INFO, @alignCast(@import("std").meta.alignment(X509_INFO), sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]X509_INFO, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_X509_INFO_dup(arg_sk: ?*const struct_stack_st_X509_INFO) callconv(.C) ?*struct_stack_st_X509_INFO { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_X509_INFO, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_X509_INFO, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_INFO_sort(arg_sk: ?*struct_stack_st_X509_INFO) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_INFO_call_cmp_func); } pub fn sk_X509_INFO_is_sorted(arg_sk: ?*const struct_stack_st_X509_INFO) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_INFO_set_cmp_func(arg_sk: ?*struct_stack_st_X509_INFO, arg_comp: stack_X509_INFO_cmp_func) callconv(.C) stack_X509_INFO_cmp_func { +pub fn sk_X509_INFO_set_cmp_func(arg_sk: ?*struct_stack_st_X509_INFO, arg_comp: sk_X509_INFO_cmp_func) callconv(.C) sk_X509_INFO_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_X509_INFO_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const X509_INFO, [*c][*c]const X509_INFO) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_X509_INFO_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_INFO_deep_copy(arg_sk: ?*const struct_stack_st_X509_INFO, arg_copy_func: ?*const fn ([*c]X509_INFO) callconv(.C) [*c]X509_INFO, arg_free_func: ?*const fn ([*c]X509_INFO) callconv(.C) void) callconv(.C) ?*struct_stack_st_X509_INFO { +pub fn sk_X509_INFO_deep_copy(arg_sk: ?*const struct_stack_st_X509_INFO, arg_copy_func: sk_X509_INFO_copy_func, arg_free_func: sk_X509_INFO_free_func) callconv(.C) ?*struct_stack_st_X509_INFO { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_X509_INFO, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_INFO_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_X509_INFO_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_X509_INFO, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_INFO_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_INFO_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } -pub const X509V3_EXT_METHOD = struct_stack_st_v3_ext_method; -pub extern fn X509_get_version(x509: ?*const X509) c_long; -pub extern fn X509_set_version(x509: ?*X509, version: c_long) c_int; -pub extern fn X509_get0_serialNumber(x509: ?*const X509) [*c]const ASN1_INTEGER; -pub extern fn X509_set_serialNumber(x509: ?*X509, serial: [*c]const ASN1_INTEGER) c_int; -pub extern fn X509_get0_notBefore(x509: ?*const X509) [*c]const ASN1_TIME; -pub extern fn X509_get0_notAfter(x509: ?*const X509) [*c]const ASN1_TIME; -pub extern fn X509_set1_notBefore(x509: ?*X509, tm: [*c]const ASN1_TIME) c_int; -pub extern fn X509_set1_notAfter(x509: ?*X509, tm: [*c]const ASN1_TIME) c_int; -pub extern fn X509_getm_notBefore(x509: ?*X509) [*c]ASN1_TIME; -pub extern fn X509_getm_notAfter(x: ?*X509) [*c]ASN1_TIME; pub extern fn X509_get_notBefore(x509: ?*const X509) [*c]ASN1_TIME; pub extern fn X509_get_notAfter(x509: ?*const X509) [*c]ASN1_TIME; pub extern fn X509_set_notBefore(x509: ?*X509, tm: [*c]const ASN1_TIME) c_int; pub extern fn X509_set_notAfter(x509: ?*X509, tm: [*c]const ASN1_TIME) c_int; -pub extern fn X509_get0_uids(x509: ?*const X509, out_issuer_uid: [*c][*c]const ASN1_BIT_STRING, out_subject_uid: [*c][*c]const ASN1_BIT_STRING) void; pub extern fn X509_get_pathlen(x509: ?*X509) c_long; -pub extern fn X509_REQ_get_version(req: ?*const X509_REQ) c_long; -pub extern fn X509_REQ_get_subject_name(req: ?*const X509_REQ) ?*X509_NAME; -pub extern fn X509_CRL_get_version(crl: ?*const X509_CRL) c_long; -pub extern fn X509_CRL_get0_lastUpdate(crl: ?*const X509_CRL) [*c]const ASN1_TIME; -pub extern fn X509_CRL_get0_nextUpdate(crl: ?*const X509_CRL) [*c]const ASN1_TIME; -pub extern fn X509_CRL_set1_lastUpdate(crl: ?*X509_CRL, tm: [*c]const ASN1_TIME) c_int; -pub extern fn X509_CRL_set1_nextUpdate(crl: ?*X509_CRL, tm: [*c]const ASN1_TIME) c_int; -pub extern fn X509_CRL_get_lastUpdate(crl: ?*X509_CRL) [*c]ASN1_TIME; -pub extern fn X509_CRL_get_nextUpdate(crl: ?*X509_CRL) [*c]ASN1_TIME; -pub extern fn X509_CRL_get_issuer(crl: ?*const X509_CRL) ?*X509_NAME; -pub extern fn X509_CRL_get_REVOKED(crl: ?*X509_CRL) ?*struct_stack_st_X509_REVOKED; -pub extern fn X509_CRL_get0_extensions(crl: ?*const X509_CRL) ?*const struct_stack_st_X509_EXTENSION; pub extern fn X509_SIG_get0(sig: ?*const X509_SIG, out_alg: [*c][*c]const X509_ALGOR, out_digest: [*c][*c]const ASN1_OCTET_STRING) void; pub extern fn X509_SIG_getm(sig: ?*X509_SIG, out_alg: [*c][*c]X509_ALGOR, out_digest: [*c][*c]ASN1_OCTET_STRING) void; -pub extern fn X509_CRL_set_default_method(meth: ?*const X509_CRL_METHOD) void; -pub extern fn X509_CRL_METHOD_new(crl_init: ?*const fn (?*X509_CRL) callconv(.C) c_int, crl_free: ?*const fn (?*X509_CRL) callconv(.C) c_int, crl_lookup: ?*const fn (?*X509_CRL, [*c][*c]X509_REVOKED, [*c]ASN1_INTEGER, ?*X509_NAME) callconv(.C) c_int, crl_verify: ?*const fn (?*X509_CRL, [*c]EVP_PKEY) callconv(.C) c_int) ?*X509_CRL_METHOD; -pub extern fn X509_CRL_METHOD_free(m: ?*X509_CRL_METHOD) void; -pub extern fn X509_CRL_set_meth_data(crl: ?*X509_CRL, dat: ?*anyopaque) void; -pub extern fn X509_CRL_get_meth_data(crl: ?*X509_CRL) ?*anyopaque; -pub extern fn X509_get_X509_PUBKEY(x509: ?*const X509) ?*X509_PUBKEY; pub extern fn X509_verify_cert_error_string(err: c_long) [*c]const u8; pub extern fn X509_verify(x509: ?*X509, pkey: [*c]EVP_PKEY) c_int; pub extern fn X509_REQ_verify(req: ?*X509_REQ, pkey: [*c]EVP_PKEY) c_int; @@ -4130,99 +4230,9 @@ pub extern fn NETSCAPE_SPKI_b64_decode(str: [*c]const u8, len: c_int) [*c]NETSCA pub extern fn NETSCAPE_SPKI_b64_encode(spki: [*c]NETSCAPE_SPKI) [*c]u8; pub extern fn NETSCAPE_SPKI_get_pubkey(spki: [*c]NETSCAPE_SPKI) [*c]EVP_PKEY; pub extern fn NETSCAPE_SPKI_set_pubkey(spki: [*c]NETSCAPE_SPKI, pkey: [*c]EVP_PKEY) c_int; -pub extern fn X509_signature_dump(bio: [*c]BIO, sig: [*c]const ASN1_STRING, indent: c_int) c_int; -pub extern fn X509_signature_print(bio: [*c]BIO, alg: [*c]const X509_ALGOR, sig: [*c]const ASN1_STRING) c_int; -pub extern fn X509_sign(x509: ?*X509, pkey: [*c]EVP_PKEY, md: ?*const EVP_MD) c_int; -pub extern fn X509_sign_ctx(x509: ?*X509, ctx: [*c]EVP_MD_CTX) c_int; -pub extern fn X509_REQ_sign(req: ?*X509_REQ, pkey: [*c]EVP_PKEY, md: ?*const EVP_MD) c_int; -pub extern fn X509_REQ_sign_ctx(req: ?*X509_REQ, ctx: [*c]EVP_MD_CTX) c_int; -pub extern fn X509_CRL_sign(crl: ?*X509_CRL, pkey: [*c]EVP_PKEY, md: ?*const EVP_MD) c_int; -pub extern fn X509_CRL_sign_ctx(crl: ?*X509_CRL, ctx: [*c]EVP_MD_CTX) c_int; pub extern fn NETSCAPE_SPKI_sign(spki: [*c]NETSCAPE_SPKI, pkey: [*c]EVP_PKEY, md: ?*const EVP_MD) c_int; -pub extern fn X509_pubkey_digest(x509: ?*const X509, md: ?*const EVP_MD, out: [*c]u8, out_len: [*c]c_uint) c_int; -pub extern fn X509_digest(x509: ?*const X509, md: ?*const EVP_MD, out: [*c]u8, out_len: [*c]c_uint) c_int; -pub extern fn X509_CRL_digest(crl: ?*const X509_CRL, md: ?*const EVP_MD, out: [*c]u8, out_len: [*c]c_uint) c_int; -pub extern fn X509_REQ_digest(req: ?*const X509_REQ, md: ?*const EVP_MD, out: [*c]u8, out_len: [*c]c_uint) c_int; -pub extern fn X509_NAME_digest(name: ?*const X509_NAME, md: ?*const EVP_MD, out: [*c]u8, out_len: [*c]c_uint) c_int; -pub extern fn X509_parse_from_buffer(buf: ?*CRYPTO_BUFFER) ?*X509; -pub extern fn d2i_X509_fp(fp: [*c]FILE, x509: [*c]?*X509) ?*X509; -pub extern fn i2d_X509_fp(fp: [*c]FILE, x509: ?*X509) c_int; -pub extern fn d2i_X509_CRL_fp(fp: [*c]FILE, crl: [*c]?*X509_CRL) ?*X509_CRL; -pub extern fn i2d_X509_CRL_fp(fp: [*c]FILE, crl: ?*X509_CRL) c_int; -pub extern fn d2i_X509_REQ_fp(fp: [*c]FILE, req: [*c]?*X509_REQ) ?*X509_REQ; -pub extern fn i2d_X509_REQ_fp(fp: [*c]FILE, req: ?*X509_REQ) c_int; -pub extern fn d2i_RSAPrivateKey_fp(fp: [*c]FILE, rsa: [*c]?*RSA) ?*RSA; -pub extern fn i2d_RSAPrivateKey_fp(fp: [*c]FILE, rsa: ?*RSA) c_int; -pub extern fn d2i_RSAPublicKey_fp(fp: [*c]FILE, rsa: [*c]?*RSA) ?*RSA; -pub extern fn i2d_RSAPublicKey_fp(fp: [*c]FILE, rsa: ?*RSA) c_int; -pub extern fn d2i_RSA_PUBKEY_fp(fp: [*c]FILE, rsa: [*c]?*RSA) ?*RSA; -pub extern fn i2d_RSA_PUBKEY_fp(fp: [*c]FILE, rsa: ?*RSA) c_int; -pub extern fn d2i_DSA_PUBKEY_fp(fp: [*c]FILE, dsa: [*c][*c]DSA) [*c]DSA; -pub extern fn i2d_DSA_PUBKEY_fp(fp: [*c]FILE, dsa: [*c]DSA) c_int; -pub extern fn d2i_DSAPrivateKey_fp(fp: [*c]FILE, dsa: [*c][*c]DSA) [*c]DSA; -pub extern fn i2d_DSAPrivateKey_fp(fp: [*c]FILE, dsa: [*c]DSA) c_int; -pub extern fn d2i_EC_PUBKEY_fp(fp: [*c]FILE, eckey: [*c]?*EC_KEY) ?*EC_KEY; -pub extern fn i2d_EC_PUBKEY_fp(fp: [*c]FILE, eckey: ?*EC_KEY) c_int; -pub extern fn d2i_ECPrivateKey_fp(fp: [*c]FILE, eckey: [*c]?*EC_KEY) ?*EC_KEY; -pub extern fn i2d_ECPrivateKey_fp(fp: [*c]FILE, eckey: ?*EC_KEY) c_int; -pub extern fn d2i_PKCS8_fp(fp: [*c]FILE, p8: [*c]?*X509_SIG) ?*X509_SIG; -pub extern fn i2d_PKCS8_fp(fp: [*c]FILE, p8: ?*X509_SIG) c_int; -pub extern fn d2i_PKCS8_PRIV_KEY_INFO_fp(fp: [*c]FILE, p8inf: [*c]?*PKCS8_PRIV_KEY_INFO) ?*PKCS8_PRIV_KEY_INFO; -pub extern fn i2d_PKCS8_PRIV_KEY_INFO_fp(fp: [*c]FILE, p8inf: ?*PKCS8_PRIV_KEY_INFO) c_int; -pub extern fn i2d_PKCS8PrivateKeyInfo_fp(fp: [*c]FILE, key: [*c]EVP_PKEY) c_int; -pub extern fn i2d_PrivateKey_fp(fp: [*c]FILE, pkey: [*c]EVP_PKEY) c_int; -pub extern fn d2i_PrivateKey_fp(fp: [*c]FILE, a: [*c][*c]EVP_PKEY) [*c]EVP_PKEY; -pub extern fn i2d_PUBKEY_fp(fp: [*c]FILE, pkey: [*c]EVP_PKEY) c_int; -pub extern fn d2i_PUBKEY_fp(fp: [*c]FILE, a: [*c][*c]EVP_PKEY) [*c]EVP_PKEY; -pub extern fn d2i_X509_bio(bp: [*c]BIO, x509: [*c]?*X509) ?*X509; -pub extern fn i2d_X509_bio(bp: [*c]BIO, x509: ?*X509) c_int; -pub extern fn d2i_X509_CRL_bio(bp: [*c]BIO, crl: [*c]?*X509_CRL) ?*X509_CRL; -pub extern fn i2d_X509_CRL_bio(bp: [*c]BIO, crl: ?*X509_CRL) c_int; -pub extern fn d2i_X509_REQ_bio(bp: [*c]BIO, req: [*c]?*X509_REQ) ?*X509_REQ; -pub extern fn i2d_X509_REQ_bio(bp: [*c]BIO, req: ?*X509_REQ) c_int; -pub extern fn d2i_RSAPrivateKey_bio(bp: [*c]BIO, rsa: [*c]?*RSA) ?*RSA; -pub extern fn i2d_RSAPrivateKey_bio(bp: [*c]BIO, rsa: ?*RSA) c_int; -pub extern fn d2i_RSAPublicKey_bio(bp: [*c]BIO, rsa: [*c]?*RSA) ?*RSA; -pub extern fn i2d_RSAPublicKey_bio(bp: [*c]BIO, rsa: ?*RSA) c_int; -pub extern fn d2i_RSA_PUBKEY_bio(bp: [*c]BIO, rsa: [*c]?*RSA) ?*RSA; -pub extern fn i2d_RSA_PUBKEY_bio(bp: [*c]BIO, rsa: ?*RSA) c_int; -pub extern fn d2i_DSA_PUBKEY_bio(bp: [*c]BIO, dsa: [*c][*c]DSA) [*c]DSA; -pub extern fn i2d_DSA_PUBKEY_bio(bp: [*c]BIO, dsa: [*c]DSA) c_int; -pub extern fn d2i_DSAPrivateKey_bio(bp: [*c]BIO, dsa: [*c][*c]DSA) [*c]DSA; -pub extern fn i2d_DSAPrivateKey_bio(bp: [*c]BIO, dsa: [*c]DSA) c_int; -pub extern fn d2i_EC_PUBKEY_bio(bp: [*c]BIO, eckey: [*c]?*EC_KEY) ?*EC_KEY; -pub extern fn i2d_EC_PUBKEY_bio(bp: [*c]BIO, eckey: ?*EC_KEY) c_int; -pub extern fn d2i_ECPrivateKey_bio(bp: [*c]BIO, eckey: [*c]?*EC_KEY) ?*EC_KEY; -pub extern fn i2d_ECPrivateKey_bio(bp: [*c]BIO, eckey: ?*EC_KEY) c_int; -pub extern fn d2i_PKCS8_bio(bp: [*c]BIO, p8: [*c]?*X509_SIG) ?*X509_SIG; -pub extern fn i2d_PKCS8_bio(bp: [*c]BIO, p8: ?*X509_SIG) c_int; -pub extern fn d2i_PKCS8_PRIV_KEY_INFO_bio(bp: [*c]BIO, p8inf: [*c]?*PKCS8_PRIV_KEY_INFO) ?*PKCS8_PRIV_KEY_INFO; -pub extern fn i2d_PKCS8_PRIV_KEY_INFO_bio(bp: [*c]BIO, p8inf: ?*PKCS8_PRIV_KEY_INFO) c_int; -pub extern fn i2d_PKCS8PrivateKeyInfo_bio(bp: [*c]BIO, key: [*c]EVP_PKEY) c_int; -pub extern fn i2d_PrivateKey_bio(bp: [*c]BIO, pkey: [*c]EVP_PKEY) c_int; -pub extern fn d2i_PrivateKey_bio(bp: [*c]BIO, a: [*c][*c]EVP_PKEY) [*c]EVP_PKEY; -pub extern fn i2d_PUBKEY_bio(bp: [*c]BIO, pkey: [*c]EVP_PKEY) c_int; -pub extern fn d2i_PUBKEY_bio(bp: [*c]BIO, a: [*c][*c]EVP_PKEY) [*c]EVP_PKEY; -pub extern fn d2i_DHparams_bio(bp: [*c]BIO, dh: [*c][*c]DH) [*c]DH; -pub extern fn i2d_DHparams_bio(bp: [*c]BIO, dh: [*c]const DH) c_int; -pub extern fn X509_dup(x509: ?*X509) ?*X509; -pub extern fn X509_ATTRIBUTE_dup(xa: ?*X509_ATTRIBUTE) ?*X509_ATTRIBUTE; -pub extern fn X509_EXTENSION_dup(ex: ?*X509_EXTENSION) ?*X509_EXTENSION; -pub extern fn X509V3_EXT_d2i(ex: ?*X509_EXTENSION) ?*anyopaque; -pub extern fn X509V3_EXT_get(ex: ?*X509_EXTENSION) ?*X509V3_EXT_METHOD; -pub extern fn X509V3_EXT_get_nid(ndi: c_int) ?*X509V3_EXT_METHOD; -pub extern fn X509_CRL_dup(crl: ?*X509_CRL) ?*X509_CRL; -pub extern fn X509_REVOKED_dup(rev: [*c]X509_REVOKED) [*c]X509_REVOKED; -pub extern fn X509_REQ_dup(req: ?*X509_REQ) ?*X509_REQ; -pub extern fn X509_ALGOR_dup(xn: [*c]X509_ALGOR) [*c]X509_ALGOR; -pub extern fn X509_ALGOR_set0(alg: [*c]X509_ALGOR, obj: ?*ASN1_OBJECT, param_type: c_int, param_value: ?*anyopaque) c_int; -pub extern fn X509_ALGOR_get0(out_obj: [*c]?*const ASN1_OBJECT, out_param_type: [*c]c_int, out_param_value: [*c]?*const anyopaque, alg: [*c]const X509_ALGOR) void; -pub extern fn X509_ALGOR_set_md(alg: [*c]X509_ALGOR, md: ?*const EVP_MD) void; -pub extern fn X509_ALGOR_cmp(a: [*c]const X509_ALGOR, b: [*c]const X509_ALGOR) c_int; -pub extern fn X509_NAME_dup(xn: ?*X509_NAME) ?*X509_NAME; -pub extern fn X509_NAME_ENTRY_dup(ne: ?*X509_NAME_ENTRY) ?*X509_NAME_ENTRY; -pub extern fn X509_NAME_ENTRY_set(ne: ?*const X509_NAME_ENTRY) c_int; -pub extern fn X509_NAME_get0_der(nm: ?*X509_NAME, pder: [*c][*c]const u8, pderlen: [*c]usize) c_int; +pub extern fn X509_ATTRIBUTE_dup(xa: ?*const X509_ATTRIBUTE) ?*X509_ATTRIBUTE; +pub extern fn X509_REVOKED_dup(rev: ?*const X509_REVOKED) ?*X509_REVOKED; pub extern fn X509_cmp_time(s: [*c]const ASN1_TIME, t: [*c]time_t) c_int; pub extern fn X509_cmp_current_time(s: [*c]const ASN1_TIME) c_int; pub extern fn X509_time_adj(s: [*c]ASN1_TIME, offset_sec: c_long, t: [*c]time_t) [*c]ASN1_TIME; @@ -4230,138 +4240,61 @@ pub extern fn X509_time_adj_ex(s: [*c]ASN1_TIME, offset_day: c_int, offset_sec: pub extern fn X509_gmtime_adj(s: [*c]ASN1_TIME, offset_sec: c_long) [*c]ASN1_TIME; pub extern fn X509_get_default_cert_area() [*c]const u8; pub extern fn X509_get_default_cert_dir() [*c]const u8; -pub extern fn X509_get_default_cert_file() [*c]const u8; +// pub extern fn X509_get_default_cert_file() [*c]const u8; pub extern fn X509_get_default_cert_dir_env() [*c]const u8; -pub extern fn X509_get_default_cert_file_env() [*c]const u8; +// pub extern fn X509_get_default_cert_file_env() [*c]const u8; pub extern fn X509_get_default_private_dir() [*c]const u8; -pub extern fn X509_to_X509_REQ(x: ?*X509, pkey: [*c]EVP_PKEY, md: ?*const EVP_MD) ?*X509_REQ; -pub extern fn d2i_X509_ALGORS(a: [*c]?*X509_ALGORS, in: [*c][*c]const u8, len: c_long) ?*X509_ALGORS; -pub extern fn i2d_X509_ALGORS(a: ?*X509_ALGORS, out: [*c][*c]u8) c_int; -pub extern const X509_ALGORS_it: ASN1_ITEM; pub extern fn X509_PUBKEY_new() ?*X509_PUBKEY; pub extern fn X509_PUBKEY_free(a: ?*X509_PUBKEY) void; pub extern fn d2i_X509_PUBKEY(a: [*c]?*X509_PUBKEY, in: [*c][*c]const u8, len: c_long) ?*X509_PUBKEY; -pub extern fn i2d_X509_PUBKEY(a: ?*X509_PUBKEY, out: [*c][*c]u8) c_int; +pub extern fn i2d_X509_PUBKEY(a: ?*const X509_PUBKEY, out: [*c][*c]u8) c_int; pub extern const X509_PUBKEY_it: ASN1_ITEM; pub extern fn X509_PUBKEY_set(x: [*c]?*X509_PUBKEY, pkey: [*c]EVP_PKEY) c_int; pub extern fn X509_PUBKEY_get(key: ?*X509_PUBKEY) [*c]EVP_PKEY; pub extern fn X509_SIG_new() ?*X509_SIG; pub extern fn X509_SIG_free(a: ?*X509_SIG) void; pub extern fn d2i_X509_SIG(a: [*c]?*X509_SIG, in: [*c][*c]const u8, len: c_long) ?*X509_SIG; -pub extern fn i2d_X509_SIG(a: ?*X509_SIG, out: [*c][*c]u8) c_int; +pub extern fn i2d_X509_SIG(a: ?*const X509_SIG, out: [*c][*c]u8) c_int; pub extern const X509_SIG_it: ASN1_ITEM; -pub extern fn X509_REQ_new() ?*X509_REQ; -pub extern fn X509_REQ_free(a: ?*X509_REQ) void; -pub extern fn d2i_X509_REQ(a: [*c]?*X509_REQ, in: [*c][*c]const u8, len: c_long) ?*X509_REQ; -pub extern fn i2d_X509_REQ(a: ?*X509_REQ, out: [*c][*c]u8) c_int; -pub extern const X509_REQ_it: ASN1_ITEM; pub extern fn X509_ATTRIBUTE_new() ?*X509_ATTRIBUTE; pub extern fn X509_ATTRIBUTE_free(a: ?*X509_ATTRIBUTE) void; pub extern fn d2i_X509_ATTRIBUTE(a: [*c]?*X509_ATTRIBUTE, in: [*c][*c]const u8, len: c_long) ?*X509_ATTRIBUTE; -pub extern fn i2d_X509_ATTRIBUTE(a: ?*X509_ATTRIBUTE, out: [*c][*c]u8) c_int; +pub extern fn i2d_X509_ATTRIBUTE(a: ?*const X509_ATTRIBUTE, out: [*c][*c]u8) c_int; pub extern const X509_ATTRIBUTE_it: ASN1_ITEM; pub extern fn X509_ATTRIBUTE_create(nid: c_int, attrtype: c_int, value: ?*anyopaque) ?*X509_ATTRIBUTE; -pub extern fn X509_EXTENSION_new() ?*X509_EXTENSION; -pub extern fn X509_EXTENSION_free(a: ?*X509_EXTENSION) void; -pub extern fn d2i_X509_EXTENSION(a: [*c]?*X509_EXTENSION, in: [*c][*c]const u8, len: c_long) ?*X509_EXTENSION; -pub extern fn i2d_X509_EXTENSION(a: ?*X509_EXTENSION, out: [*c][*c]u8) c_int; -pub extern const X509_EXTENSION_it: ASN1_ITEM; -pub extern fn d2i_X509_EXTENSIONS(a: [*c]?*X509_EXTENSIONS, in: [*c][*c]const u8, len: c_long) ?*X509_EXTENSIONS; -pub extern fn i2d_X509_EXTENSIONS(a: ?*X509_EXTENSIONS, out: [*c][*c]u8) c_int; -pub extern const X509_EXTENSIONS_it: ASN1_ITEM; -pub extern fn X509_NAME_ENTRY_new() ?*X509_NAME_ENTRY; -pub extern fn X509_NAME_ENTRY_free(a: ?*X509_NAME_ENTRY) void; -pub extern fn d2i_X509_NAME_ENTRY(a: [*c]?*X509_NAME_ENTRY, in: [*c][*c]const u8, len: c_long) ?*X509_NAME_ENTRY; -pub extern fn i2d_X509_NAME_ENTRY(a: ?*X509_NAME_ENTRY, out: [*c][*c]u8) c_int; -pub extern const X509_NAME_ENTRY_it: ASN1_ITEM; -pub extern fn X509_NAME_new() ?*X509_NAME; -pub extern fn X509_NAME_free(a: ?*X509_NAME) void; -pub extern fn d2i_X509_NAME(a: [*c]?*X509_NAME, in: [*c][*c]const u8, len: c_long) ?*X509_NAME; -pub extern fn i2d_X509_NAME(a: ?*X509_NAME, out: [*c][*c]u8) c_int; -pub extern const X509_NAME_it: ASN1_ITEM; -pub extern fn X509_NAME_set(xn: [*c]?*X509_NAME, name: ?*X509_NAME) c_int; -pub extern fn X509_new() ?*X509; -pub extern fn X509_free(a: ?*X509) void; -pub extern fn d2i_X509(a: [*c]?*X509, in: [*c][*c]const u8, len: c_long) ?*X509; -pub extern fn i2d_X509(a: ?*X509, out: [*c][*c]u8) c_int; -pub extern const X509_it: ASN1_ITEM; -pub extern fn X509_CERT_AUX_new() ?*X509_CERT_AUX; -pub extern fn X509_CERT_AUX_free(a: ?*X509_CERT_AUX) void; -pub extern fn d2i_X509_CERT_AUX(a: [*c]?*X509_CERT_AUX, in: [*c][*c]const u8, len: c_long) ?*X509_CERT_AUX; -pub extern fn i2d_X509_CERT_AUX(a: ?*X509_CERT_AUX, out: [*c][*c]u8) c_int; -pub extern const X509_CERT_AUX_it: ASN1_ITEM; -pub extern fn X509_up_ref(x509: ?*X509) c_int; -pub extern fn X509_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?CRYPTO_EX_dup, free_func: ?CRYPTO_EX_free) c_int; -pub extern fn X509_set_ex_data(r: ?*X509, idx: c_int, arg: ?*anyopaque) c_int; -pub extern fn X509_get_ex_data(r: ?*X509, idx: c_int) ?*anyopaque; -pub extern fn i2d_X509_AUX(a: ?*X509, pp: [*c][*c]u8) c_int; -pub extern fn d2i_X509_AUX(a: [*c]?*X509, pp: [*c][*c]const u8, length: c_long) ?*X509; -pub extern fn i2d_re_X509_tbs(x509: ?*X509, outp: [*c][*c]u8) c_int; -pub extern fn i2d_X509_tbs(x509: ?*X509, outp: [*c][*c]u8) c_int; -pub extern fn X509_set1_signature_algo(x509: ?*X509, algo: [*c]const X509_ALGOR) c_int; -pub extern fn X509_set1_signature_value(x509: ?*X509, sig: [*c]const u8, sig_len: usize) c_int; -pub extern fn X509_get0_signature(out_sig: [*c][*c]const ASN1_BIT_STRING, out_alg: [*c][*c]const X509_ALGOR, x509: ?*const X509) void; -pub extern fn X509_get_signature_nid(x509: ?*const X509) c_int; -pub extern fn X509_alias_set1(x: ?*X509, name: [*c]const u8, len: c_int) c_int; -pub extern fn X509_keyid_set1(x: ?*X509, id: [*c]const u8, len: c_int) c_int; -pub extern fn X509_alias_get0(x: ?*X509, len: [*c]c_int) [*c]u8; -pub extern fn X509_keyid_get0(x: ?*X509, len: [*c]c_int) [*c]u8; -pub extern fn X509_TRUST_set_default(trust: ?*const fn (c_int, ?*X509, c_int) callconv(.C) c_int) ?*const fn (c_int, ?*X509, c_int) callconv(.C) c_int; -pub extern fn X509_TRUST_set(t: [*c]c_int, trust: c_int) c_int; pub extern fn X509_add1_trust_object(x: ?*X509, obj: ?*ASN1_OBJECT) c_int; pub extern fn X509_add1_reject_object(x: ?*X509, obj: ?*ASN1_OBJECT) c_int; pub extern fn X509_trust_clear(x: ?*X509) void; pub extern fn X509_reject_clear(x: ?*X509) void; -pub extern fn X509_REVOKED_new() [*c]X509_REVOKED; -pub extern fn X509_REVOKED_free(a: [*c]X509_REVOKED) void; -pub extern fn d2i_X509_REVOKED(a: [*c][*c]X509_REVOKED, in: [*c][*c]const u8, len: c_long) [*c]X509_REVOKED; -pub extern fn i2d_X509_REVOKED(a: [*c]X509_REVOKED, out: [*c][*c]u8) c_int; +pub extern fn X509_TRUST_set(t: [*c]c_int, trust: c_int) c_int; +pub extern fn X509_REVOKED_new() ?*X509_REVOKED; +pub extern fn X509_REVOKED_free(a: ?*X509_REVOKED) void; +pub extern fn d2i_X509_REVOKED(a: [*c]?*X509_REVOKED, in: [*c][*c]const u8, len: c_long) ?*X509_REVOKED; +pub extern fn i2d_X509_REVOKED(a: ?*const X509_REVOKED, out: [*c][*c]u8) c_int; pub extern const X509_REVOKED_it: ASN1_ITEM; -pub extern fn X509_CRL_new() ?*X509_CRL; -pub extern fn X509_CRL_free(a: ?*X509_CRL) void; -pub extern fn d2i_X509_CRL(a: [*c]?*X509_CRL, in: [*c][*c]const u8, len: c_long) ?*X509_CRL; -pub extern fn i2d_X509_CRL(a: ?*X509_CRL, out: [*c][*c]u8) c_int; -pub extern const X509_CRL_it: ASN1_ITEM; -pub extern fn X509_CRL_add0_revoked(crl: ?*X509_CRL, rev: [*c]X509_REVOKED) c_int; -pub extern fn X509_CRL_get0_by_serial(crl: ?*X509_CRL, ret: [*c][*c]X509_REVOKED, serial: [*c]ASN1_INTEGER) c_int; -pub extern fn X509_CRL_get0_by_cert(crl: ?*X509_CRL, ret: [*c][*c]X509_REVOKED, x: ?*X509) c_int; +pub extern fn X509_CRL_add0_revoked(crl: ?*X509_CRL, rev: ?*X509_REVOKED) c_int; +pub extern fn X509_CRL_get0_by_serial(crl: ?*X509_CRL, ret: [*c]?*X509_REVOKED, serial: [*c]ASN1_INTEGER) c_int; +pub extern fn X509_CRL_get0_by_cert(crl: ?*X509_CRL, ret: [*c]?*X509_REVOKED, x: ?*X509) c_int; pub extern fn X509_PKEY_new() [*c]X509_PKEY; pub extern fn X509_PKEY_free(a: [*c]X509_PKEY) void; pub extern fn NETSCAPE_SPKI_new() [*c]NETSCAPE_SPKI; pub extern fn NETSCAPE_SPKI_free(a: [*c]NETSCAPE_SPKI) void; pub extern fn d2i_NETSCAPE_SPKI(a: [*c][*c]NETSCAPE_SPKI, in: [*c][*c]const u8, len: c_long) [*c]NETSCAPE_SPKI; -pub extern fn i2d_NETSCAPE_SPKI(a: [*c]NETSCAPE_SPKI, out: [*c][*c]u8) c_int; +pub extern fn i2d_NETSCAPE_SPKI(a: [*c]const NETSCAPE_SPKI, out: [*c][*c]u8) c_int; pub extern const NETSCAPE_SPKI_it: ASN1_ITEM; pub extern fn NETSCAPE_SPKAC_new() [*c]NETSCAPE_SPKAC; pub extern fn NETSCAPE_SPKAC_free(a: [*c]NETSCAPE_SPKAC) void; pub extern fn d2i_NETSCAPE_SPKAC(a: [*c][*c]NETSCAPE_SPKAC, in: [*c][*c]const u8, len: c_long) [*c]NETSCAPE_SPKAC; -pub extern fn i2d_NETSCAPE_SPKAC(a: [*c]NETSCAPE_SPKAC, out: [*c][*c]u8) c_int; +pub extern fn i2d_NETSCAPE_SPKAC(a: [*c]const NETSCAPE_SPKAC, out: [*c][*c]u8) c_int; pub extern const NETSCAPE_SPKAC_it: ASN1_ITEM; pub extern fn X509_INFO_new() [*c]X509_INFO; pub extern fn X509_INFO_free(a: [*c]X509_INFO) void; pub extern fn X509_NAME_oneline(a: ?*const X509_NAME, buf: [*c]u8, size: c_int) [*c]u8; -pub extern fn ASN1_digest(i2d: ?i2d_of_void, @"type": ?*const EVP_MD, data: [*c]u8, md: [*c]u8, len: [*c]c_uint) c_int; +pub extern fn ASN1_digest(i2d: ?*const i2d_of_void, @"type": ?*const EVP_MD, data: [*c]u8, md: [*c]u8, len: [*c]c_uint) c_int; pub extern fn ASN1_item_digest(it: ?*const ASN1_ITEM, @"type": ?*const EVP_MD, data: ?*anyopaque, md: [*c]u8, len: [*c]c_uint) c_int; pub extern fn ASN1_item_verify(it: ?*const ASN1_ITEM, algor1: [*c]const X509_ALGOR, signature: [*c]const ASN1_BIT_STRING, data: ?*anyopaque, pkey: [*c]EVP_PKEY) c_int; pub extern fn ASN1_item_sign(it: ?*const ASN1_ITEM, algor1: [*c]X509_ALGOR, algor2: [*c]X509_ALGOR, signature: [*c]ASN1_BIT_STRING, data: ?*anyopaque, pkey: [*c]EVP_PKEY, @"type": ?*const EVP_MD) c_int; pub extern fn ASN1_item_sign_ctx(it: ?*const ASN1_ITEM, algor1: [*c]X509_ALGOR, algor2: [*c]X509_ALGOR, signature: [*c]ASN1_BIT_STRING, asn: ?*anyopaque, ctx: [*c]EVP_MD_CTX) c_int; -pub extern fn X509_get_serialNumber(x509: ?*X509) [*c]ASN1_INTEGER; -pub extern fn X509_set_issuer_name(x509: ?*X509, name: ?*X509_NAME) c_int; -pub extern fn X509_get_issuer_name(x509: ?*const X509) ?*X509_NAME; -pub extern fn X509_set_subject_name(x509: ?*X509, name: ?*X509_NAME) c_int; -pub extern fn X509_get_subject_name(x509: ?*const X509) ?*X509_NAME; -pub extern fn X509_set_pubkey(x509: ?*X509, pkey: [*c]EVP_PKEY) c_int; -pub extern fn X509_get_pubkey(x509: ?*X509) [*c]EVP_PKEY; -pub extern fn X509_get0_pubkey_bitstr(x509: ?*const X509) [*c]ASN1_BIT_STRING; -pub extern fn X509_get0_extensions(x509: ?*const X509) ?*const struct_stack_st_X509_EXTENSION; -pub extern fn X509_get0_tbs_sigalg(x509: ?*const X509) [*c]const X509_ALGOR; -pub extern fn X509_REQ_set_version(req: ?*X509_REQ, version: c_long) c_int; -pub extern fn X509_REQ_set_subject_name(req: ?*X509_REQ, name: ?*X509_NAME) c_int; -pub extern fn X509_REQ_get0_signature(req: ?*const X509_REQ, out_sig: [*c][*c]const ASN1_BIT_STRING, out_alg: [*c][*c]const X509_ALGOR) void; -pub extern fn X509_REQ_get_signature_nid(req: ?*const X509_REQ) c_int; -pub extern fn i2d_re_X509_REQ_tbs(req: ?*X509_REQ, outp: [*c][*c]u8) c_int; -pub extern fn X509_REQ_set_pubkey(req: ?*X509_REQ, pkey: [*c]EVP_PKEY) c_int; -pub extern fn X509_REQ_get_pubkey(req: ?*X509_REQ) [*c]EVP_PKEY; pub extern fn X509_REQ_extension_nid(nid: c_int) c_int; pub extern fn X509_REQ_get_extensions(req: ?*X509_REQ) ?*struct_stack_st_X509_EXTENSION; pub extern fn X509_REQ_add_extensions_nid(req: ?*X509_REQ, exts: ?*const struct_stack_st_X509_EXTENSION, nid: c_int) c_int; @@ -4375,28 +4308,15 @@ pub extern fn X509_REQ_add1_attr(req: ?*X509_REQ, attr: ?*X509_ATTRIBUTE) c_int; pub extern fn X509_REQ_add1_attr_by_OBJ(req: ?*X509_REQ, obj: ?*const ASN1_OBJECT, attrtype: c_int, data: [*c]const u8, len: c_int) c_int; pub extern fn X509_REQ_add1_attr_by_NID(req: ?*X509_REQ, nid: c_int, attrtype: c_int, data: [*c]const u8, len: c_int) c_int; pub extern fn X509_REQ_add1_attr_by_txt(req: ?*X509_REQ, attrname: [*c]const u8, attrtype: c_int, data: [*c]const u8, len: c_int) c_int; -pub extern fn X509_CRL_set_version(crl: ?*X509_CRL, version: c_long) c_int; -pub extern fn X509_CRL_set_issuer_name(crl: ?*X509_CRL, name: ?*X509_NAME) c_int; pub extern fn X509_CRL_sort(crl: ?*X509_CRL) c_int; -pub extern fn X509_CRL_up_ref(crl: ?*X509_CRL) c_int; -pub extern fn X509_CRL_get0_signature(crl: ?*const X509_CRL, out_sig: [*c][*c]const ASN1_BIT_STRING, out_alg: [*c][*c]const X509_ALGOR) void; -pub extern fn X509_CRL_get_signature_nid(crl: ?*const X509_CRL) c_int; -pub extern fn i2d_re_X509_CRL_tbs(crl: ?*X509_CRL, outp: [*c][*c]u8) c_int; -pub extern fn i2d_X509_CRL_tbs(crl: ?*X509_CRL, outp: [*c][*c]u8) c_int; -pub extern fn X509_CRL_set1_signature_algo(crl: ?*X509_CRL, algo: [*c]const X509_ALGOR) c_int; -pub extern fn X509_CRL_set1_signature_value(crl: ?*X509_CRL, sig: [*c]const u8, sig_len: usize) c_int; -pub extern fn X509_REVOKED_get0_serialNumber(revoked: [*c]const X509_REVOKED) [*c]const ASN1_INTEGER; -pub extern fn X509_REVOKED_set_serialNumber(revoked: [*c]X509_REVOKED, serial: [*c]const ASN1_INTEGER) c_int; -pub extern fn X509_REVOKED_get0_revocationDate(revoked: [*c]const X509_REVOKED) [*c]const ASN1_TIME; -pub extern fn X509_REVOKED_set_revocationDate(revoked: [*c]X509_REVOKED, tm: [*c]const ASN1_TIME) c_int; -pub extern fn X509_REVOKED_get0_extensions(r: [*c]const X509_REVOKED) ?*const struct_stack_st_X509_EXTENSION; +pub extern fn X509_REVOKED_get0_serialNumber(revoked: ?*const X509_REVOKED) [*c]const ASN1_INTEGER; +pub extern fn X509_REVOKED_set_serialNumber(revoked: ?*X509_REVOKED, serial: [*c]const ASN1_INTEGER) c_int; +pub extern fn X509_REVOKED_get0_revocationDate(revoked: ?*const X509_REVOKED) [*c]const ASN1_TIME; +pub extern fn X509_REVOKED_set_revocationDate(revoked: ?*X509_REVOKED, tm: [*c]const ASN1_TIME) c_int; +pub extern fn X509_REVOKED_get0_extensions(r: ?*const X509_REVOKED) ?*const struct_stack_st_X509_EXTENSION; pub extern fn X509_CRL_diff(base: ?*X509_CRL, newer: ?*X509_CRL, skey: [*c]EVP_PKEY, md: ?*const EVP_MD, flags: c_uint) ?*X509_CRL; pub extern fn X509_REQ_check_private_key(x509: ?*X509_REQ, pkey: [*c]EVP_PKEY) c_int; pub extern fn X509_check_private_key(x509: ?*X509, pkey: [*c]const EVP_PKEY) c_int; -pub extern fn X509_chain_check_suiteb(perror_depth: [*c]c_int, x: ?*X509, chain: ?*struct_stack_st_X509, flags: c_ulong) c_int; -pub extern fn X509_CRL_check_suiteb(crl: ?*X509_CRL, pk: [*c]EVP_PKEY, flags: c_ulong) c_int; -pub extern fn X509_chain_up_ref(chain: ?*struct_stack_st_X509) ?*struct_stack_st_X509; -pub extern fn X509_issuer_and_serial_cmp(a: ?*const X509, b: ?*const X509) c_int; pub extern fn X509_issuer_name_cmp(a: ?*const X509, b: ?*const X509) c_int; pub extern fn X509_issuer_name_hash(a: ?*X509) c_ulong; pub extern fn X509_subject_name_cmp(a: ?*const X509, b: ?*const X509) c_int; @@ -4409,81 +4329,31 @@ pub extern fn X509_NAME_hash(x: ?*X509_NAME) c_ulong; pub extern fn X509_NAME_hash_old(x: ?*X509_NAME) c_ulong; pub extern fn X509_CRL_cmp(a: ?*const X509_CRL, b: ?*const X509_CRL) c_int; pub extern fn X509_CRL_match(a: ?*const X509_CRL, b: ?*const X509_CRL) c_int; -pub extern fn X509_print_ex_fp(bp: [*c]FILE, x: ?*X509, nmflag: c_ulong, cflag: c_ulong) c_int; -pub extern fn X509_print_fp(bp: [*c]FILE, x: ?*X509) c_int; -pub extern fn X509_CRL_print_fp(bp: [*c]FILE, x: ?*X509_CRL) c_int; -pub extern fn X509_REQ_print_fp(bp: [*c]FILE, req: ?*X509_REQ) c_int; -pub extern fn X509_NAME_print_ex_fp(fp: [*c]FILE, nm: ?*const X509_NAME, indent: c_int, flags: c_ulong) c_int; +// pub extern fn X509_print_ex_fp(bp: [*c]FILE, x: ?*X509, nmflag: c_ulong, cflag: c_ulong) c_int; +// pub extern fn X509_print_fp(bp: [*c]FILE, x: ?*X509) c_int; +// pub extern fn X509_CRL_print_fp(bp: [*c]FILE, x: ?*X509_CRL) c_int; +// pub extern fn X509_REQ_print_fp(bp: [*c]FILE, req: ?*X509_REQ) c_int; +// pub extern fn X509_NAME_print_ex_fp(fp: [*c]FILE, nm: ?*const X509_NAME, indent: c_int, flags: c_ulong) c_int; pub extern fn X509_NAME_print(bp: [*c]BIO, name: ?*const X509_NAME, obase: c_int) c_int; pub extern fn X509_NAME_print_ex(out: [*c]BIO, nm: ?*const X509_NAME, indent: c_int, flags: c_ulong) c_int; pub extern fn X509_print_ex(bp: [*c]BIO, x: ?*X509, nmflag: c_ulong, cflag: c_ulong) c_int; pub extern fn X509_print(bp: [*c]BIO, x: ?*X509) c_int; -pub extern fn X509_ocspid_print(bp: [*c]BIO, x: ?*X509) c_int; -pub extern fn X509_CERT_AUX_print(bp: [*c]BIO, x: ?*X509_CERT_AUX, indent: c_int) c_int; pub extern fn X509_CRL_print(bp: [*c]BIO, x: ?*X509_CRL) c_int; pub extern fn X509_REQ_print_ex(bp: [*c]BIO, x: ?*X509_REQ, nmflag: c_ulong, cflag: c_ulong) c_int; pub extern fn X509_REQ_print(bp: [*c]BIO, req: ?*X509_REQ) c_int; -pub extern fn X509_NAME_entry_count(name: ?*const X509_NAME) c_int; -pub extern fn X509_NAME_get_text_by_NID(name: ?*const X509_NAME, nid: c_int, buf: [*c]u8, len: c_int) c_int; -pub extern fn X509_NAME_get_text_by_OBJ(name: ?*const X509_NAME, obj: ?*const ASN1_OBJECT, buf: [*c]u8, len: c_int) c_int; -pub extern fn X509_NAME_get_index_by_NID(name: ?*const X509_NAME, nid: c_int, lastpos: c_int) c_int; -pub extern fn X509_NAME_get_index_by_OBJ(name: ?*const X509_NAME, obj: ?*const ASN1_OBJECT, lastpos: c_int) c_int; -pub extern fn X509_NAME_get_entry(name: ?*const X509_NAME, loc: c_int) ?*X509_NAME_ENTRY; -pub extern fn X509_NAME_delete_entry(name: ?*X509_NAME, loc: c_int) ?*X509_NAME_ENTRY; -pub extern fn X509_NAME_add_entry(name: ?*X509_NAME, ne: ?*X509_NAME_ENTRY, loc: c_int, set: c_int) c_int; -pub extern fn X509_NAME_add_entry_by_OBJ(name: ?*X509_NAME, obj: ?*ASN1_OBJECT, @"type": c_int, bytes: [*c]const u8, len: c_int, loc: c_int, set: c_int) c_int; -pub extern fn X509_NAME_add_entry_by_NID(name: ?*X509_NAME, nid: c_int, @"type": c_int, bytes: [*c]const u8, len: c_int, loc: c_int, set: c_int) c_int; -pub extern fn X509_NAME_ENTRY_create_by_txt(ne: [*c]?*X509_NAME_ENTRY, field: [*c]const u8, @"type": c_int, bytes: [*c]const u8, len: c_int) ?*X509_NAME_ENTRY; -pub extern fn X509_NAME_ENTRY_create_by_NID(ne: [*c]?*X509_NAME_ENTRY, nid: c_int, @"type": c_int, bytes: [*c]const u8, len: c_int) ?*X509_NAME_ENTRY; -pub extern fn X509_NAME_add_entry_by_txt(name: ?*X509_NAME, field: [*c]const u8, @"type": c_int, bytes: [*c]const u8, len: c_int, loc: c_int, set: c_int) c_int; -pub extern fn X509_NAME_ENTRY_create_by_OBJ(ne: [*c]?*X509_NAME_ENTRY, obj: ?*const ASN1_OBJECT, @"type": c_int, bytes: [*c]const u8, len: c_int) ?*X509_NAME_ENTRY; -pub extern fn X509_NAME_ENTRY_set_object(ne: ?*X509_NAME_ENTRY, obj: ?*const ASN1_OBJECT) c_int; -pub extern fn X509_NAME_ENTRY_set_data(ne: ?*X509_NAME_ENTRY, @"type": c_int, bytes: [*c]const u8, len: c_int) c_int; -pub extern fn X509_NAME_ENTRY_get_object(ne: ?*const X509_NAME_ENTRY) ?*ASN1_OBJECT; -pub extern fn X509_NAME_ENTRY_get_data(ne: ?*const X509_NAME_ENTRY) [*c]ASN1_STRING; -pub extern fn X509v3_get_ext_count(x: ?*const struct_stack_st_X509_EXTENSION) c_int; -pub extern fn X509v3_get_ext_by_NID(x: ?*const struct_stack_st_X509_EXTENSION, nid: c_int, lastpos: c_int) c_int; -pub extern fn X509v3_get_ext_by_OBJ(x: ?*const struct_stack_st_X509_EXTENSION, obj: ?*const ASN1_OBJECT, lastpos: c_int) c_int; -pub extern fn X509v3_get_ext_by_critical(x: ?*const struct_stack_st_X509_EXTENSION, crit: c_int, lastpos: c_int) c_int; -pub extern fn X509v3_get_ext(x: ?*const struct_stack_st_X509_EXTENSION, loc: c_int) ?*X509_EXTENSION; -pub extern fn X509v3_delete_ext(x: ?*struct_stack_st_X509_EXTENSION, loc: c_int) ?*X509_EXTENSION; -pub extern fn X509v3_add_ext(x: [*c]?*struct_stack_st_X509_EXTENSION, ex: ?*X509_EXTENSION, loc: c_int) ?*struct_stack_st_X509_EXTENSION; -pub extern fn X509_get_ext_count(x: ?*const X509) c_int; -pub extern fn X509_get_ext_by_NID(x: ?*const X509, nid: c_int, lastpos: c_int) c_int; -pub extern fn X509_get_ext_by_OBJ(x: ?*const X509, obj: ?*const ASN1_OBJECT, lastpos: c_int) c_int; -pub extern fn X509_get_ext_by_critical(x: ?*const X509, crit: c_int, lastpos: c_int) c_int; -pub extern fn X509_get_ext(x: ?*const X509, loc: c_int) ?*X509_EXTENSION; -pub extern fn X509_delete_ext(x: ?*X509, loc: c_int) ?*X509_EXTENSION; -pub extern fn X509_add_ext(x: ?*X509, ex: ?*X509_EXTENSION, loc: c_int) c_int; -pub extern fn X509_check_ca(x: ?*X509) c_int; pub extern fn X509_get_ext_d2i(x509: ?*const X509, nid: c_int, out_critical: [*c]c_int, out_idx: [*c]c_int) ?*anyopaque; pub extern fn X509_add1_ext_i2d(x: ?*X509, nid: c_int, value: ?*anyopaque, crit: c_int, flags: c_ulong) c_int; -pub extern fn X509_CRL_get_ext_count(x: ?*const X509_CRL) c_int; -pub extern fn X509_CRL_get_ext_by_NID(x: ?*const X509_CRL, nid: c_int, lastpos: c_int) c_int; -pub extern fn X509_CRL_get_ext_by_OBJ(x: ?*const X509_CRL, obj: ?*const ASN1_OBJECT, lastpos: c_int) c_int; -pub extern fn X509_CRL_get_ext_by_critical(x: ?*const X509_CRL, crit: c_int, lastpos: c_int) c_int; -pub extern fn X509_CRL_get_ext(x: ?*const X509_CRL, loc: c_int) ?*X509_EXTENSION; -pub extern fn X509_CRL_delete_ext(x: ?*X509_CRL, loc: c_int) ?*X509_EXTENSION; -pub extern fn X509_CRL_add_ext(x: ?*X509_CRL, ex: ?*X509_EXTENSION, loc: c_int) c_int; pub extern fn X509_CRL_get_ext_d2i(crl: ?*const X509_CRL, nid: c_int, out_critical: [*c]c_int, out_idx: [*c]c_int) ?*anyopaque; pub extern fn X509_CRL_add1_ext_i2d(x: ?*X509_CRL, nid: c_int, value: ?*anyopaque, crit: c_int, flags: c_ulong) c_int; -pub extern fn X509_REVOKED_get_ext_count(x: [*c]const X509_REVOKED) c_int; -pub extern fn X509_REVOKED_get_ext_by_NID(x: [*c]const X509_REVOKED, nid: c_int, lastpos: c_int) c_int; -pub extern fn X509_REVOKED_get_ext_by_OBJ(x: [*c]const X509_REVOKED, obj: ?*const ASN1_OBJECT, lastpos: c_int) c_int; -pub extern fn X509_REVOKED_get_ext_by_critical(x: [*c]const X509_REVOKED, crit: c_int, lastpos: c_int) c_int; -pub extern fn X509_REVOKED_get_ext(x: [*c]const X509_REVOKED, loc: c_int) ?*X509_EXTENSION; -pub extern fn X509_REVOKED_delete_ext(x: [*c]X509_REVOKED, loc: c_int) ?*X509_EXTENSION; -pub extern fn X509_REVOKED_add_ext(x: [*c]X509_REVOKED, ex: ?*X509_EXTENSION, loc: c_int) c_int; -pub extern fn X509_REVOKED_get_ext_d2i(revoked: [*c]const X509_REVOKED, nid: c_int, out_critical: [*c]c_int, out_idx: [*c]c_int) ?*anyopaque; -pub extern fn X509_REVOKED_add1_ext_i2d(x: [*c]X509_REVOKED, nid: c_int, value: ?*anyopaque, crit: c_int, flags: c_ulong) c_int; -pub extern fn X509_EXTENSION_create_by_NID(ex: [*c]?*X509_EXTENSION, nid: c_int, crit: c_int, data: [*c]const ASN1_OCTET_STRING) ?*X509_EXTENSION; -pub extern fn X509_EXTENSION_create_by_OBJ(ex: [*c]?*X509_EXTENSION, obj: ?*const ASN1_OBJECT, crit: c_int, data: [*c]const ASN1_OCTET_STRING) ?*X509_EXTENSION; -pub extern fn X509_EXTENSION_set_object(ex: ?*X509_EXTENSION, obj: ?*const ASN1_OBJECT) c_int; -pub extern fn X509_EXTENSION_set_critical(ex: ?*X509_EXTENSION, crit: c_int) c_int; -pub extern fn X509_EXTENSION_set_data(ex: ?*X509_EXTENSION, data: [*c]const ASN1_OCTET_STRING) c_int; -pub extern fn X509_EXTENSION_get_object(ex: ?*X509_EXTENSION) ?*ASN1_OBJECT; -pub extern fn X509_EXTENSION_get_data(ne: ?*X509_EXTENSION) [*c]ASN1_OCTET_STRING; -pub extern fn X509_EXTENSION_get_critical(ex: ?*const X509_EXTENSION) c_int; +pub extern fn X509_REVOKED_get_ext_count(x: ?*const X509_REVOKED) c_int; +pub extern fn X509_REVOKED_get_ext_by_NID(x: ?*const X509_REVOKED, nid: c_int, lastpos: c_int) c_int; +pub extern fn X509_REVOKED_get_ext_by_OBJ(x: ?*const X509_REVOKED, obj: ?*const ASN1_OBJECT, lastpos: c_int) c_int; +pub extern fn X509_REVOKED_get_ext_by_critical(x: ?*const X509_REVOKED, crit: c_int, lastpos: c_int) c_int; +pub extern fn X509_REVOKED_get_ext(x: ?*const X509_REVOKED, loc: c_int) ?*X509_EXTENSION; +pub extern fn X509_REVOKED_delete_ext(x: ?*X509_REVOKED, loc: c_int) ?*X509_EXTENSION; +pub extern fn X509_REVOKED_add_ext(x: ?*X509_REVOKED, ex: ?*const X509_EXTENSION, loc: c_int) c_int; +pub extern fn X509_REVOKED_get_ext_d2i(revoked: ?*const X509_REVOKED, nid: c_int, out_critical: [*c]c_int, out_idx: [*c]c_int) ?*anyopaque; +pub extern fn X509_REVOKED_add1_ext_i2d(x: ?*X509_REVOKED, nid: c_int, value: ?*anyopaque, crit: c_int, flags: c_ulong) c_int; pub extern fn X509at_get_attr_count(x: ?*const struct_stack_st_X509_ATTRIBUTE) c_int; pub extern fn X509at_get_attr_by_NID(x: ?*const struct_stack_st_X509_ATTRIBUTE, nid: c_int, lastpos: c_int) c_int; pub extern fn X509at_get_attr_by_OBJ(sk: ?*const struct_stack_st_X509_ATTRIBUTE, obj: ?*const ASN1_OBJECT, lastpos: c_int) c_int; @@ -4493,27 +4363,23 @@ pub extern fn X509at_add1_attr(x: [*c]?*struct_stack_st_X509_ATTRIBUTE, attr: ?* pub extern fn X509at_add1_attr_by_OBJ(x: [*c]?*struct_stack_st_X509_ATTRIBUTE, obj: ?*const ASN1_OBJECT, @"type": c_int, bytes: [*c]const u8, len: c_int) ?*struct_stack_st_X509_ATTRIBUTE; pub extern fn X509at_add1_attr_by_NID(x: [*c]?*struct_stack_st_X509_ATTRIBUTE, nid: c_int, @"type": c_int, bytes: [*c]const u8, len: c_int) ?*struct_stack_st_X509_ATTRIBUTE; pub extern fn X509at_add1_attr_by_txt(x: [*c]?*struct_stack_st_X509_ATTRIBUTE, attrname: [*c]const u8, @"type": c_int, bytes: [*c]const u8, len: c_int) ?*struct_stack_st_X509_ATTRIBUTE; -pub extern fn X509_ATTRIBUTE_create_by_NID(attr: [*c]?*X509_ATTRIBUTE, nid: c_int, attrtype: c_int, data: ?[*]const u8, len: c_int) ?*X509_ATTRIBUTE; -pub extern fn X509_ATTRIBUTE_create_by_OBJ(attr: [*c]?*X509_ATTRIBUTE, obj: ?*const ASN1_OBJECT, attrtype: c_int, data: ?[*]const u8, len: c_int) ?*X509_ATTRIBUTE; +pub extern fn X509_ATTRIBUTE_create_by_NID(attr: [*c]?*X509_ATTRIBUTE, nid: c_int, attrtype: c_int, data: ?*const anyopaque, len: c_int) ?*X509_ATTRIBUTE; +pub extern fn X509_ATTRIBUTE_create_by_OBJ(attr: [*c]?*X509_ATTRIBUTE, obj: ?*const ASN1_OBJECT, attrtype: c_int, data: ?*const anyopaque, len: c_int) ?*X509_ATTRIBUTE; pub extern fn X509_ATTRIBUTE_create_by_txt(attr: [*c]?*X509_ATTRIBUTE, attrname: [*c]const u8, @"type": c_int, bytes: [*c]const u8, len: c_int) ?*X509_ATTRIBUTE; pub extern fn X509_ATTRIBUTE_set1_object(attr: ?*X509_ATTRIBUTE, obj: ?*const ASN1_OBJECT) c_int; -pub extern fn X509_ATTRIBUTE_set1_data(attr: ?*X509_ATTRIBUTE, attrtype: c_int, data: ?[*]const u8, len: c_int) c_int; +pub extern fn X509_ATTRIBUTE_set1_data(attr: ?*X509_ATTRIBUTE, attrtype: c_int, data: ?*const anyopaque, len: c_int) c_int; pub extern fn X509_ATTRIBUTE_get0_data(attr: ?*X509_ATTRIBUTE, idx: c_int, attrtype: c_int, unused: ?*anyopaque) ?*anyopaque; pub extern fn X509_ATTRIBUTE_count(attr: ?*const X509_ATTRIBUTE) c_int; pub extern fn X509_ATTRIBUTE_get0_object(attr: ?*X509_ATTRIBUTE) ?*ASN1_OBJECT; pub extern fn X509_ATTRIBUTE_get0_type(attr: ?*X509_ATTRIBUTE, idx: c_int) [*c]ASN1_TYPE; pub extern fn X509_verify_cert(ctx: ?*X509_STORE_CTX) c_int; -pub extern fn X509_find_by_issuer_and_serial(sk: ?*struct_stack_st_X509, name: ?*X509_NAME, serial: [*c]ASN1_INTEGER) ?*X509; -pub extern fn X509_find_by_subject(sk: ?*struct_stack_st_X509, name: ?*X509_NAME) ?*X509; pub extern fn PKCS8_PRIV_KEY_INFO_new() ?*PKCS8_PRIV_KEY_INFO; pub extern fn PKCS8_PRIV_KEY_INFO_free(a: ?*PKCS8_PRIV_KEY_INFO) void; pub extern fn d2i_PKCS8_PRIV_KEY_INFO(a: [*c]?*PKCS8_PRIV_KEY_INFO, in: [*c][*c]const u8, len: c_long) ?*PKCS8_PRIV_KEY_INFO; -pub extern fn i2d_PKCS8_PRIV_KEY_INFO(a: ?*PKCS8_PRIV_KEY_INFO, out: [*c][*c]u8) c_int; +pub extern fn i2d_PKCS8_PRIV_KEY_INFO(a: ?*const PKCS8_PRIV_KEY_INFO, out: [*c][*c]u8) c_int; pub extern const PKCS8_PRIV_KEY_INFO_it: ASN1_ITEM; -pub extern fn EVP_PKCS82PKEY(p8: ?*PKCS8_PRIV_KEY_INFO) [*c]EVP_PKEY; -pub extern fn EVP_PKEY2PKCS8(pkey: [*c]EVP_PKEY) ?*PKCS8_PRIV_KEY_INFO; -pub extern fn PKCS8_pkey_set0(priv: ?*PKCS8_PRIV_KEY_INFO, aobj: ?*ASN1_OBJECT, version: c_int, ptype: c_int, pval: ?*anyopaque, penc: [*c]u8, penclen: c_int) c_int; -pub extern fn PKCS8_pkey_get0(ppkalg: [*c]?*ASN1_OBJECT, pk: [*c][*c]const u8, ppklen: [*c]c_int, pa: [*c][*c]X509_ALGOR, p8: ?*PKCS8_PRIV_KEY_INFO) c_int; +pub extern fn EVP_PKCS82PKEY(p8: ?*const PKCS8_PRIV_KEY_INFO) [*c]EVP_PKEY; +pub extern fn EVP_PKEY2PKCS8(pkey: [*c]const EVP_PKEY) ?*PKCS8_PRIV_KEY_INFO; pub extern fn X509_PUBKEY_set0_param(@"pub": ?*X509_PUBKEY, obj: ?*ASN1_OBJECT, param_type: c_int, param_value: ?*anyopaque, key: [*c]u8, key_len: c_int) c_int; pub extern fn X509_PUBKEY_get0_param(out_obj: [*c]?*ASN1_OBJECT, out_key: [*c][*c]const u8, out_key_len: [*c]c_int, out_alg: [*c][*c]X509_ALGOR, @"pub": ?*X509_PUBKEY) c_int; pub extern fn X509_PUBKEY_get0_public_key(@"pub": ?*const X509_PUBKEY) [*c]const ASN1_BIT_STRING; @@ -4529,353 +4395,354 @@ pub extern fn X509_TRUST_get_trust(xp: [*c]const X509_TRUST) c_int; pub extern fn RSA_PSS_PARAMS_new() [*c]RSA_PSS_PARAMS; pub extern fn RSA_PSS_PARAMS_free(a: [*c]RSA_PSS_PARAMS) void; pub extern fn d2i_RSA_PSS_PARAMS(a: [*c][*c]RSA_PSS_PARAMS, in: [*c][*c]const u8, len: c_long) [*c]RSA_PSS_PARAMS; -pub extern fn i2d_RSA_PSS_PARAMS(a: [*c]RSA_PSS_PARAMS, out: [*c][*c]u8) c_int; +pub extern fn i2d_RSA_PSS_PARAMS(a: [*c]const RSA_PSS_PARAMS, out: [*c][*c]u8) c_int; pub extern const RSA_PSS_PARAMS_it: ASN1_ITEM; pub const struct_stack_st_X509_LOOKUP = opaque {}; -pub const stack_X509_LOOKUP_free_func = ?*const fn (?*X509_LOOKUP) callconv(.C) void; -pub const stack_X509_LOOKUP_copy_func = ?*const fn (?*X509_LOOKUP) callconv(.C) ?*X509_LOOKUP; -pub const stack_X509_LOOKUP_cmp_func = ?*const fn ([*c]?*const X509_LOOKUP, [*c]?*const X509_LOOKUP) callconv(.C) c_int; -pub fn sk_X509_LOOKUP_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_LOOKUP_free_func = ?*const fn (?*X509_LOOKUP) callconv(.C) void; +pub const sk_X509_LOOKUP_copy_func = ?*const fn (?*X509_LOOKUP) callconv(.C) ?*X509_LOOKUP; +pub const sk_X509_LOOKUP_cmp_func = ?*const fn ([*c]?*const X509_LOOKUP, [*c]?*const X509_LOOKUP) callconv(.C) c_int; +pub fn sk_X509_LOOKUP_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_X509_LOOKUP_free_func, @alignCast(@import("std").meta.alignment(fn (?*X509_LOOKUP) callconv(.C) void), free_func)).?(@ptrCast(?*X509_LOOKUP, ptr)); + @as(sk_X509_LOOKUP_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_LOOKUP, @ptrCast(ptr))); } -pub fn sk_X509_LOOKUP_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_LOOKUP_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_X509_LOOKUP_copy_func, @alignCast(@import("std").meta.alignment(fn (?*X509_LOOKUP) callconv(.C) ?*X509_LOOKUP), copy_func)).?(@ptrCast(?*X509_LOOKUP, ptr))); + return @as(?*anyopaque, @ptrCast(@as(sk_X509_LOOKUP_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_LOOKUP, @ptrCast(ptr))))); } -pub fn sk_X509_LOOKUP_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_LOOKUP_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: ?*const X509_LOOKUP = @ptrCast(?*const X509_LOOKUP, a.*); - var b_ptr: ?*const X509_LOOKUP = @ptrCast(?*const X509_LOOKUP, b.*); - return @ptrCast(stack_X509_LOOKUP_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_LOOKUP, [*c]?*const X509_LOOKUP) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: ?*const X509_LOOKUP = @as(?*const X509_LOOKUP, @ptrCast(a.*)); + var b_ptr: ?*const X509_LOOKUP = @as(?*const X509_LOOKUP, @ptrCast(b.*)); + return @as(sk_X509_LOOKUP_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_LOOKUP_new(arg_comp: stack_X509_LOOKUP_cmp_func) callconv(.C) ?*struct_stack_st_X509_LOOKUP { +pub fn sk_X509_LOOKUP_new(arg_comp: sk_X509_LOOKUP_cmp_func) callconv(.C) ?*struct_stack_st_X509_LOOKUP { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_X509_LOOKUP, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_X509_LOOKUP, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_X509_LOOKUP_new_null() callconv(.C) ?*struct_stack_st_X509_LOOKUP { - return @ptrCast(?*struct_stack_st_X509_LOOKUP, sk_new_null()); + return @as(?*struct_stack_st_X509_LOOKUP, @ptrCast(sk_new_null())); } pub fn sk_X509_LOOKUP_num(arg_sk: ?*const struct_stack_st_X509_LOOKUP) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_LOOKUP_zero(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_LOOKUP_value(arg_sk: ?*const struct_stack_st_X509_LOOKUP, arg_i: usize) callconv(.C) ?*X509_LOOKUP { var sk = arg_sk; var i = arg_i; - return @ptrCast(?*X509_LOOKUP, sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i)); + return @as(?*X509_LOOKUP, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } pub fn sk_X509_LOOKUP_set(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_i: usize, arg_p: ?*X509_LOOKUP) callconv(.C) ?*X509_LOOKUP { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast(?*X509_LOOKUP, sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p))); + return @as(?*X509_LOOKUP, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } pub fn sk_X509_LOOKUP_free(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_LOOKUP_pop_free(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_free_func: stack_X509_LOOKUP_free_func) callconv(.C) void { +pub fn sk_X509_LOOKUP_pop_free(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_free_func: sk_X509_LOOKUP_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_LOOKUP_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_LOOKUP_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_X509_LOOKUP_insert(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_p: ?*X509_LOOKUP, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_X509_LOOKUP_delete(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_where: usize) callconv(.C) ?*X509_LOOKUP { var sk = arg_sk; var where = arg_where; - return @ptrCast(?*X509_LOOKUP, sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where)); + return @as(?*X509_LOOKUP, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } pub fn sk_X509_LOOKUP_delete_ptr(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_p: ?*const X509_LOOKUP) callconv(.C) ?*X509_LOOKUP { var sk = arg_sk; var p = arg_p; - return @ptrCast(?*X509_LOOKUP, sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p))); + return @as(?*X509_LOOKUP, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } pub fn sk_X509_LOOKUP_find(arg_sk: ?*const struct_stack_st_X509_LOOKUP, arg_out_index: [*c]usize, arg_p: ?*const X509_LOOKUP) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_X509_LOOKUP_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_LOOKUP_call_cmp_func); } pub fn sk_X509_LOOKUP_shift(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.C) ?*X509_LOOKUP { var sk = arg_sk; - return @ptrCast(?*X509_LOOKUP, sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_LOOKUP, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_LOOKUP_push(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_p: ?*X509_LOOKUP) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_X509_LOOKUP_pop(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.C) ?*X509_LOOKUP { var sk = arg_sk; - return @ptrCast(?*X509_LOOKUP, sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_LOOKUP, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_LOOKUP_dup(arg_sk: ?*const struct_stack_st_X509_LOOKUP) callconv(.C) ?*struct_stack_st_X509_LOOKUP { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_X509_LOOKUP, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_X509_LOOKUP, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_LOOKUP_sort(arg_sk: ?*struct_stack_st_X509_LOOKUP) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_LOOKUP_call_cmp_func); } pub fn sk_X509_LOOKUP_is_sorted(arg_sk: ?*const struct_stack_st_X509_LOOKUP) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_LOOKUP_set_cmp_func(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_comp: stack_X509_LOOKUP_cmp_func) callconv(.C) stack_X509_LOOKUP_cmp_func { +pub fn sk_X509_LOOKUP_set_cmp_func(arg_sk: ?*struct_stack_st_X509_LOOKUP, arg_comp: sk_X509_LOOKUP_cmp_func) callconv(.C) sk_X509_LOOKUP_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_X509_LOOKUP_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_LOOKUP, [*c]?*const X509_LOOKUP) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_X509_LOOKUP_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_LOOKUP_deep_copy(arg_sk: ?*const struct_stack_st_X509_LOOKUP, arg_copy_func: ?*const fn (?*X509_LOOKUP) callconv(.C) ?*X509_LOOKUP, arg_free_func: ?*const fn (?*X509_LOOKUP) callconv(.C) void) callconv(.C) ?*struct_stack_st_X509_LOOKUP { +pub fn sk_X509_LOOKUP_deep_copy(arg_sk: ?*const struct_stack_st_X509_LOOKUP, arg_copy_func: sk_X509_LOOKUP_copy_func, arg_free_func: sk_X509_LOOKUP_free_func) callconv(.C) ?*struct_stack_st_X509_LOOKUP { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_X509_LOOKUP, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_LOOKUP_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_X509_LOOKUP_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_X509_LOOKUP, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_LOOKUP_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_LOOKUP_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub const struct_stack_st_X509_OBJECT = opaque {}; -pub const stack_X509_OBJECT_free_func = ?*const fn (?*X509_OBJECT) callconv(.C) void; -pub const stack_X509_OBJECT_copy_func = ?*const fn (?*X509_OBJECT) callconv(.C) ?*X509_OBJECT; -pub const stack_X509_OBJECT_cmp_func = ?*const fn ([*c]?*const X509_OBJECT, [*c]?*const X509_OBJECT) callconv(.C) c_int; -pub fn sk_X509_OBJECT_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_OBJECT_free_func = ?*const fn (?*X509_OBJECT) callconv(.C) void; +pub const sk_X509_OBJECT_copy_func = ?*const fn (?*X509_OBJECT) callconv(.C) ?*X509_OBJECT; +pub const sk_X509_OBJECT_cmp_func = ?*const fn ([*c]?*const X509_OBJECT, [*c]?*const X509_OBJECT) callconv(.C) c_int; +pub fn sk_X509_OBJECT_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_X509_OBJECT_free_func, @alignCast(@import("std").meta.alignment(fn (?*X509_OBJECT) callconv(.C) void), free_func)).?(@ptrCast(?*X509_OBJECT, ptr)); + @as(sk_X509_OBJECT_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_OBJECT, @ptrCast(ptr))); } -pub fn sk_X509_OBJECT_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_OBJECT_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_X509_OBJECT_copy_func, @alignCast(@import("std").meta.alignment(fn (?*X509_OBJECT) callconv(.C) ?*X509_OBJECT), copy_func)).?(@ptrCast(?*X509_OBJECT, ptr))); + return @as(?*anyopaque, @ptrCast(@as(sk_X509_OBJECT_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_OBJECT, @ptrCast(ptr))))); } -pub fn sk_X509_OBJECT_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_OBJECT_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: ?*const X509_OBJECT = @ptrCast(?*const X509_OBJECT, a.*); - var b_ptr: ?*const X509_OBJECT = @ptrCast(?*const X509_OBJECT, b.*); - return @ptrCast(stack_X509_OBJECT_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_OBJECT, [*c]?*const X509_OBJECT) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: ?*const X509_OBJECT = @as(?*const X509_OBJECT, @ptrCast(a.*)); + var b_ptr: ?*const X509_OBJECT = @as(?*const X509_OBJECT, @ptrCast(b.*)); + return @as(sk_X509_OBJECT_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_OBJECT_new(arg_comp: stack_X509_OBJECT_cmp_func) callconv(.C) ?*struct_stack_st_X509_OBJECT { +pub fn sk_X509_OBJECT_new(arg_comp: sk_X509_OBJECT_cmp_func) callconv(.C) ?*struct_stack_st_X509_OBJECT { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_X509_OBJECT, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_X509_OBJECT, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_X509_OBJECT_new_null() callconv(.C) ?*struct_stack_st_X509_OBJECT { - return @ptrCast(?*struct_stack_st_X509_OBJECT, sk_new_null()); + return @as(?*struct_stack_st_X509_OBJECT, @ptrCast(sk_new_null())); } pub fn sk_X509_OBJECT_num(arg_sk: ?*const struct_stack_st_X509_OBJECT) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_OBJECT_zero(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_OBJECT_value(arg_sk: ?*const struct_stack_st_X509_OBJECT, arg_i: usize) callconv(.C) ?*X509_OBJECT { var sk = arg_sk; var i = arg_i; - return @ptrCast(?*X509_OBJECT, sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i)); + return @as(?*X509_OBJECT, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } pub fn sk_X509_OBJECT_set(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_i: usize, arg_p: ?*X509_OBJECT) callconv(.C) ?*X509_OBJECT { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast(?*X509_OBJECT, sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p))); + return @as(?*X509_OBJECT, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } pub fn sk_X509_OBJECT_free(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_OBJECT_pop_free(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_free_func: stack_X509_OBJECT_free_func) callconv(.C) void { +pub fn sk_X509_OBJECT_pop_free(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_free_func: sk_X509_OBJECT_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_OBJECT_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_OBJECT_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_X509_OBJECT_insert(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_p: ?*X509_OBJECT, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_X509_OBJECT_delete(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_where: usize) callconv(.C) ?*X509_OBJECT { var sk = arg_sk; var where = arg_where; - return @ptrCast(?*X509_OBJECT, sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where)); + return @as(?*X509_OBJECT, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } pub fn sk_X509_OBJECT_delete_ptr(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_p: ?*const X509_OBJECT) callconv(.C) ?*X509_OBJECT { var sk = arg_sk; var p = arg_p; - return @ptrCast(?*X509_OBJECT, sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p))); + return @as(?*X509_OBJECT, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } pub fn sk_X509_OBJECT_find(arg_sk: ?*const struct_stack_st_X509_OBJECT, arg_out_index: [*c]usize, arg_p: ?*const X509_OBJECT) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_X509_OBJECT_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_OBJECT_call_cmp_func); } pub fn sk_X509_OBJECT_shift(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.C) ?*X509_OBJECT { var sk = arg_sk; - return @ptrCast(?*X509_OBJECT, sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_OBJECT, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_OBJECT_push(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_p: ?*X509_OBJECT) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_X509_OBJECT_pop(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.C) ?*X509_OBJECT { var sk = arg_sk; - return @ptrCast(?*X509_OBJECT, sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_OBJECT, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_OBJECT_dup(arg_sk: ?*const struct_stack_st_X509_OBJECT) callconv(.C) ?*struct_stack_st_X509_OBJECT { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_X509_OBJECT, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_X509_OBJECT, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_OBJECT_sort(arg_sk: ?*struct_stack_st_X509_OBJECT) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_OBJECT_call_cmp_func); } pub fn sk_X509_OBJECT_is_sorted(arg_sk: ?*const struct_stack_st_X509_OBJECT) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_OBJECT_set_cmp_func(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_comp: stack_X509_OBJECT_cmp_func) callconv(.C) stack_X509_OBJECT_cmp_func { +pub fn sk_X509_OBJECT_set_cmp_func(arg_sk: ?*struct_stack_st_X509_OBJECT, arg_comp: sk_X509_OBJECT_cmp_func) callconv(.C) sk_X509_OBJECT_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_X509_OBJECT_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_OBJECT, [*c]?*const X509_OBJECT) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_X509_OBJECT_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_OBJECT_deep_copy(arg_sk: ?*const struct_stack_st_X509_OBJECT, arg_copy_func: ?*const fn (?*X509_OBJECT) callconv(.C) ?*X509_OBJECT, arg_free_func: ?*const fn (?*X509_OBJECT) callconv(.C) void) callconv(.C) ?*struct_stack_st_X509_OBJECT { +pub fn sk_X509_OBJECT_deep_copy(arg_sk: ?*const struct_stack_st_X509_OBJECT, arg_copy_func: sk_X509_OBJECT_copy_func, arg_free_func: sk_X509_OBJECT_free_func) callconv(.C) ?*struct_stack_st_X509_OBJECT { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_X509_OBJECT, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_OBJECT_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_X509_OBJECT_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_X509_OBJECT, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_OBJECT_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_OBJECT_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub const struct_stack_st_X509_VERIFY_PARAM = opaque {}; -pub const stack_X509_VERIFY_PARAM_free_func = ?*const fn (?*X509_VERIFY_PARAM) callconv(.C) void; -pub const stack_X509_VERIFY_PARAM_copy_func = ?*const fn (?*X509_VERIFY_PARAM) callconv(.C) ?*X509_VERIFY_PARAM; -pub const stack_X509_VERIFY_PARAM_cmp_func = ?*const fn ([*c]?*const X509_VERIFY_PARAM, [*c]?*const X509_VERIFY_PARAM) callconv(.C) c_int; -pub fn sk_X509_VERIFY_PARAM_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_X509_VERIFY_PARAM_free_func = ?*const fn (?*X509_VERIFY_PARAM) callconv(.C) void; +pub const sk_X509_VERIFY_PARAM_copy_func = ?*const fn (?*X509_VERIFY_PARAM) callconv(.C) ?*X509_VERIFY_PARAM; +pub const sk_X509_VERIFY_PARAM_cmp_func = ?*const fn ([*c]?*const X509_VERIFY_PARAM, [*c]?*const X509_VERIFY_PARAM) callconv(.C) c_int; +pub fn sk_X509_VERIFY_PARAM_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_X509_VERIFY_PARAM_free_func, @alignCast(@import("std").meta.alignment(fn (?*X509_VERIFY_PARAM) callconv(.C) void), free_func)).?(@ptrCast(?*X509_VERIFY_PARAM, ptr)); + @as(sk_X509_VERIFY_PARAM_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*X509_VERIFY_PARAM, @ptrCast(ptr))); } -pub fn sk_X509_VERIFY_PARAM_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_X509_VERIFY_PARAM_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_X509_VERIFY_PARAM_copy_func, @alignCast(@import("std").meta.alignment(fn (?*X509_VERIFY_PARAM) callconv(.C) ?*X509_VERIFY_PARAM), copy_func)).?(@ptrCast(?*X509_VERIFY_PARAM, ptr))); + return @as(?*anyopaque, @ptrCast(@as(sk_X509_VERIFY_PARAM_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*X509_VERIFY_PARAM, @ptrCast(ptr))))); } -pub fn sk_X509_VERIFY_PARAM_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_X509_VERIFY_PARAM_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: ?*const X509_VERIFY_PARAM = @ptrCast(?*const X509_VERIFY_PARAM, a.*); - var b_ptr: ?*const X509_VERIFY_PARAM = @ptrCast(?*const X509_VERIFY_PARAM, b.*); - return @ptrCast(stack_X509_VERIFY_PARAM_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_VERIFY_PARAM, [*c]?*const X509_VERIFY_PARAM) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: ?*const X509_VERIFY_PARAM = @as(?*const X509_VERIFY_PARAM, @ptrCast(a.*)); + var b_ptr: ?*const X509_VERIFY_PARAM = @as(?*const X509_VERIFY_PARAM, @ptrCast(b.*)); + return @as(sk_X509_VERIFY_PARAM_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_X509_VERIFY_PARAM_new(arg_comp: stack_X509_VERIFY_PARAM_cmp_func) callconv(.C) ?*struct_stack_st_X509_VERIFY_PARAM { +pub fn sk_X509_VERIFY_PARAM_new(arg_comp: sk_X509_VERIFY_PARAM_cmp_func) callconv(.C) ?*struct_stack_st_X509_VERIFY_PARAM { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_X509_VERIFY_PARAM, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_X509_VERIFY_PARAM, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_X509_VERIFY_PARAM_new_null() callconv(.C) ?*struct_stack_st_X509_VERIFY_PARAM { - return @ptrCast(?*struct_stack_st_X509_VERIFY_PARAM, sk_new_null()); + return @as(?*struct_stack_st_X509_VERIFY_PARAM, @ptrCast(sk_new_null())); } pub fn sk_X509_VERIFY_PARAM_num(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_VERIFY_PARAM_zero(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_X509_VERIFY_PARAM_value(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM, arg_i: usize) callconv(.C) ?*X509_VERIFY_PARAM { var sk = arg_sk; var i = arg_i; - return @ptrCast(?*X509_VERIFY_PARAM, sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i)); + return @as(?*X509_VERIFY_PARAM, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } pub fn sk_X509_VERIFY_PARAM_set(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_i: usize, arg_p: ?*X509_VERIFY_PARAM) callconv(.C) ?*X509_VERIFY_PARAM { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast(?*X509_VERIFY_PARAM, sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p))); + return @as(?*X509_VERIFY_PARAM, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p))))); } pub fn sk_X509_VERIFY_PARAM_free(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_VERIFY_PARAM_pop_free(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_free_func: stack_X509_VERIFY_PARAM_free_func) callconv(.C) void { +pub fn sk_X509_VERIFY_PARAM_pop_free(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_free_func: sk_X509_VERIFY_PARAM_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_VERIFY_PARAM_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_VERIFY_PARAM_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_X509_VERIFY_PARAM_insert(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_p: ?*X509_VERIFY_PARAM, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_X509_VERIFY_PARAM_delete(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_where: usize) callconv(.C) ?*X509_VERIFY_PARAM { var sk = arg_sk; var where = arg_where; - return @ptrCast(?*X509_VERIFY_PARAM, sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where)); + return @as(?*X509_VERIFY_PARAM, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } pub fn sk_X509_VERIFY_PARAM_delete_ptr(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_p: ?*const X509_VERIFY_PARAM) callconv(.C) ?*X509_VERIFY_PARAM { var sk = arg_sk; var p = arg_p; - return @ptrCast(?*X509_VERIFY_PARAM, sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p))); + return @as(?*X509_VERIFY_PARAM, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } pub fn sk_X509_VERIFY_PARAM_find(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM, arg_out_index: [*c]usize, arg_p: ?*const X509_VERIFY_PARAM) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_X509_VERIFY_PARAM_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_X509_VERIFY_PARAM_call_cmp_func); } pub fn sk_X509_VERIFY_PARAM_shift(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.C) ?*X509_VERIFY_PARAM { var sk = arg_sk; - return @ptrCast(?*X509_VERIFY_PARAM, sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_VERIFY_PARAM, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_VERIFY_PARAM_push(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_p: ?*X509_VERIFY_PARAM) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_X509_VERIFY_PARAM_pop(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.C) ?*X509_VERIFY_PARAM { var sk = arg_sk; - return @ptrCast(?*X509_VERIFY_PARAM, sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*X509_VERIFY_PARAM, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_VERIFY_PARAM_dup(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM) callconv(.C) ?*struct_stack_st_X509_VERIFY_PARAM { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_X509_VERIFY_PARAM, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_X509_VERIFY_PARAM, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_X509_VERIFY_PARAM_sort(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_X509_VERIFY_PARAM_call_cmp_func); } pub fn sk_X509_VERIFY_PARAM_is_sorted(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_X509_VERIFY_PARAM_set_cmp_func(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_comp: stack_X509_VERIFY_PARAM_cmp_func) callconv(.C) stack_X509_VERIFY_PARAM_cmp_func { +pub fn sk_X509_VERIFY_PARAM_set_cmp_func(arg_sk: ?*struct_stack_st_X509_VERIFY_PARAM, arg_comp: sk_X509_VERIFY_PARAM_cmp_func) callconv(.C) sk_X509_VERIFY_PARAM_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_X509_VERIFY_PARAM_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const X509_VERIFY_PARAM, [*c]?*const X509_VERIFY_PARAM) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_X509_VERIFY_PARAM_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_X509_VERIFY_PARAM_deep_copy(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM, arg_copy_func: ?*const fn (?*X509_VERIFY_PARAM) callconv(.C) ?*X509_VERIFY_PARAM, arg_free_func: ?*const fn (?*X509_VERIFY_PARAM) callconv(.C) void) callconv(.C) ?*struct_stack_st_X509_VERIFY_PARAM { +pub fn sk_X509_VERIFY_PARAM_deep_copy(arg_sk: ?*const struct_stack_st_X509_VERIFY_PARAM, arg_copy_func: sk_X509_VERIFY_PARAM_copy_func, arg_free_func: sk_X509_VERIFY_PARAM_free_func) callconv(.C) ?*struct_stack_st_X509_VERIFY_PARAM { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_X509_VERIFY_PARAM, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_X509_VERIFY_PARAM_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_X509_VERIFY_PARAM_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_X509_VERIFY_PARAM, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_X509_VERIFY_PARAM_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_X509_VERIFY_PARAM_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } +pub extern fn X509_check_ca(x: ?*X509) c_int; pub const X509_STORE_CTX_verify_cb = ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.C) c_int; pub const X509_STORE_CTX_verify_fn = ?*const fn (?*X509_STORE_CTX) callconv(.C) c_int; pub const X509_STORE_CTX_get_issuer_fn = ?*const fn ([*c]?*X509, ?*X509_STORE_CTX, ?*X509) callconv(.C) c_int; @@ -4936,33 +4803,28 @@ pub extern fn X509_STORE_CTX_get1_issuer(issuer: [*c]?*X509, ctx: ?*X509_STORE_C pub extern fn X509_STORE_CTX_zero(ctx: ?*X509_STORE_CTX) void; pub extern fn X509_STORE_CTX_free(ctx: ?*X509_STORE_CTX) void; pub extern fn X509_STORE_CTX_init(ctx: ?*X509_STORE_CTX, store: ?*X509_STORE, x509: ?*X509, chain: ?*struct_stack_st_X509) c_int; +pub extern fn X509_STORE_CTX_set0_trusted_stack(ctx: ?*X509_STORE_CTX, sk: ?*struct_stack_st_X509) void; pub extern fn X509_STORE_CTX_trusted_stack(ctx: ?*X509_STORE_CTX, sk: ?*struct_stack_st_X509) void; pub extern fn X509_STORE_CTX_cleanup(ctx: ?*X509_STORE_CTX) void; pub extern fn X509_STORE_CTX_get0_store(ctx: ?*X509_STORE_CTX) ?*X509_STORE; pub extern fn X509_STORE_CTX_get0_cert(ctx: ?*X509_STORE_CTX) ?*X509; pub extern fn X509_STORE_add_lookup(v: ?*X509_STORE, m: ?*X509_LOOKUP_METHOD) ?*X509_LOOKUP; pub extern fn X509_LOOKUP_hash_dir() ?*X509_LOOKUP_METHOD; -pub extern fn X509_LOOKUP_file() ?*X509_LOOKUP_METHOD; +// pub extern fn X509_LOOKUP_file() ?*X509_LOOKUP_METHOD; pub extern fn X509_STORE_add_cert(ctx: ?*X509_STORE, x: ?*X509) c_int; pub extern fn X509_STORE_add_crl(ctx: ?*X509_STORE, x: ?*X509_CRL) c_int; pub extern fn X509_STORE_get_by_subject(vs: ?*X509_STORE_CTX, @"type": c_int, name: ?*X509_NAME, ret: ?*X509_OBJECT) c_int; pub extern fn X509_LOOKUP_ctrl(ctx: ?*X509_LOOKUP, cmd: c_int, argc: [*c]const u8, argl: c_long, ret: [*c][*c]u8) c_int; -pub extern fn X509_load_cert_file(ctx: ?*X509_LOOKUP, file: [*c]const u8, @"type": c_int) c_int; -pub extern fn X509_load_crl_file(ctx: ?*X509_LOOKUP, file: [*c]const u8, @"type": c_int) c_int; -pub extern fn X509_load_cert_crl_file(ctx: ?*X509_LOOKUP, file: [*c]const u8, @"type": c_int) c_int; +// pub extern fn X509_load_cert_file(ctx: ?*X509_LOOKUP, file: [*c]const u8, @"type": c_int) c_int; +// pub extern fn X509_load_crl_file(ctx: ?*X509_LOOKUP, file: [*c]const u8, @"type": c_int) c_int; +// pub extern fn X509_load_cert_crl_file(ctx: ?*X509_LOOKUP, file: [*c]const u8, @"type": c_int) c_int; pub extern fn X509_LOOKUP_new(method: ?*X509_LOOKUP_METHOD) ?*X509_LOOKUP; pub extern fn X509_LOOKUP_free(ctx: ?*X509_LOOKUP) void; pub extern fn X509_LOOKUP_init(ctx: ?*X509_LOOKUP) c_int; pub extern fn X509_LOOKUP_by_subject(ctx: ?*X509_LOOKUP, @"type": c_int, name: ?*X509_NAME, ret: ?*X509_OBJECT) c_int; -pub extern fn X509_LOOKUP_by_issuer_serial(ctx: ?*X509_LOOKUP, @"type": c_int, name: ?*X509_NAME, serial: [*c]ASN1_INTEGER, ret: ?*X509_OBJECT) c_int; -pub extern fn X509_LOOKUP_by_fingerprint(ctx: ?*X509_LOOKUP, @"type": c_int, bytes: [*c]u8, len: c_int, ret: ?*X509_OBJECT) c_int; -pub extern fn X509_LOOKUP_by_alias(ctx: ?*X509_LOOKUP, @"type": c_int, str: [*c]u8, len: c_int, ret: ?*X509_OBJECT) c_int; pub extern fn X509_LOOKUP_shutdown(ctx: ?*X509_LOOKUP) c_int; -pub extern fn X509_STORE_load_locations(ctx: ?*X509_STORE, file: [*c]const u8, dir: [*c]const u8) c_int; +// pub extern fn X509_STORE_load_locations(ctx: ?*X509_STORE, file: [*c]const u8, dir: [*c]const u8) c_int; pub extern fn X509_STORE_set_default_paths(ctx: ?*X509_STORE) c_int; -pub extern fn X509_STORE_CTX_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?CRYPTO_EX_dup, free_func: ?CRYPTO_EX_free) c_int; -pub extern fn X509_STORE_CTX_set_ex_data(ctx: ?*X509_STORE_CTX, idx: c_int, data: ?*anyopaque) c_int; -pub extern fn X509_STORE_CTX_get_ex_data(ctx: ?*X509_STORE_CTX, idx: c_int) ?*anyopaque; pub extern fn X509_STORE_CTX_get_error(ctx: ?*X509_STORE_CTX) c_int; pub extern fn X509_STORE_CTX_set_error(ctx: ?*X509_STORE_CTX, s: c_int) void; pub extern fn X509_STORE_CTX_get_error_depth(ctx: ?*X509_STORE_CTX) c_int; @@ -4983,8 +4845,6 @@ pub extern fn X509_STORE_CTX_purpose_inherit(ctx: ?*X509_STORE_CTX, def_purpose: pub extern fn X509_STORE_CTX_set_flags(ctx: ?*X509_STORE_CTX, flags: c_ulong) void; pub extern fn X509_STORE_CTX_set_time(ctx: ?*X509_STORE_CTX, flags: c_ulong, t: time_t) void; pub extern fn X509_STORE_CTX_set_verify_cb(ctx: ?*X509_STORE_CTX, verify_cb: ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.C) c_int) void; -pub extern fn X509_STORE_CTX_get0_policy_tree(ctx: ?*X509_STORE_CTX) ?*X509_POLICY_TREE; -pub extern fn X509_STORE_CTX_get_explicit_policy(ctx: ?*X509_STORE_CTX) c_int; pub extern fn X509_STORE_CTX_get0_param(ctx: ?*X509_STORE_CTX) ?*X509_VERIFY_PARAM; pub extern fn X509_STORE_CTX_set0_param(ctx: ?*X509_STORE_CTX, param: ?*X509_VERIFY_PARAM) void; pub extern fn X509_STORE_CTX_set_default(ctx: ?*X509_STORE_CTX, name: [*c]const u8) c_int; @@ -5001,7 +4861,7 @@ pub extern fn X509_VERIFY_PARAM_set_trust(param: ?*X509_VERIFY_PARAM, trust: c_i pub extern fn X509_VERIFY_PARAM_set_depth(param: ?*X509_VERIFY_PARAM, depth: c_int) void; pub extern fn X509_VERIFY_PARAM_set_time(param: ?*X509_VERIFY_PARAM, t: time_t) void; pub extern fn X509_VERIFY_PARAM_add0_policy(param: ?*X509_VERIFY_PARAM, policy: ?*ASN1_OBJECT) c_int; -pub extern fn X509_VERIFY_PARAM_set1_policies(param: ?*X509_VERIFY_PARAM, policies: ?*struct_stack_st_ASN1_OBJECT) c_int; +pub extern fn X509_VERIFY_PARAM_set1_policies(param: ?*X509_VERIFY_PARAM, policies: ?*const struct_stack_st_ASN1_OBJECT) c_int; pub extern fn X509_VERIFY_PARAM_set1_host(param: ?*X509_VERIFY_PARAM, name: [*c]const u8, namelen: usize) c_int; pub extern fn X509_VERIFY_PARAM_add1_host(param: ?*X509_VERIFY_PARAM, name: [*c]const u8, namelen: usize) c_int; pub extern fn X509_VERIFY_PARAM_set_hostflags(param: ?*X509_VERIFY_PARAM, flags: c_uint) void; @@ -5016,20 +4876,6 @@ pub extern fn X509_VERIFY_PARAM_get_count() c_int; pub extern fn X509_VERIFY_PARAM_get0(id: c_int) ?*const X509_VERIFY_PARAM; pub extern fn X509_VERIFY_PARAM_lookup(name: [*c]const u8) ?*const X509_VERIFY_PARAM; pub extern fn X509_VERIFY_PARAM_table_cleanup() void; -pub extern fn X509_policy_check(ptree: [*c]?*X509_POLICY_TREE, pexplicit_policy: [*c]c_int, certs: ?*struct_stack_st_X509, policy_oids: ?*struct_stack_st_ASN1_OBJECT, flags: c_uint) c_int; -pub extern fn X509_policy_tree_free(tree: ?*X509_POLICY_TREE) void; -pub extern fn X509_policy_tree_level_count(tree: ?*const X509_POLICY_TREE) c_int; -pub extern fn X509_policy_tree_get0_level(tree: ?*const X509_POLICY_TREE, i: c_int) ?*X509_POLICY_LEVEL; -pub const struct_stack_st_X509_POLICY_NODE = opaque {}; -pub extern fn X509_policy_tree_get0_policies(tree: ?*const X509_POLICY_TREE) ?*struct_stack_st_X509_POLICY_NODE; -pub extern fn X509_policy_tree_get0_user_policies(tree: ?*const X509_POLICY_TREE) ?*struct_stack_st_X509_POLICY_NODE; -pub extern fn X509_policy_level_node_count(level: ?*X509_POLICY_LEVEL) c_int; -pub extern fn X509_policy_level_get0_node(level: ?*X509_POLICY_LEVEL, i: c_int) ?*X509_POLICY_NODE; -pub extern fn X509_policy_node_get0_policy(node: ?*const X509_POLICY_NODE) ?*const ASN1_OBJECT; -pub const struct_stack_st_POLICYQUALINFO = opaque {}; -pub extern fn X509_policy_node_get0_qualifiers(node: ?*const X509_POLICY_NODE) ?*struct_stack_st_POLICYQUALINFO; -pub extern fn X509_policy_node_get0_parent(node: ?*const X509_POLICY_NODE) ?*const X509_POLICY_NODE; - pub extern fn OPENSSL_malloc(size: usize) ?*anyopaque; pub extern fn OPENSSL_free(ptr: ?*anyopaque) void; pub extern fn OPENSSL_realloc(ptr: ?*anyopaque, new_size: usize) ?*anyopaque; @@ -5045,17 +4891,23 @@ pub extern fn OPENSSL_strncasecmp(a: [*c]const u8, b: [*c]const u8, n: usize) c_ pub extern fn BIO_snprintf(buf: [*c]u8, n: usize, format: [*c]const u8, ...) c_int; pub extern fn BIO_vsnprintf(buf: [*c]u8, n: usize, format: [*c]const u8, args: va_list) c_int; pub extern fn OPENSSL_strndup(str: [*c]const u8, size: usize) [*c]u8; -pub extern fn OPENSSL_memdup(data: ?[*]const u8, size: usize) ?*anyopaque; +pub extern fn OPENSSL_memdup(data: ?*const anyopaque, size: usize) ?*anyopaque; pub extern fn OPENSSL_strlcpy(dst: [*c]u8, src: [*c]const u8, dst_size: usize) usize; pub extern fn OPENSSL_strlcat(dst: [*c]u8, src: [*c]const u8, dst_size: usize) usize; -pub extern fn CRYPTO_malloc(size: usize, file: [*c]const u8, line: c_int) ?*anyopaque; -pub extern fn CRYPTO_realloc(ptr: ?*anyopaque, new_size: usize, file: [*c]const u8, line: c_int) ?*anyopaque; -pub extern fn CRYPTO_free(ptr: ?*anyopaque, file: [*c]const u8, line: c_int) void; +// pub extern fn CRYPTO_malloc(size: usize, file: [*c]const u8, line: c_int) ?*anyopaque; +// pub extern fn CRYPTO_realloc(ptr: ?*anyopaque, new_size: usize, file: [*c]const u8, line: c_int) ?*anyopaque; +// pub extern fn CRYPTO_free(ptr: ?*anyopaque, file: [*c]const u8, line: c_int) void; pub extern fn OPENSSL_clear_free(ptr: ?*anyopaque, len: usize) void; +pub extern fn CRYPTO_secure_malloc_init(size: usize, min_size: usize) c_int; +pub extern fn CRYPTO_secure_malloc_initialized() c_int; +pub extern fn CRYPTO_secure_used() usize; +pub extern fn OPENSSL_secure_malloc(size: usize) ?*anyopaque; +pub extern fn OPENSSL_secure_clear_free(ptr: ?*anyopaque, len: usize) void; pub extern fn CRYPTO_library_init() void; pub extern fn CRYPTO_is_confidential_build() c_int; pub extern fn CRYPTO_has_asm() c_int; pub extern fn BORINGSSL_self_test() c_int; +pub extern fn BORINGSSL_integrity_test() c_int; pub extern fn CRYPTO_pre_sandbox_init() void; pub extern fn FIPS_mode() c_int; pub const fips_counter_evp_aes_128_gcm: c_int = 0; @@ -5077,118 +4929,122 @@ pub extern fn OPENSSL_load_builtin_modules() void; pub extern fn OPENSSL_init_crypto(opts: u64, settings: ?*const OPENSSL_INIT_SETTINGS) c_int; pub extern fn OPENSSL_cleanup() void; pub extern fn FIPS_mode_set(on: c_int) c_int; -pub const pem_password_cb = *const fn ([*c]u8, c_int, c_int, ?*anyopaque) callconv(.C) c_int; +pub extern fn FIPS_module_name() [*c]const u8; +pub extern fn FIPS_version() u32; +pub extern fn FIPS_query_algorithm_status(algorithm: [*c]const u8) c_int; +pub const pem_password_cb = fn ([*c]u8, c_int, c_int, ?*anyopaque) callconv(.C) c_int; pub extern fn PEM_get_EVP_CIPHER_INFO(header: [*c]u8, cipher: [*c]EVP_CIPHER_INFO) c_int; -pub extern fn PEM_do_header(cipher: [*c]EVP_CIPHER_INFO, data: [*c]u8, len: [*c]c_long, callback: ?pem_password_cb, u: ?*anyopaque) c_int; +pub extern fn PEM_do_header(cipher: [*c]EVP_CIPHER_INFO, data: [*c]u8, len: [*c]c_long, callback: ?*const pem_password_cb, u: ?*anyopaque) c_int; pub extern fn PEM_read_bio(bp: [*c]BIO, name: [*c][*c]u8, header: [*c][*c]u8, data: [*c][*c]u8, len: [*c]c_long) c_int; pub extern fn PEM_write_bio(bp: [*c]BIO, name: [*c]const u8, hdr: [*c]const u8, data: [*c]const u8, len: c_long) c_int; -pub extern fn PEM_bytes_read_bio(pdata: [*c][*c]u8, plen: [*c]c_long, pnm: [*c][*c]u8, name: [*c]const u8, bp: [*c]BIO, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_ASN1_read_bio(d2i: ?d2i_of_void, name: [*c]const u8, bp: [*c]BIO, x: [*c]?*anyopaque, cb: ?pem_password_cb, u: ?*anyopaque) ?*anyopaque; -pub extern fn PEM_ASN1_write_bio(i2d: ?i2d_of_void, name: [*c]const u8, bp: [*c]BIO, x: ?*anyopaque, enc: [*c]const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_X509_INFO_read_bio(bp: [*c]BIO, sk: ?*struct_stack_st_X509_INFO, cb: ?pem_password_cb, u: ?*anyopaque) ?*struct_stack_st_X509_INFO; -pub extern fn PEM_X509_INFO_write_bio(bp: [*c]BIO, xi: [*c]X509_INFO, enc: [*c]EVP_CIPHER, kstr: [*c]u8, klen: c_int, cd: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_read(fp: [*c]FILE, name: [*c][*c]u8, header: [*c][*c]u8, data: [*c][*c]u8, len: [*c]c_long) c_int; -pub extern fn PEM_write(fp: [*c]FILE, name: [*c]const u8, hdr: [*c]const u8, data: [*c]const u8, len: c_long) c_int; -pub extern fn PEM_ASN1_read(d2i: ?d2i_of_void, name: [*c]const u8, fp: [*c]FILE, x: [*c]?*anyopaque, cb: ?pem_password_cb, u: ?*anyopaque) ?*anyopaque; -pub extern fn PEM_ASN1_write(i2d: ?i2d_of_void, name: [*c]const u8, fp: [*c]FILE, x: ?*anyopaque, enc: [*c]const EVP_CIPHER, kstr: [*c]u8, klen: c_int, callback: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_X509_INFO_read(fp: [*c]FILE, sk: ?*struct_stack_st_X509_INFO, cb: ?pem_password_cb, u: ?*anyopaque) ?*struct_stack_st_X509_INFO; +pub extern fn PEM_bytes_read_bio(pdata: [*c][*c]u8, plen: [*c]c_long, pnm: [*c][*c]u8, name: [*c]const u8, bp: [*c]BIO, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +pub extern fn PEM_ASN1_read_bio(d2i: ?*const d2i_of_void, name: [*c]const u8, bp: [*c]BIO, x: [*c]?*anyopaque, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*anyopaque; +pub extern fn PEM_ASN1_write_bio(i2d: ?*const i2d_of_void, name: [*c]const u8, bp: [*c]BIO, x: ?*anyopaque, enc: ?*const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +pub extern fn PEM_X509_INFO_read_bio(bp: [*c]BIO, sk: ?*struct_stack_st_X509_INFO, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*struct_stack_st_X509_INFO; +// pub extern fn PEM_read(fp: [*c]FILE, name: [*c][*c]u8, header: [*c][*c]u8, data: [*c][*c]u8, len: [*c]c_long) c_int; +// pub extern fn PEM_write(fp: [*c]FILE, name: [*c]const u8, hdr: [*c]const u8, data: [*c]const u8, len: c_long) c_int; +// pub extern fn PEM_ASN1_read(d2i: ?*const d2i_of_void, name: [*c]const u8, fp: [*c]FILE, x: [*c]?*anyopaque, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*anyopaque; +// pub extern fn PEM_ASN1_write(i2d: ?*const i2d_of_void, name: [*c]const u8, fp: [*c]FILE, x: ?*anyopaque, enc: ?*const EVP_CIPHER, kstr: [*c]u8, klen: c_int, callback: ?*const pem_password_cb, u: ?*anyopaque) c_int; +// pub extern fn PEM_X509_INFO_read(fp: [*c]FILE, sk: ?*struct_stack_st_X509_INFO, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*struct_stack_st_X509_INFO; pub extern fn PEM_def_callback(buf: [*c]u8, size: c_int, rwflag: c_int, userdata: ?*anyopaque) c_int; pub extern fn PEM_proc_type(buf: [*c]u8, @"type": c_int) void; pub extern fn PEM_dek_info(buf: [*c]u8, @"type": [*c]const u8, len: c_int, str: [*c]u8) void; -pub extern fn PEM_read_bio_X509(bp: [*c]BIO, x: [*c]?*X509, cb: ?pem_password_cb, u: ?*anyopaque) ?*X509; -pub extern fn PEM_read_X509(fp: [*c]FILE, x: [*c]?*X509, cb: ?pem_password_cb, u: ?*anyopaque) ?*X509; +pub extern fn PEM_read_bio_X509(bp: [*c]BIO, x: [*c]?*X509, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*X509; +// pub extern fn PEM_read_X509(fp: [*c]FILE, x: [*c]?*X509, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*X509; pub extern fn PEM_write_bio_X509(bp: [*c]BIO, x: ?*X509) c_int; -pub extern fn PEM_write_X509(fp: [*c]FILE, x: ?*X509) c_int; -pub extern fn PEM_read_bio_X509_AUX(bp: [*c]BIO, x: [*c]?*X509, cb: ?pem_password_cb, u: ?*anyopaque) ?*X509; -pub extern fn PEM_read_X509_AUX(fp: [*c]FILE, x: [*c]?*X509, cb: ?pem_password_cb, u: ?*anyopaque) ?*X509; +// pub extern fn PEM_write_X509(fp: [*c]FILE, x: ?*X509) c_int; +pub extern fn PEM_read_bio_X509_AUX(bp: [*c]BIO, x: [*c]?*X509, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*X509; +// pub extern fn PEM_read_X509_AUX(fp: [*c]FILE, x: [*c]?*X509, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*X509; pub extern fn PEM_write_bio_X509_AUX(bp: [*c]BIO, x: ?*X509) c_int; -pub extern fn PEM_write_X509_AUX(fp: [*c]FILE, x: ?*X509) c_int; -pub extern fn PEM_read_bio_X509_REQ(bp: [*c]BIO, x: [*c]?*X509_REQ, cb: ?pem_password_cb, u: ?*anyopaque) ?*X509_REQ; -pub extern fn PEM_read_X509_REQ(fp: [*c]FILE, x: [*c]?*X509_REQ, cb: ?pem_password_cb, u: ?*anyopaque) ?*X509_REQ; +// pub extern fn PEM_write_X509_AUX(fp: [*c]FILE, x: ?*X509) c_int; +pub extern fn PEM_read_bio_X509_REQ(bp: [*c]BIO, x: [*c]?*X509_REQ, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*X509_REQ; +// pub extern fn PEM_read_X509_REQ(fp: [*c]FILE, x: [*c]?*X509_REQ, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*X509_REQ; pub extern fn PEM_write_bio_X509_REQ(bp: [*c]BIO, x: ?*X509_REQ) c_int; -pub extern fn PEM_write_X509_REQ(fp: [*c]FILE, x: ?*X509_REQ) c_int; +// pub extern fn PEM_write_X509_REQ(fp: [*c]FILE, x: ?*X509_REQ) c_int; pub extern fn PEM_write_bio_X509_REQ_NEW(bp: [*c]BIO, x: ?*X509_REQ) c_int; -pub extern fn PEM_write_X509_REQ_NEW(fp: [*c]FILE, x: ?*X509_REQ) c_int; -pub extern fn PEM_read_bio_X509_CRL(bp: [*c]BIO, x: [*c]?*X509_CRL, cb: ?pem_password_cb, u: ?*anyopaque) ?*X509_CRL; -pub extern fn PEM_read_X509_CRL(fp: [*c]FILE, x: [*c]?*X509_CRL, cb: ?pem_password_cb, u: ?*anyopaque) ?*X509_CRL; +// pub extern fn PEM_write_X509_REQ_NEW(fp: [*c]FILE, x: ?*X509_REQ) c_int; +pub extern fn PEM_read_bio_X509_CRL(bp: [*c]BIO, x: [*c]?*X509_CRL, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*X509_CRL; +// pub extern fn PEM_read_X509_CRL(fp: [*c]FILE, x: [*c]?*X509_CRL, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*X509_CRL; pub extern fn PEM_write_bio_X509_CRL(bp: [*c]BIO, x: ?*X509_CRL) c_int; -pub extern fn PEM_write_X509_CRL(fp: [*c]FILE, x: ?*X509_CRL) c_int; -pub extern fn PEM_read_bio_PKCS7(bp: [*c]BIO, x: [*c][*c]PKCS7, cb: ?pem_password_cb, u: ?*anyopaque) [*c]PKCS7; -pub extern fn PEM_read_PKCS7(fp: [*c]FILE, x: [*c][*c]PKCS7, cb: ?pem_password_cb, u: ?*anyopaque) [*c]PKCS7; +// pub extern fn PEM_write_X509_CRL(fp: [*c]FILE, x: ?*X509_CRL) c_int; +pub extern fn PEM_read_bio_PKCS7(bp: [*c]BIO, x: [*c][*c]PKCS7, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]PKCS7; +// pub extern fn PEM_read_PKCS7(fp: [*c]FILE, x: [*c][*c]PKCS7, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]PKCS7; pub extern fn PEM_write_bio_PKCS7(bp: [*c]BIO, x: [*c]PKCS7) c_int; -pub extern fn PEM_write_PKCS7(fp: [*c]FILE, x: [*c]PKCS7) c_int; -pub extern fn PEM_read_bio_PKCS8(bp: [*c]BIO, x: [*c]?*X509_SIG, cb: ?pem_password_cb, u: ?*anyopaque) ?*X509_SIG; -pub extern fn PEM_read_PKCS8(fp: [*c]FILE, x: [*c]?*X509_SIG, cb: ?pem_password_cb, u: ?*anyopaque) ?*X509_SIG; +// pub extern fn PEM_write_PKCS7(fp: [*c]FILE, x: [*c]PKCS7) c_int; +pub extern fn PEM_read_bio_PKCS8(bp: [*c]BIO, x: [*c]?*X509_SIG, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*X509_SIG; +// pub extern fn PEM_read_PKCS8(fp: [*c]FILE, x: [*c]?*X509_SIG, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*X509_SIG; pub extern fn PEM_write_bio_PKCS8(bp: [*c]BIO, x: ?*X509_SIG) c_int; -pub extern fn PEM_write_PKCS8(fp: [*c]FILE, x: ?*X509_SIG) c_int; -pub extern fn PEM_read_bio_PKCS8_PRIV_KEY_INFO(bp: [*c]BIO, x: [*c]?*PKCS8_PRIV_KEY_INFO, cb: ?pem_password_cb, u: ?*anyopaque) ?*PKCS8_PRIV_KEY_INFO; -pub extern fn PEM_read_PKCS8_PRIV_KEY_INFO(fp: [*c]FILE, x: [*c]?*PKCS8_PRIV_KEY_INFO, cb: ?pem_password_cb, u: ?*anyopaque) ?*PKCS8_PRIV_KEY_INFO; +// pub extern fn PEM_write_PKCS8(fp: [*c]FILE, x: ?*X509_SIG) c_int; +pub extern fn PEM_read_bio_PKCS8_PRIV_KEY_INFO(bp: [*c]BIO, x: [*c]?*PKCS8_PRIV_KEY_INFO, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*PKCS8_PRIV_KEY_INFO; +// pub extern fn PEM_read_PKCS8_PRIV_KEY_INFO(fp: [*c]FILE, x: [*c]?*PKCS8_PRIV_KEY_INFO, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*PKCS8_PRIV_KEY_INFO; pub extern fn PEM_write_bio_PKCS8_PRIV_KEY_INFO(bp: [*c]BIO, x: ?*PKCS8_PRIV_KEY_INFO) c_int; -pub extern fn PEM_write_PKCS8_PRIV_KEY_INFO(fp: [*c]FILE, x: ?*PKCS8_PRIV_KEY_INFO) c_int; -pub extern fn PEM_read_bio_RSAPrivateKey(bp: [*c]BIO, x: [*c]?*RSA, cb: ?pem_password_cb, u: ?*anyopaque) ?*RSA; -pub extern fn PEM_read_RSAPrivateKey(fp: [*c]FILE, x: [*c]?*RSA, cb: ?pem_password_cb, u: ?*anyopaque) ?*RSA; -pub extern fn PEM_write_bio_RSAPrivateKey(bp: [*c]BIO, x: ?*RSA, enc: [*c]const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_write_RSAPrivateKey(fp: [*c]FILE, x: ?*RSA, enc: [*c]const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_read_bio_RSAPublicKey(bp: [*c]BIO, x: [*c]?*RSA, cb: ?pem_password_cb, u: ?*anyopaque) ?*RSA; -pub extern fn PEM_read_RSAPublicKey(fp: [*c]FILE, x: [*c]?*RSA, cb: ?pem_password_cb, u: ?*anyopaque) ?*RSA; +// pub extern fn PEM_write_PKCS8_PRIV_KEY_INFO(fp: [*c]FILE, x: ?*PKCS8_PRIV_KEY_INFO) c_int; +pub extern fn PEM_read_bio_RSAPrivateKey(bp: [*c]BIO, x: [*c]?*RSA, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*RSA; +// pub extern fn PEM_read_RSAPrivateKey(fp: [*c]FILE, x: [*c]?*RSA, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*RSA; +pub extern fn PEM_write_bio_RSAPrivateKey(bp: [*c]BIO, x: ?*RSA, enc: ?*const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +// pub extern fn PEM_write_RSAPrivateKey(fp: [*c]FILE, x: ?*RSA, enc: ?*const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +pub extern fn PEM_read_bio_RSAPublicKey(bp: [*c]BIO, x: [*c]?*RSA, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*RSA; +// pub extern fn PEM_read_RSAPublicKey(fp: [*c]FILE, x: [*c]?*RSA, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*RSA; pub extern fn PEM_write_bio_RSAPublicKey(bp: [*c]BIO, x: ?*const RSA) c_int; -pub extern fn PEM_write_RSAPublicKey(fp: [*c]FILE, x: ?*const RSA) c_int; -pub extern fn PEM_read_bio_RSA_PUBKEY(bp: [*c]BIO, x: [*c]?*RSA, cb: ?pem_password_cb, u: ?*anyopaque) ?*RSA; -pub extern fn PEM_read_RSA_PUBKEY(fp: [*c]FILE, x: [*c]?*RSA, cb: ?pem_password_cb, u: ?*anyopaque) ?*RSA; +// pub extern fn PEM_write_RSAPublicKey(fp: [*c]FILE, x: ?*const RSA) c_int; +pub extern fn PEM_read_bio_RSA_PUBKEY(bp: [*c]BIO, x: [*c]?*RSA, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*RSA; +// pub extern fn PEM_read_RSA_PUBKEY(fp: [*c]FILE, x: [*c]?*RSA, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*RSA; pub extern fn PEM_write_bio_RSA_PUBKEY(bp: [*c]BIO, x: ?*RSA) c_int; -pub extern fn PEM_write_RSA_PUBKEY(fp: [*c]FILE, x: ?*RSA) c_int; -pub extern fn PEM_read_bio_DSAPrivateKey(bp: [*c]BIO, x: [*c][*c]DSA, cb: ?pem_password_cb, u: ?*anyopaque) [*c]DSA; -pub extern fn PEM_read_DSAPrivateKey(fp: [*c]FILE, x: [*c][*c]DSA, cb: ?pem_password_cb, u: ?*anyopaque) [*c]DSA; -pub extern fn PEM_write_bio_DSAPrivateKey(bp: [*c]BIO, x: [*c]DSA, enc: [*c]const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_write_DSAPrivateKey(fp: [*c]FILE, x: [*c]DSA, enc: [*c]const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_read_bio_DSA_PUBKEY(bp: [*c]BIO, x: [*c][*c]DSA, cb: ?pem_password_cb, u: ?*anyopaque) [*c]DSA; -pub extern fn PEM_read_DSA_PUBKEY(fp: [*c]FILE, x: [*c][*c]DSA, cb: ?pem_password_cb, u: ?*anyopaque) [*c]DSA; +// pub extern fn PEM_write_RSA_PUBKEY(fp: [*c]FILE, x: ?*RSA) c_int; +pub extern fn PEM_read_bio_DSAPrivateKey(bp: [*c]BIO, x: [*c][*c]DSA, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]DSA; +// pub extern fn PEM_read_DSAPrivateKey(fp: [*c]FILE, x: [*c][*c]DSA, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]DSA; +pub extern fn PEM_write_bio_DSAPrivateKey(bp: [*c]BIO, x: [*c]DSA, enc: ?*const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +// pub extern fn PEM_write_DSAPrivateKey(fp: [*c]FILE, x: [*c]DSA, enc: ?*const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +pub extern fn PEM_read_bio_DSA_PUBKEY(bp: [*c]BIO, x: [*c][*c]DSA, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]DSA; +// pub extern fn PEM_read_DSA_PUBKEY(fp: [*c]FILE, x: [*c][*c]DSA, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]DSA; pub extern fn PEM_write_bio_DSA_PUBKEY(bp: [*c]BIO, x: [*c]DSA) c_int; -pub extern fn PEM_write_DSA_PUBKEY(fp: [*c]FILE, x: [*c]DSA) c_int; -pub extern fn PEM_read_bio_DSAparams(bp: [*c]BIO, x: [*c][*c]DSA, cb: ?pem_password_cb, u: ?*anyopaque) [*c]DSA; -pub extern fn PEM_read_DSAparams(fp: [*c]FILE, x: [*c][*c]DSA, cb: ?pem_password_cb, u: ?*anyopaque) [*c]DSA; +// pub extern fn PEM_write_DSA_PUBKEY(fp: [*c]FILE, x: [*c]DSA) c_int; +pub extern fn PEM_read_bio_DSAparams(bp: [*c]BIO, x: [*c][*c]DSA, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]DSA; +// pub extern fn PEM_read_DSAparams(fp: [*c]FILE, x: [*c][*c]DSA, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]DSA; pub extern fn PEM_write_bio_DSAparams(bp: [*c]BIO, x: [*c]const DSA) c_int; -pub extern fn PEM_write_DSAparams(fp: [*c]FILE, x: [*c]const DSA) c_int; -pub extern fn PEM_read_bio_ECPrivateKey(bp: [*c]BIO, x: [*c]?*EC_KEY, cb: ?pem_password_cb, u: ?*anyopaque) ?*EC_KEY; -pub extern fn PEM_read_ECPrivateKey(fp: [*c]FILE, x: [*c]?*EC_KEY, cb: ?pem_password_cb, u: ?*anyopaque) ?*EC_KEY; -pub extern fn PEM_write_bio_ECPrivateKey(bp: [*c]BIO, x: ?*EC_KEY, enc: [*c]const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_write_ECPrivateKey(fp: [*c]FILE, x: ?*EC_KEY, enc: [*c]const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_read_bio_EC_PUBKEY(bp: [*c]BIO, x: [*c]?*EC_KEY, cb: ?pem_password_cb, u: ?*anyopaque) ?*EC_KEY; -pub extern fn PEM_read_EC_PUBKEY(fp: [*c]FILE, x: [*c]?*EC_KEY, cb: ?pem_password_cb, u: ?*anyopaque) ?*EC_KEY; +// pub extern fn PEM_write_DSAparams(fp: [*c]FILE, x: [*c]const DSA) c_int; +pub extern fn PEM_read_bio_ECPrivateKey(bp: [*c]BIO, x: [*c]?*EC_KEY, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*EC_KEY; +// pub extern fn PEM_read_ECPrivateKey(fp: [*c]FILE, x: [*c]?*EC_KEY, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*EC_KEY; +pub extern fn PEM_write_bio_ECPrivateKey(bp: [*c]BIO, x: ?*EC_KEY, enc: ?*const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +// pub extern fn PEM_write_ECPrivateKey(fp: [*c]FILE, x: ?*EC_KEY, enc: ?*const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +pub extern fn PEM_read_bio_EC_PUBKEY(bp: [*c]BIO, x: [*c]?*EC_KEY, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*EC_KEY; +// pub extern fn PEM_read_EC_PUBKEY(fp: [*c]FILE, x: [*c]?*EC_KEY, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*EC_KEY; pub extern fn PEM_write_bio_EC_PUBKEY(bp: [*c]BIO, x: ?*EC_KEY) c_int; -pub extern fn PEM_write_EC_PUBKEY(fp: [*c]FILE, x: ?*EC_KEY) c_int; -pub extern fn PEM_read_bio_DHparams(bp: [*c]BIO, x: [*c][*c]DH, cb: ?pem_password_cb, u: ?*anyopaque) [*c]DH; -pub extern fn PEM_read_DHparams(fp: [*c]FILE, x: [*c][*c]DH, cb: ?pem_password_cb, u: ?*anyopaque) [*c]DH; -pub extern fn PEM_write_bio_DHparams(bp: [*c]BIO, x: [*c]const DH) c_int; -pub extern fn PEM_write_DHparams(fp: [*c]FILE, x: [*c]const DH) c_int; -pub extern fn PEM_read_bio_PrivateKey(bp: [*c]BIO, x: [*c][*c]EVP_PKEY, cb: ?pem_password_cb, u: ?*anyopaque) [*c]EVP_PKEY; -pub extern fn PEM_read_PrivateKey(fp: [*c]FILE, x: [*c][*c]EVP_PKEY, cb: ?pem_password_cb, u: ?*anyopaque) [*c]EVP_PKEY; -pub extern fn PEM_write_bio_PrivateKey(bp: [*c]BIO, x: [*c]EVP_PKEY, enc: [*c]const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_write_PrivateKey(fp: [*c]FILE, x: [*c]EVP_PKEY, enc: [*c]const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_read_bio_PUBKEY(bp: [*c]BIO, x: [*c][*c]EVP_PKEY, cb: ?pem_password_cb, u: ?*anyopaque) [*c]EVP_PKEY; -pub extern fn PEM_read_PUBKEY(fp: [*c]FILE, x: [*c][*c]EVP_PKEY, cb: ?pem_password_cb, u: ?*anyopaque) [*c]EVP_PKEY; +// pub extern fn PEM_write_EC_PUBKEY(fp: [*c]FILE, x: ?*EC_KEY) c_int; +pub extern fn PEM_read_bio_DHparams(bp: [*c]BIO, x: [*c]?*DH, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*DH; +// pub extern fn PEM_read_DHparams(fp: [*c]FILE, x: [*c]?*DH, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*DH; +pub extern fn PEM_write_bio_DHparams(bp: [*c]BIO, x: ?*const DH) c_int; +// pub extern fn PEM_write_DHparams(fp: [*c]FILE, x: ?*const DH) c_int; +pub extern fn PEM_read_bio_PrivateKey(bp: [*c]BIO, x: [*c][*c]EVP_PKEY, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]EVP_PKEY; +// pub extern fn PEM_read_PrivateKey(fp: [*c]FILE, x: [*c][*c]EVP_PKEY, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]EVP_PKEY; +pub extern fn PEM_write_bio_PrivateKey(bp: [*c]BIO, x: [*c]EVP_PKEY, enc: ?*const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +// pub extern fn PEM_write_PrivateKey(fp: [*c]FILE, x: [*c]EVP_PKEY, enc: ?*const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +pub extern fn PEM_read_bio_PUBKEY(bp: [*c]BIO, x: [*c][*c]EVP_PKEY, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]EVP_PKEY; +// pub extern fn PEM_read_PUBKEY(fp: [*c]FILE, x: [*c][*c]EVP_PKEY, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]EVP_PKEY; pub extern fn PEM_write_bio_PUBKEY(bp: [*c]BIO, x: [*c]EVP_PKEY) c_int; -pub extern fn PEM_write_PUBKEY(fp: [*c]FILE, x: [*c]EVP_PKEY) c_int; -pub extern fn PEM_write_bio_PKCS8PrivateKey_nid(bp: [*c]BIO, x: [*c]EVP_PKEY, nid: c_int, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_write_bio_PKCS8PrivateKey([*c]BIO, [*c]EVP_PKEY, [*c]const EVP_CIPHER, [*c]u8, c_int, ?pem_password_cb, ?*anyopaque) c_int; -pub extern fn i2d_PKCS8PrivateKey_bio(bp: [*c]BIO, x: [*c]EVP_PKEY, enc: [*c]const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn i2d_PKCS8PrivateKey_nid_bio(bp: [*c]BIO, x: [*c]EVP_PKEY, nid: c_int, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn d2i_PKCS8PrivateKey_bio(bp: [*c]BIO, x: [*c][*c]EVP_PKEY, cb: ?pem_password_cb, u: ?*anyopaque) [*c]EVP_PKEY; -pub extern fn i2d_PKCS8PrivateKey_fp(fp: [*c]FILE, x: [*c]EVP_PKEY, enc: [*c]const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn i2d_PKCS8PrivateKey_nid_fp(fp: [*c]FILE, x: [*c]EVP_PKEY, nid: c_int, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn PEM_write_PKCS8PrivateKey_nid(fp: [*c]FILE, x: [*c]EVP_PKEY, nid: c_int, kstr: [*c]u8, klen: c_int, cb: ?pem_password_cb, u: ?*anyopaque) c_int; -pub extern fn d2i_PKCS8PrivateKey_fp(fp: [*c]FILE, x: [*c][*c]EVP_PKEY, cb: ?pem_password_cb, u: ?*anyopaque) [*c]EVP_PKEY; -pub extern fn PEM_write_PKCS8PrivateKey(fp: [*c]FILE, x: [*c]EVP_PKEY, enc: [*c]const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cd: ?pem_password_cb, u: ?*anyopaque) c_int; // /Users/jarred/Code/bun/src/deps/boringssl/include/openssl/type_check.h:75:42: warning: ignoring StaticAssert declaration +// pub extern fn PEM_write_PUBKEY(fp: [*c]FILE, x: [*c]EVP_PKEY) c_int; +pub extern fn PEM_write_bio_PKCS8PrivateKey_nid(bp: [*c]BIO, x: [*c]EVP_PKEY, nid: c_int, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +pub extern fn PEM_write_bio_PKCS8PrivateKey([*c]BIO, [*c]EVP_PKEY, ?*const EVP_CIPHER, [*c]u8, c_int, ?*const pem_password_cb, ?*anyopaque) c_int; +pub extern fn i2d_PKCS8PrivateKey_bio(bp: [*c]BIO, x: [*c]EVP_PKEY, enc: ?*const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +pub extern fn i2d_PKCS8PrivateKey_nid_bio(bp: [*c]BIO, x: [*c]EVP_PKEY, nid: c_int, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +pub extern fn d2i_PKCS8PrivateKey_bio(bp: [*c]BIO, x: [*c][*c]EVP_PKEY, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]EVP_PKEY; +// pub extern fn i2d_PKCS8PrivateKey_fp(fp: [*c]FILE, x: [*c]EVP_PKEY, enc: ?*const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +// pub extern fn i2d_PKCS8PrivateKey_nid_fp(fp: [*c]FILE, x: [*c]EVP_PKEY, nid: c_int, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +// pub extern fn PEM_write_PKCS8PrivateKey_nid(fp: [*c]FILE, x: [*c]EVP_PKEY, nid: c_int, kstr: [*c]u8, klen: c_int, cb: ?*const pem_password_cb, u: ?*anyopaque) c_int; +// pub extern fn d2i_PKCS8PrivateKey_fp(fp: [*c]FILE, x: [*c][*c]EVP_PKEY, cb: ?*const pem_password_cb, u: ?*anyopaque) [*c]EVP_PKEY; +// pub extern fn PEM_write_PKCS8PrivateKey(fp: [*c]FILE, x: [*c]EVP_PKEY, enc: ?*const EVP_CIPHER, kstr: [*c]u8, klen: c_int, cd: ?*const pem_password_cb, u: ?*anyopaque) c_int; pub extern fn HMAC(evp_md: ?*const EVP_MD, key: ?*const anyopaque, key_len: usize, data: [*c]const u8, data_len: usize, out: [*c]u8, out_len: [*c]c_uint) [*c]u8; pub extern fn HMAC_CTX_init(ctx: [*c]HMAC_CTX) void; pub extern fn HMAC_CTX_new() [*c]HMAC_CTX; pub extern fn HMAC_CTX_cleanup(ctx: [*c]HMAC_CTX) void; +pub extern fn HMAC_CTX_cleanse(ctx: [*c]HMAC_CTX) void; pub extern fn HMAC_CTX_free(ctx: [*c]HMAC_CTX) void; pub extern fn HMAC_Init_ex(ctx: [*c]HMAC_CTX, key: ?*const anyopaque, key_len: usize, md: ?*const EVP_MD, impl: ?*ENGINE) c_int; pub extern fn HMAC_Update(ctx: [*c]HMAC_CTX, data: [*c]const u8, data_len: usize) c_int; pub extern fn HMAC_Final(ctx: [*c]HMAC_CTX, out: [*c]u8, out_len: [*c]c_uint) c_int; pub extern fn HMAC_size(ctx: [*c]const HMAC_CTX) usize; +pub extern fn HMAC_CTX_get_md(ctx: [*c]const HMAC_CTX) ?*const EVP_MD; pub extern fn HMAC_CTX_copy_ex(dest: [*c]HMAC_CTX, src: [*c]const HMAC_CTX) c_int; pub extern fn HMAC_CTX_reset(ctx: [*c]HMAC_CTX) void; pub extern fn HMAC_Init(ctx: [*c]HMAC_CTX, key: ?*const anyopaque, key_len: c_int, md: ?*const EVP_MD) c_int; @@ -5200,7 +5056,6 @@ pub extern fn DTLS_with_buffers_method() ?*const SSL_METHOD; pub extern fn SSL_CTX_new(method: ?*const SSL_METHOD) ?*SSL_CTX; pub extern fn SSL_CTX_up_ref(ctx: ?*SSL_CTX) c_int; pub extern fn SSL_CTX_free(ctx: ?*SSL_CTX) void; -pub extern fn SSL_new(ctx: ?*SSL_CTX) *SSL; pub extern fn SSL_free(ssl: ?*SSL) void; pub extern fn SSL_get_SSL_CTX(ssl: ?*const SSL) ?*SSL_CTX; pub extern fn SSL_set_connect_state(ssl: ?*SSL) void; @@ -5210,8 +5065,8 @@ pub extern fn SSL_is_dtls(ssl: ?*const SSL) c_int; pub extern fn SSL_set_bio(ssl: ?*SSL, rbio: [*c]BIO, wbio: [*c]BIO) void; pub extern fn SSL_set0_rbio(ssl: ?*SSL, rbio: [*c]BIO) void; pub extern fn SSL_set0_wbio(ssl: ?*SSL, wbio: [*c]BIO) void; -pub extern fn SSL_get_rbio(ssl: ?*const SSL) *BIO; -pub extern fn SSL_get_wbio(ssl: ?*const SSL) *BIO; +pub extern fn SSL_get_rbio(ssl: ?*const SSL) [*c]BIO; +pub extern fn SSL_get_wbio(ssl: ?*const SSL) [*c]BIO; pub extern fn SSL_get_fd(ssl: ?*const SSL) c_int; pub extern fn SSL_get_rfd(ssl: ?*const SSL) c_int; pub extern fn SSL_get_wfd(ssl: ?*const SSL) c_int; @@ -5312,134 +5167,134 @@ pub extern fn SSL_CTX_use_PrivateKey_ASN1(pk: c_int, ctx: ?*SSL_CTX, der: [*c]co pub extern fn SSL_use_PrivateKey_ASN1(@"type": c_int, ssl: ?*SSL, der: [*c]const u8, der_len: usize) c_int; pub extern fn SSL_CTX_use_RSAPrivateKey_ASN1(ctx: ?*SSL_CTX, der: [*c]const u8, der_len: usize) c_int; pub extern fn SSL_use_RSAPrivateKey_ASN1(ssl: ?*SSL, der: [*c]const u8, der_len: usize) c_int; -pub extern fn SSL_CTX_use_RSAPrivateKey_file(ctx: ?*SSL_CTX, file: [*c]const u8, @"type": c_int) c_int; -pub extern fn SSL_use_RSAPrivateKey_file(ssl: ?*SSL, file: [*c]const u8, @"type": c_int) c_int; -pub extern fn SSL_CTX_use_certificate_file(ctx: ?*SSL_CTX, file: [*c]const u8, @"type": c_int) c_int; -pub extern fn SSL_use_certificate_file(ssl: ?*SSL, file: [*c]const u8, @"type": c_int) c_int; -pub extern fn SSL_CTX_use_PrivateKey_file(ctx: ?*SSL_CTX, file: [*c]const u8, @"type": c_int) c_int; -pub extern fn SSL_use_PrivateKey_file(ssl: ?*SSL, file: [*c]const u8, @"type": c_int) c_int; -pub extern fn SSL_CTX_use_certificate_chain_file(ctx: ?*SSL_CTX, file: [*c]const u8) c_int; -pub extern fn SSL_CTX_set_default_passwd_cb(ctx: ?*SSL_CTX, cb: ?pem_password_cb) void; -pub extern fn SSL_CTX_get_default_passwd_cb(ctx: ?*const SSL_CTX) ?pem_password_cb; +// pub extern fn SSL_CTX_use_RSAPrivateKey_file(ctx: ?*SSL_CTX, file: [*c]const u8, @"type": c_int) c_int; +// pub extern fn SSL_use_RSAPrivateKey_file(ssl: ?*SSL, file: [*c]const u8, @"type": c_int) c_int; +// pub extern fn SSL_CTX_use_certificate_file(ctx: ?*SSL_CTX, file: [*c]const u8, @"type": c_int) c_int; +// pub extern fn SSL_use_certificate_file(ssl: ?*SSL, file: [*c]const u8, @"type": c_int) c_int; +// pub extern fn SSL_CTX_use_PrivateKey_file(ctx: ?*SSL_CTX, file: [*c]const u8, @"type": c_int) c_int; +// pub extern fn SSL_use_PrivateKey_file(ssl: ?*SSL, file: [*c]const u8, @"type": c_int) c_int; +// pub extern fn SSL_CTX_use_certificate_chain_file(ctx: ?*SSL_CTX, file: [*c]const u8) c_int; +pub extern fn SSL_CTX_set_default_passwd_cb(ctx: ?*SSL_CTX, cb: ?*const pem_password_cb) void; +pub extern fn SSL_CTX_get_default_passwd_cb(ctx: ?*const SSL_CTX) ?*const pem_password_cb; pub extern fn SSL_CTX_set_default_passwd_cb_userdata(ctx: ?*SSL_CTX, data: ?*anyopaque) void; pub extern fn SSL_CTX_get_default_passwd_cb_userdata(ctx: ?*const SSL_CTX) ?*anyopaque; pub extern fn SSL_set_private_key_method(ssl: ?*SSL, key_method: [*c]const SSL_PRIVATE_KEY_METHOD) void; pub extern fn SSL_CTX_set_private_key_method(ctx: ?*SSL_CTX, key_method: [*c]const SSL_PRIVATE_KEY_METHOD) void; pub extern fn SSL_can_release_private_key(ssl: ?*const SSL) c_int; pub const struct_stack_st_SSL_CIPHER = opaque {}; -pub const stack_SSL_CIPHER_free_func = ?*const fn (?*const SSL_CIPHER) callconv(.C) void; -pub const stack_SSL_CIPHER_copy_func = ?*const fn (?*const SSL_CIPHER) callconv(.C) ?*const SSL_CIPHER; -pub const stack_SSL_CIPHER_cmp_func = ?*const fn ([*c]?*const SSL_CIPHER, [*c]?*const SSL_CIPHER) callconv(.C) c_int; -pub fn sk_SSL_CIPHER_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_SSL_CIPHER_free_func = ?*const fn (?*const SSL_CIPHER) callconv(.C) void; +pub const sk_SSL_CIPHER_copy_func = ?*const fn (?*const SSL_CIPHER) callconv(.C) ?*const SSL_CIPHER; +pub const sk_SSL_CIPHER_cmp_func = ?*const fn ([*c]?*const SSL_CIPHER, [*c]?*const SSL_CIPHER) callconv(.C) c_int; +pub fn sk_SSL_CIPHER_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_SSL_CIPHER_free_func, @alignCast(@import("std").meta.alignment(fn (?*const SSL_CIPHER) callconv(.C) void), free_func)).?(@ptrCast(?*const SSL_CIPHER, ptr)); + @as(sk_SSL_CIPHER_free_func, @ptrCast(@alignCast(free_func))).?(@as(?*const SSL_CIPHER, @ptrCast(ptr))); } -pub fn sk_SSL_CIPHER_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_SSL_CIPHER_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrFromInt(?*anyopaque, @intFromPtr(@ptrCast(stack_SSL_CIPHER_copy_func, @alignCast(@import("std").meta.alignment(fn (?*const SSL_CIPHER) callconv(.C) ?*const SSL_CIPHER), copy_func)).?(@ptrCast(?*const SSL_CIPHER, ptr)))); + return @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(@as(sk_SSL_CIPHER_copy_func, @ptrCast(@alignCast(copy_func))).?(@as(?*const SSL_CIPHER, @ptrCast(ptr))))))); } -pub fn sk_SSL_CIPHER_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_SSL_CIPHER_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: ?*const SSL_CIPHER = @ptrCast(?*const SSL_CIPHER, a.*); - var b_ptr: ?*const SSL_CIPHER = @ptrCast(?*const SSL_CIPHER, b.*); - return @ptrCast(stack_SSL_CIPHER_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const SSL_CIPHER, [*c]?*const SSL_CIPHER) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: ?*const SSL_CIPHER = @as(?*const SSL_CIPHER, @ptrCast(a.*)); + var b_ptr: ?*const SSL_CIPHER = @as(?*const SSL_CIPHER, @ptrCast(b.*)); + return @as(sk_SSL_CIPHER_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_SSL_CIPHER_new(arg_comp: stack_SSL_CIPHER_cmp_func) callconv(.C) ?*struct_stack_st_SSL_CIPHER { +pub fn sk_SSL_CIPHER_new(arg_comp: sk_SSL_CIPHER_cmp_func) callconv(.C) ?*struct_stack_st_SSL_CIPHER { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_SSL_CIPHER, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_SSL_CIPHER, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_SSL_CIPHER_new_null() callconv(.C) ?*struct_stack_st_SSL_CIPHER { - return @ptrCast(?*struct_stack_st_SSL_CIPHER, sk_new_null()); + return @as(?*struct_stack_st_SSL_CIPHER, @ptrCast(sk_new_null())); } pub fn sk_SSL_CIPHER_num(arg_sk: ?*const struct_stack_st_SSL_CIPHER) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_SSL_CIPHER_zero(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_SSL_CIPHER_value(arg_sk: ?*const struct_stack_st_SSL_CIPHER, arg_i: usize) callconv(.C) ?*const SSL_CIPHER { var sk = arg_sk; var i = arg_i; - return @ptrCast(?*const SSL_CIPHER, sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i)); + return @as(?*const SSL_CIPHER, @ptrCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i))); } pub fn sk_SSL_CIPHER_set(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_i: usize, arg_p: ?*const SSL_CIPHER) callconv(.C) ?*const SSL_CIPHER { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast(?*const SSL_CIPHER, sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrFromInt(?*anyopaque, @intFromPtr(p)))); + return @as(?*const SSL_CIPHER, @ptrCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(p))))))); } pub fn sk_SSL_CIPHER_free(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SSL_CIPHER_pop_free(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_free_func: stack_SSL_CIPHER_free_func) callconv(.C) void { +pub fn sk_SSL_CIPHER_pop_free(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_free_func: sk_SSL_CIPHER_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_SSL_CIPHER_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_SSL_CIPHER_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_SSL_CIPHER_insert(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_p: ?*const SSL_CIPHER, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrFromInt(?*anyopaque, @intFromPtr(p)), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(p)))), where); } pub fn sk_SSL_CIPHER_delete(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_where: usize) callconv(.C) ?*const SSL_CIPHER { var sk = arg_sk; var where = arg_where; - return @ptrCast(?*const SSL_CIPHER, sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where)); + return @as(?*const SSL_CIPHER, @ptrCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where))); } pub fn sk_SSL_CIPHER_delete_ptr(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_p: ?*const SSL_CIPHER) callconv(.C) ?*const SSL_CIPHER { var sk = arg_sk; var p = arg_p; - return @ptrCast(?*const SSL_CIPHER, sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p))); + return @as(?*const SSL_CIPHER, @ptrCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p))))); } pub fn sk_SSL_CIPHER_find(arg_sk: ?*const struct_stack_st_SSL_CIPHER, arg_out_index: [*c]usize, arg_p: ?*const SSL_CIPHER) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_SSL_CIPHER_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_SSL_CIPHER_call_cmp_func); } pub fn sk_SSL_CIPHER_shift(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.C) ?*const SSL_CIPHER { var sk = arg_sk; - return @ptrCast(?*const SSL_CIPHER, sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*const SSL_CIPHER, @ptrCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_SSL_CIPHER_push(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_p: ?*const SSL_CIPHER) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrFromInt(?*anyopaque, @intFromPtr(p))); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(p))))); } pub fn sk_SSL_CIPHER_pop(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.C) ?*const SSL_CIPHER { var sk = arg_sk; - return @ptrCast(?*const SSL_CIPHER, sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*const SSL_CIPHER, @ptrCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_SSL_CIPHER_dup(arg_sk: ?*const struct_stack_st_SSL_CIPHER) callconv(.C) ?*struct_stack_st_SSL_CIPHER { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_SSL_CIPHER, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_SSL_CIPHER, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_SSL_CIPHER_sort(arg_sk: ?*struct_stack_st_SSL_CIPHER) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_SSL_CIPHER_call_cmp_func); } pub fn sk_SSL_CIPHER_is_sorted(arg_sk: ?*const struct_stack_st_SSL_CIPHER) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SSL_CIPHER_set_cmp_func(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_comp: stack_SSL_CIPHER_cmp_func) callconv(.C) stack_SSL_CIPHER_cmp_func { +pub fn sk_SSL_CIPHER_set_cmp_func(arg_sk: ?*struct_stack_st_SSL_CIPHER, arg_comp: sk_SSL_CIPHER_cmp_func) callconv(.C) sk_SSL_CIPHER_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_SSL_CIPHER_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const SSL_CIPHER, [*c]?*const SSL_CIPHER) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_SSL_CIPHER_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_SSL_CIPHER_deep_copy(arg_sk: ?*const struct_stack_st_SSL_CIPHER, arg_copy_func: ?*const fn (?*const SSL_CIPHER) callconv(.C) ?*const SSL_CIPHER, arg_free_func: ?*const fn (?*const SSL_CIPHER) callconv(.C) void) callconv(.C) ?*struct_stack_st_SSL_CIPHER { +pub fn sk_SSL_CIPHER_deep_copy(arg_sk: ?*const struct_stack_st_SSL_CIPHER, arg_copy_func: sk_SSL_CIPHER_copy_func, arg_free_func: sk_SSL_CIPHER_free_func) callconv(.C) ?*struct_stack_st_SSL_CIPHER { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_SSL_CIPHER, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_SSL_CIPHER_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_SSL_CIPHER_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_SSL_CIPHER, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_SSL_CIPHER_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_SSL_CIPHER_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub extern fn SSL_get_cipher_by_value(value: u16) ?*const SSL_CIPHER; pub extern fn SSL_CIPHER_get_id(cipher: ?*const SSL_CIPHER) u32; @@ -5479,10 +5334,10 @@ pub extern fn SSL_get_current_cipher(ssl: ?*const SSL) ?*const SSL_CIPHER; pub extern fn SSL_session_reused(ssl: ?*const SSL) c_int; pub extern fn SSL_get_secure_renegotiation_support(ssl: ?*const SSL) c_int; pub extern fn SSL_export_keying_material(ssl: ?*SSL, out: [*c]u8, out_len: usize, label: [*c]const u8, label_len: usize, context: [*c]const u8, context_len: usize, use_context: c_int) c_int; -pub extern fn PEM_read_bio_SSL_SESSION(bp: [*c]BIO, x: [*c]?*SSL_SESSION, cb: ?pem_password_cb, u: ?*anyopaque) ?*SSL_SESSION; -pub extern fn PEM_read_SSL_SESSION(fp: [*c]FILE, x: [*c]?*SSL_SESSION, cb: ?pem_password_cb, u: ?*anyopaque) ?*SSL_SESSION; +pub extern fn PEM_read_bio_SSL_SESSION(bp: [*c]BIO, x: [*c]?*SSL_SESSION, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*SSL_SESSION; +// pub extern fn PEM_read_SSL_SESSION(fp: [*c]FILE, x: [*c]?*SSL_SESSION, cb: ?*const pem_password_cb, u: ?*anyopaque) ?*SSL_SESSION; pub extern fn PEM_write_bio_SSL_SESSION(bp: [*c]BIO, x: ?*SSL_SESSION) c_int; -pub extern fn PEM_write_SSL_SESSION(fp: [*c]FILE, x: ?*SSL_SESSION) c_int; +// pub extern fn PEM_write_SSL_SESSION(fp: [*c]FILE, x: ?*SSL_SESSION) c_int; pub extern fn SSL_SESSION_new(ctx: ?*const SSL_CTX) ?*SSL_SESSION; pub extern fn SSL_SESSION_up_ref(session: ?*SSL_SESSION) c_int; pub extern fn SSL_SESSION_free(session: ?*SSL_SESSION) void; @@ -5541,31 +5396,29 @@ pub extern fn SSL_CTX_set_tlsext_ticket_keys(ctx: ?*SSL_CTX, in: ?*const anyopaq pub extern fn SSL_CTX_set_tlsext_ticket_key_cb(ctx: ?*SSL_CTX, callback: ?*const fn (?*SSL, [*c]u8, [*c]u8, [*c]EVP_CIPHER_CTX, [*c]HMAC_CTX, c_int) callconv(.C) c_int) c_int; pub extern fn SSL_CTX_set_ticket_aead_method(ctx: ?*SSL_CTX, aead_method: [*c]const SSL_TICKET_AEAD_METHOD) void; pub extern fn SSL_process_tls13_new_session_ticket(ssl: ?*SSL, buf: [*c]const u8, buf_len: usize) ?*SSL_SESSION; +pub extern fn SSL_CTX_set_num_tickets(ctx: ?*SSL_CTX, num_tickets: usize) c_int; +pub extern fn SSL_CTX_get_num_tickets(ctx: ?*const SSL_CTX) usize; pub extern fn SSL_CTX_set1_curves(ctx: ?*SSL_CTX, curves: [*c]const c_int, curves_len: usize) c_int; pub extern fn SSL_set1_curves(ssl: ?*SSL, curves: [*c]const c_int, curves_len: usize) c_int; pub extern fn SSL_CTX_set1_curves_list(ctx: ?*SSL_CTX, curves: [*c]const u8) c_int; pub extern fn SSL_set1_curves_list(ssl: ?*SSL, curves: [*c]const u8) c_int; pub extern fn SSL_get_curve_id(ssl: ?*const SSL) u16; pub extern fn SSL_get_curve_name(curve_id: u16) [*c]const u8; +pub extern fn SSL_CTX_set1_groups(ctx: ?*SSL_CTX, groups: [*c]const c_int, groups_len: usize) c_int; +pub extern fn SSL_set1_groups(ssl: ?*SSL, groups: [*c]const c_int, groups_len: usize) c_int; +pub extern fn SSL_CTX_set1_groups_list(ctx: ?*SSL_CTX, groups: [*c]const u8) c_int; +pub extern fn SSL_set1_groups_list(ssl: ?*SSL, groups: [*c]const u8) c_int; pub extern fn SSL_CTX_set_verify(ctx: ?*SSL_CTX, mode: c_int, callback: ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.C) c_int) void; pub extern fn SSL_set_verify(ssl: ?*SSL, mode: c_int, callback: ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.C) c_int) void; -// pub const ssl_verify_ok: c_int = 0; -// pub const ssl_verify_invalid: c_int = 1; -// pub const ssl_verify_retry: c_int = 2; -// pub const enum_ssl_verify_result_t = c_uint; -pub const VerifyResult = enum(c_int) { - ok = 0, - invalid = 1, - retry = 2, -}; -pub const VerifyCallback = *const fn (*SSL, [*c]u8) callconv(.C) VerifyResult; - -pub extern fn SSL_CTX_set_custom_verify(ctx: ?*SSL_CTX, mode: c_int, callback: ?VerifyCallback) void; -pub extern fn SSL_set_custom_verify(ssl: ?*SSL, mode: c_int, callback: ?VerifyCallback) void; +pub const ssl_verify_ok: c_int = 0; +pub const ssl_verify_invalid: c_int = 1; +pub const ssl_verify_retry: c_int = 2; +pub extern fn SSL_set_custom_verify(ssl: ?*SSL, mode: c_int, callback: ?*const fn (?*SSL, [*c]u8) callconv(.C) enum_ssl_verify_result_t) void; pub extern fn SSL_CTX_get_verify_mode(ctx: ?*const SSL_CTX) c_int; pub extern fn SSL_get_verify_mode(ssl: ?*const SSL) c_int; pub extern fn SSL_CTX_get_verify_callback(ctx: ?*const SSL_CTX) ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.C) c_int; pub extern fn SSL_get_verify_callback(ssl: ?*const SSL) ?*const fn (c_int, ?*X509_STORE_CTX) callconv(.C) c_int; +pub extern fn SSL_set1_host(ssl: ?*SSL, hostname: [*c]const u8) c_int; pub extern fn SSL_CTX_set_verify_depth(ctx: ?*SSL_CTX, depth: c_int) void; pub extern fn SSL_set_verify_depth(ssl: ?*SSL, depth: c_int) void; pub extern fn SSL_CTX_get_verify_depth(ctx: ?*const SSL_CTX) c_int; @@ -5581,7 +5434,7 @@ pub extern fn SSL_set_trust(ssl: ?*SSL, trust: c_int) c_int; pub extern fn SSL_CTX_set_cert_store(ctx: ?*SSL_CTX, store: ?*X509_STORE) void; pub extern fn SSL_CTX_get_cert_store(ctx: ?*const SSL_CTX) ?*X509_STORE; pub extern fn SSL_CTX_set_default_verify_paths(ctx: ?*SSL_CTX) c_int; -pub extern fn SSL_CTX_load_verify_locations(ctx: ?*SSL_CTX, ca_file: [*c]const u8, ca_dir: [*c]const u8) c_int; +// pub extern fn SSL_CTX_load_verify_locations(ctx: ?*SSL_CTX, ca_file: [*c]const u8, ca_dir: [*c]const u8) c_int; pub extern fn SSL_get_verify_result(ssl: ?*const SSL) c_long; pub extern fn SSL_alert_from_verify_result(result: c_long) c_int; pub extern fn SSL_get_ex_data_X509_STORE_CTX_idx() c_int; @@ -5596,6 +5449,7 @@ pub extern fn SSL_set0_verify_cert_store(ssl: ?*SSL, store: ?*X509_STORE) c_int; pub extern fn SSL_set1_verify_cert_store(ssl: ?*SSL, store: ?*X509_STORE) c_int; pub extern fn SSL_CTX_set_verify_algorithm_prefs(ctx: ?*SSL_CTX, prefs: [*c]const u16, num_prefs: usize) c_int; pub extern fn SSL_set_verify_algorithm_prefs(ssl: ?*SSL, prefs: [*c]const u16, num_prefs: usize) c_int; +pub extern fn SSL_set_hostflags(ssl: ?*SSL, flags: c_uint) void; pub extern fn SSL_set_client_CA_list(ssl: ?*SSL, name_list: ?*struct_stack_st_X509_NAME) void; pub extern fn SSL_CTX_set_client_CA_list(ctx: ?*SSL_CTX, name_list: ?*struct_stack_st_X509_NAME) void; pub extern fn SSL_set0_client_CAs(ssl: ?*SSL, name_list: ?*struct_stack_st_CRYPTO_BUFFER) void; @@ -5605,24 +5459,25 @@ pub extern fn SSL_get0_server_requested_CAs(ssl: ?*const SSL) ?*const struct_sta pub extern fn SSL_CTX_get_client_CA_list(ctx: ?*const SSL_CTX) ?*struct_stack_st_X509_NAME; pub extern fn SSL_add_client_CA(ssl: ?*SSL, x509: ?*X509) c_int; pub extern fn SSL_CTX_add_client_CA(ctx: ?*SSL_CTX, x509: ?*X509) c_int; -pub extern fn SSL_load_client_CA_file(file: [*c]const u8) ?*struct_stack_st_X509_NAME; +// pub extern fn SSL_load_client_CA_file(file: [*c]const u8) ?*struct_stack_st_X509_NAME; pub extern fn SSL_dup_CA_list(list: ?*struct_stack_st_X509_NAME) ?*struct_stack_st_X509_NAME; -pub extern fn SSL_add_file_cert_subjects_to_stack(out: ?*struct_stack_st_X509_NAME, file: [*c]const u8) c_int; +// pub extern fn SSL_add_file_cert_subjects_to_stack(out: ?*struct_stack_st_X509_NAME, file: [*c]const u8) c_int; +pub extern fn SSL_add_bio_cert_subjects_to_stack(out: ?*struct_stack_st_X509_NAME, bio: [*c]BIO) c_int; pub extern fn SSL_set_tlsext_host_name(ssl: ?*SSL, name: [*c]const u8) c_int; pub extern fn SSL_get_servername(ssl: ?*const SSL, @"type": c_int) [*c]const u8; pub extern fn SSL_get_servername_type(ssl: ?*const SSL) c_int; pub extern fn SSL_CTX_set_tlsext_servername_callback(ctx: ?*SSL_CTX, callback: ?*const fn (?*SSL, [*c]c_int, ?*anyopaque) callconv(.C) c_int) c_int; pub extern fn SSL_CTX_set_tlsext_servername_arg(ctx: ?*SSL_CTX, arg: ?*anyopaque) c_int; pub extern fn SSL_set_SSL_CTX(ssl: ?*SSL, ctx: ?*SSL_CTX) ?*SSL_CTX; -pub extern fn SSL_CTX_set_alpn_protos(ctx: ?*SSL_CTX, protos: [*c]const u8, protos_len: c_uint) c_int; -pub extern fn SSL_set_alpn_protos(ssl: ?*SSL, protos: [*c]const u8, protos_len: c_uint) c_int; +pub extern fn SSL_CTX_set_alpn_protos(ctx: ?*SSL_CTX, protos: [*c]const u8, protos_len: usize) c_int; +pub extern fn SSL_set_alpn_protos(ssl: ?*SSL, protos: [*c]const u8, protos_len: usize) c_int; pub extern fn SSL_CTX_set_alpn_select_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c][*c]const u8, [*c]u8, [*c]const u8, c_uint, ?*anyopaque) callconv(.C) c_int, arg: ?*anyopaque) void; pub extern fn SSL_get0_alpn_selected(ssl: ?*const SSL, out_data: [*c][*c]const u8, out_len: [*c]c_uint) void; pub extern fn SSL_CTX_set_allow_unknown_alpn_protos(ctx: ?*SSL_CTX, enabled: c_int) void; pub extern fn SSL_add_application_settings(ssl: ?*SSL, proto: [*c]const u8, proto_len: usize, settings: [*c]const u8, settings_len: usize) c_int; pub extern fn SSL_get0_peer_application_settings(ssl: ?*const SSL, out_data: [*c][*c]const u8, out_len: [*c]usize) void; pub extern fn SSL_has_application_settings(ssl: ?*const SSL) c_int; -pub const ssl_cert_compression_func_t = ?*const fn (?*SSL, [*c]CBB, [*c]const u8, usize) callconv(.C) c_int; +pub const ssl_cert_compression_func_t = ?*const fn (?*SSL, ?*CBB, [*c]const u8, usize) callconv(.C) c_int; pub const ssl_cert_decompression_func_t = ?*const fn (?*SSL, [*c]?*CRYPTO_BUFFER, usize, [*c]const u8, usize) callconv(.C) c_int; pub extern fn SSL_CTX_add_cert_compression_alg(ctx: ?*SSL_CTX, alg_id: u16, compress: ssl_cert_compression_func_t, decompress: ssl_cert_decompression_func_t) c_int; pub extern fn SSL_CTX_set_next_protos_advertised_cb(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c][*c]const u8, [*c]c_uint, ?*anyopaque) callconv(.C) c_int, arg: ?*anyopaque) void; @@ -5635,124 +5490,124 @@ pub extern fn SSL_CTX_set1_tls_channel_id(ctx: ?*SSL_CTX, private_key: [*c]EVP_P pub extern fn SSL_set1_tls_channel_id(ssl: ?*SSL, private_key: [*c]EVP_PKEY) c_int; pub extern fn SSL_get_tls_channel_id(ssl: ?*SSL, out: [*c]u8, max_out: usize) usize; pub const struct_stack_st_SRTP_PROTECTION_PROFILE = opaque {}; -pub const stack_SRTP_PROTECTION_PROFILE_free_func = ?*const fn ([*c]const SRTP_PROTECTION_PROFILE) callconv(.C) void; -pub const stack_SRTP_PROTECTION_PROFILE_copy_func = ?*const fn ([*c]const SRTP_PROTECTION_PROFILE) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE; -pub const stack_SRTP_PROTECTION_PROFILE_cmp_func = ?*const fn ([*c][*c]const SRTP_PROTECTION_PROFILE, [*c][*c]const SRTP_PROTECTION_PROFILE) callconv(.C) c_int; -pub fn sk_SRTP_PROTECTION_PROFILE_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_SRTP_PROTECTION_PROFILE_free_func = ?*const fn ([*c]const SRTP_PROTECTION_PROFILE) callconv(.C) void; +pub const sk_SRTP_PROTECTION_PROFILE_copy_func = ?*const fn ([*c]const SRTP_PROTECTION_PROFILE) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE; +pub const sk_SRTP_PROTECTION_PROFILE_cmp_func = ?*const fn ([*c][*c]const SRTP_PROTECTION_PROFILE, [*c][*c]const SRTP_PROTECTION_PROFILE) callconv(.C) c_int; +pub fn sk_SRTP_PROTECTION_PROFILE_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_SRTP_PROTECTION_PROFILE_free_func, @alignCast(@import("std").meta.alignment(fn ([*c]const SRTP_PROTECTION_PROFILE) callconv(.C) void), free_func)).?(@ptrCast([*c]const SRTP_PROTECTION_PROFILE, @alignCast(@import("std").meta.alignment(SRTP_PROTECTION_PROFILE), ptr))); + @as(sk_SRTP_PROTECTION_PROFILE_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(ptr)))); } -pub fn sk_SRTP_PROTECTION_PROFILE_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_SRTP_PROTECTION_PROFILE_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrFromInt(?*anyopaque, @intFromPtr(@ptrCast(stack_SRTP_PROTECTION_PROFILE_copy_func, @alignCast(@import("std").meta.alignment(fn ([*c]const SRTP_PROTECTION_PROFILE) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE), copy_func)).?(@ptrCast([*c]const SRTP_PROTECTION_PROFILE, @alignCast(@import("std").meta.alignment(SRTP_PROTECTION_PROFILE), ptr))))); + return @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(@as(sk_SRTP_PROTECTION_PROFILE_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(ptr)))))))); } -pub fn sk_SRTP_PROTECTION_PROFILE_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_SRTP_PROTECTION_PROFILE_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: [*c]const SRTP_PROTECTION_PROFILE = @ptrCast([*c]const SRTP_PROTECTION_PROFILE, @alignCast(@import("std").meta.alignment(SRTP_PROTECTION_PROFILE), a.*)); - var b_ptr: [*c]const SRTP_PROTECTION_PROFILE = @ptrCast([*c]const SRTP_PROTECTION_PROFILE, @alignCast(@import("std").meta.alignment(SRTP_PROTECTION_PROFILE), b.*)); - return @ptrCast(stack_SRTP_PROTECTION_PROFILE_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const SRTP_PROTECTION_PROFILE, [*c][*c]const SRTP_PROTECTION_PROFILE) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: [*c]const SRTP_PROTECTION_PROFILE = @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(a.*))); + var b_ptr: [*c]const SRTP_PROTECTION_PROFILE = @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(b.*))); + return @as(sk_SRTP_PROTECTION_PROFILE_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_SRTP_PROTECTION_PROFILE_new(arg_comp: stack_SRTP_PROTECTION_PROFILE_cmp_func) callconv(.C) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { +pub fn sk_SRTP_PROTECTION_PROFILE_new(arg_comp: sk_SRTP_PROTECTION_PROFILE_cmp_func) callconv(.C) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_SRTP_PROTECTION_PROFILE, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_SRTP_PROTECTION_PROFILE, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_SRTP_PROTECTION_PROFILE_new_null() callconv(.C) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { - return @ptrCast(?*struct_stack_st_SRTP_PROTECTION_PROFILE, sk_new_null()); + return @as(?*struct_stack_st_SRTP_PROTECTION_PROFILE, @ptrCast(sk_new_null())); } pub fn sk_SRTP_PROTECTION_PROFILE_num(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_SRTP_PROTECTION_PROFILE_zero(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_SRTP_PROTECTION_PROFILE_value(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE, arg_i: usize) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE { var sk = arg_sk; var i = arg_i; - return @ptrCast([*c]const SRTP_PROTECTION_PROFILE, @alignCast(@import("std").meta.alignment(SRTP_PROTECTION_PROFILE), sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i))); + return @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } pub fn sk_SRTP_PROTECTION_PROFILE_set(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_i: usize, arg_p: [*c]const SRTP_PROTECTION_PROFILE) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast([*c]const SRTP_PROTECTION_PROFILE, @alignCast(@import("std").meta.alignment(SRTP_PROTECTION_PROFILE), sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrFromInt(?*anyopaque, @intFromPtr(p))))); + return @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(p)))))))); } pub fn sk_SRTP_PROTECTION_PROFILE_free(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SRTP_PROTECTION_PROFILE_pop_free(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_free_func: stack_SRTP_PROTECTION_PROFILE_free_func) callconv(.C) void { +pub fn sk_SRTP_PROTECTION_PROFILE_pop_free(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_free_func: sk_SRTP_PROTECTION_PROFILE_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_SRTP_PROTECTION_PROFILE_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_SRTP_PROTECTION_PROFILE_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_SRTP_PROTECTION_PROFILE_insert(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_p: [*c]const SRTP_PROTECTION_PROFILE, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrFromInt(?*anyopaque, @intFromPtr(p)), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(p)))), where); } pub fn sk_SRTP_PROTECTION_PROFILE_delete(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_where: usize) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE { var sk = arg_sk; var where = arg_where; - return @ptrCast([*c]const SRTP_PROTECTION_PROFILE, @alignCast(@import("std").meta.alignment(SRTP_PROTECTION_PROFILE), sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where))); + return @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } pub fn sk_SRTP_PROTECTION_PROFILE_delete_ptr(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_p: [*c]const SRTP_PROTECTION_PROFILE) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE { var sk = arg_sk; var p = arg_p; - return @ptrCast([*c]const SRTP_PROTECTION_PROFILE, @alignCast(@import("std").meta.alignment(SRTP_PROTECTION_PROFILE), sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p)))); + return @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } pub fn sk_SRTP_PROTECTION_PROFILE_find(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE, arg_out_index: [*c]usize, arg_p: [*c]const SRTP_PROTECTION_PROFILE) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_SRTP_PROTECTION_PROFILE_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_SRTP_PROTECTION_PROFILE_call_cmp_func); } pub fn sk_SRTP_PROTECTION_PROFILE_shift(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE { var sk = arg_sk; - return @ptrCast([*c]const SRTP_PROTECTION_PROFILE, @alignCast(@import("std").meta.alignment(SRTP_PROTECTION_PROFILE), sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_SRTP_PROTECTION_PROFILE_push(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_p: [*c]const SRTP_PROTECTION_PROFILE) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrFromInt(?*anyopaque, @intFromPtr(p))); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(@volatileCast(@constCast(p))))); } pub fn sk_SRTP_PROTECTION_PROFILE_pop(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE { var sk = arg_sk; - return @ptrCast([*c]const SRTP_PROTECTION_PROFILE, @alignCast(@import("std").meta.alignment(SRTP_PROTECTION_PROFILE), sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]const SRTP_PROTECTION_PROFILE, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_SRTP_PROTECTION_PROFILE_dup(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_SRTP_PROTECTION_PROFILE, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_SRTP_PROTECTION_PROFILE, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_SRTP_PROTECTION_PROFILE_sort(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_SRTP_PROTECTION_PROFILE_call_cmp_func); } pub fn sk_SRTP_PROTECTION_PROFILE_is_sorted(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SRTP_PROTECTION_PROFILE_set_cmp_func(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_comp: stack_SRTP_PROTECTION_PROFILE_cmp_func) callconv(.C) stack_SRTP_PROTECTION_PROFILE_cmp_func { +pub fn sk_SRTP_PROTECTION_PROFILE_set_cmp_func(arg_sk: ?*struct_stack_st_SRTP_PROTECTION_PROFILE, arg_comp: sk_SRTP_PROTECTION_PROFILE_cmp_func) callconv(.C) sk_SRTP_PROTECTION_PROFILE_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_SRTP_PROTECTION_PROFILE_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const SRTP_PROTECTION_PROFILE, [*c][*c]const SRTP_PROTECTION_PROFILE) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_SRTP_PROTECTION_PROFILE_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_SRTP_PROTECTION_PROFILE_deep_copy(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE, arg_copy_func: ?*const fn ([*c]const SRTP_PROTECTION_PROFILE) callconv(.C) [*c]const SRTP_PROTECTION_PROFILE, arg_free_func: ?*const fn ([*c]const SRTP_PROTECTION_PROFILE) callconv(.C) void) callconv(.C) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { +pub fn sk_SRTP_PROTECTION_PROFILE_deep_copy(arg_sk: ?*const struct_stack_st_SRTP_PROTECTION_PROFILE, arg_copy_func: sk_SRTP_PROTECTION_PROFILE_copy_func, arg_free_func: sk_SRTP_PROTECTION_PROFILE_free_func) callconv(.C) ?*struct_stack_st_SRTP_PROTECTION_PROFILE { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_SRTP_PROTECTION_PROFILE, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_SRTP_PROTECTION_PROFILE_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_SRTP_PROTECTION_PROFILE_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_SRTP_PROTECTION_PROFILE, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_SRTP_PROTECTION_PROFILE_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_SRTP_PROTECTION_PROFILE_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } -pub extern fn SSL_CTX_set_srtp_profiles(ctx: ?*SSL_CTX, profiles: [*c]const u8) c_int; -pub extern fn SSL_set_srtp_profiles(ssl: ?*SSL, profiles: [*c]const u8) c_int; -pub extern fn SSL_get_srtp_profiles(ssl: ?*const SSL) ?*const struct_stack_st_SRTP_PROTECTION_PROFILE; -pub extern fn SSL_get_selected_srtp_profile(ssl: ?*SSL) [*c]const SRTP_PROTECTION_PROFILE; +// pub extern fn SSL_CTX_set_srtp_profiles(ctx: ?*SSL_CTX, profiles: [*c]const u8) c_int; +// pub extern fn SSL_set_srtp_profiles(ssl: ?*SSL, profiles: [*c]const u8) c_int; +// pub extern fn SSL_get_srtp_profiles(ssl: ?*const SSL) ?*const struct_stack_st_SRTP_PROTECTION_PROFILE; +// pub extern fn SSL_get_selected_srtp_profile(ssl: ?*SSL) [*c]const SRTP_PROTECTION_PROFILE; pub extern fn SSL_CTX_set_psk_client_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c]const u8, [*c]u8, c_uint, [*c]u8, c_uint) callconv(.C) c_uint) void; pub extern fn SSL_set_psk_client_callback(ssl: ?*SSL, cb: ?*const fn (?*SSL, [*c]const u8, [*c]u8, c_uint, [*c]u8, c_uint) callconv(.C) c_uint) void; pub extern fn SSL_CTX_set_psk_server_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, [*c]const u8, [*c]u8, c_uint) callconv(.C) c_uint) void; @@ -5818,22 +5673,22 @@ pub extern fn SSL_alert_desc_string_long(value: c_int) [*c]const u8; pub extern fn SSL_send_fatal_alert(ssl: ?*SSL, alert: u8) c_int; pub extern fn SSL_set_ex_data(ssl: ?*SSL, idx: c_int, data: ?*anyopaque) c_int; pub extern fn SSL_get_ex_data(ssl: ?*const SSL, idx: c_int) ?*anyopaque; -pub extern fn SSL_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?CRYPTO_EX_dup, free_func: ?CRYPTO_EX_free) c_int; +pub extern fn SSL_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?*const CRYPTO_EX_dup, free_func: ?*const CRYPTO_EX_free) c_int; pub extern fn SSL_SESSION_set_ex_data(session: ?*SSL_SESSION, idx: c_int, data: ?*anyopaque) c_int; pub extern fn SSL_SESSION_get_ex_data(session: ?*const SSL_SESSION, idx: c_int) ?*anyopaque; -pub extern fn SSL_SESSION_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?CRYPTO_EX_dup, free_func: ?CRYPTO_EX_free) c_int; +pub extern fn SSL_SESSION_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?*const CRYPTO_EX_dup, free_func: ?*const CRYPTO_EX_free) c_int; pub extern fn SSL_CTX_set_ex_data(ctx: ?*SSL_CTX, idx: c_int, data: ?*anyopaque) c_int; pub extern fn SSL_CTX_get_ex_data(ctx: ?*const SSL_CTX, idx: c_int) ?*anyopaque; -pub extern fn SSL_CTX_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?CRYPTO_EX_dup, free_func: ?CRYPTO_EX_free) c_int; +pub extern fn SSL_CTX_get_ex_new_index(argl: c_long, argp: ?*anyopaque, unused: [*c]CRYPTO_EX_unused, dup_unused: ?*const CRYPTO_EX_dup, free_func: ?*const CRYPTO_EX_free) c_int; pub extern fn SSL_get_ivs(ssl: ?*const SSL, out_read_iv: [*c][*c]const u8, out_write_iv: [*c][*c]const u8, out_iv_len: [*c]usize) c_int; pub extern fn SSL_get_key_block_len(ssl: ?*const SSL) usize; pub extern fn SSL_generate_key_block(ssl: ?*const SSL, out: [*c]u8, out_len: usize) c_int; pub extern fn SSL_get_read_sequence(ssl: ?*const SSL) u64; pub extern fn SSL_get_write_sequence(ssl: ?*const SSL) u64; pub extern fn SSL_CTX_set_record_protocol_version(ctx: ?*SSL_CTX, version: c_int) c_int; -pub extern fn SSL_serialize_capabilities(ssl: ?*const SSL, out: [*c]CBB) c_int; +pub extern fn SSL_serialize_capabilities(ssl: ?*const SSL, out: ?*CBB) c_int; pub extern fn SSL_request_handshake_hints(ssl: ?*SSL, client_hello: [*c]const u8, client_hello_len: usize, capabilities: [*c]const u8, capabilities_len: usize) c_int; -pub extern fn SSL_serialize_handshake_hints(ssl: ?*const SSL, out: [*c]CBB) c_int; +pub extern fn SSL_serialize_handshake_hints(ssl: ?*const SSL, out: ?*CBB) c_int; pub extern fn SSL_set_handshake_hints(ssl: ?*SSL, hints: [*c]const u8, hints_len: usize) c_int; pub extern fn SSL_CTX_set_msg_callback(ctx: ?*SSL_CTX, cb: ?*const fn (c_int, c_int, c_int, ?*const anyopaque, usize, ?*SSL, ?*anyopaque) callconv(.C) void) void; pub extern fn SSL_CTX_set_msg_callback_arg(ctx: ?*SSL_CTX, arg: ?*anyopaque) void; @@ -5868,6 +5723,7 @@ pub extern fn SSL_CTX_set_select_certificate_cb(ctx: ?*SSL_CTX, cb: ?*const fn ( pub extern fn SSL_CTX_set_dos_protection_cb(ctx: ?*SSL_CTX, cb: ?*const fn ([*c]const SSL_CLIENT_HELLO) callconv(.C) c_int) void; pub extern fn SSL_CTX_set_reverify_on_resume(ctx: ?*SSL_CTX, enabled: c_int) void; pub extern fn SSL_set_enforce_rsa_key_usage(ssl: ?*SSL, enabled: c_int) void; +pub extern fn SSL_was_key_usage_invalid(ssl: ?*const SSL) c_int; pub extern fn SSL_CTX_set_info_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*const SSL, c_int, c_int) callconv(.C) void) void; pub extern fn SSL_CTX_get_info_callback(ctx: ?*SSL_CTX) ?*const fn (?*const SSL, c_int, c_int) callconv(.C) void; pub extern fn SSL_set_info_callback(ssl: ?*SSL, cb: ?*const fn (?*const SSL, c_int, c_int) callconv(.C) void) void; @@ -5960,132 +5816,132 @@ pub extern fn i2d_SSL_SESSION_bio(bio: [*c]BIO, session: ?*const SSL_SESSION) c_ pub extern fn d2i_SSL_SESSION_bio(bio: [*c]BIO, out: [*c]?*SSL_SESSION) ?*SSL_SESSION; pub extern fn ERR_load_SSL_strings() void; pub extern fn SSL_load_error_strings() void; -pub extern fn SSL_CTX_set_tlsext_use_srtp(ctx: ?*SSL_CTX, profiles: [*c]const u8) c_int; -pub extern fn SSL_set_tlsext_use_srtp(ssl: ?*SSL, profiles: [*c]const u8) c_int; +// pub extern fn SSL_CTX_set_tlsext_use_srtp(ctx: ?*SSL_CTX, profiles: [*c]const u8) c_int; +// pub extern fn SSL_set_tlsext_use_srtp(ssl: ?*SSL, profiles: [*c]const u8) c_int; pub extern fn SSL_get_current_compression(ssl: ?*SSL) ?*const COMP_METHOD; pub extern fn SSL_get_current_expansion(ssl: ?*SSL) ?*const COMP_METHOD; pub extern fn SSL_get_server_tmp_key(ssl: ?*SSL, out_key: [*c][*c]EVP_PKEY) c_int; -pub extern fn SSL_CTX_set_tmp_dh(ctx: ?*SSL_CTX, dh: [*c]const DH) c_int; -pub extern fn SSL_set_tmp_dh(ssl: ?*SSL, dh: [*c]const DH) c_int; -pub extern fn SSL_CTX_set_tmp_dh_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, c_int, c_int) callconv(.C) [*c]DH) void; -pub extern fn SSL_set_tmp_dh_callback(ssl: ?*SSL, cb: ?*const fn (?*SSL, c_int, c_int) callconv(.C) [*c]DH) void; +pub extern fn SSL_CTX_set_tmp_dh(ctx: ?*SSL_CTX, dh: ?*const DH) c_int; +pub extern fn SSL_set_tmp_dh(ssl: ?*SSL, dh: ?*const DH) c_int; +pub extern fn SSL_CTX_set_tmp_dh_callback(ctx: ?*SSL_CTX, cb: ?*const fn (?*SSL, c_int, c_int) callconv(.C) ?*DH) void; +pub extern fn SSL_set_tmp_dh_callback(ssl: ?*SSL, cb: ?*const fn (?*SSL, c_int, c_int) callconv(.C) ?*DH) void; pub extern fn SSL_CTX_set1_sigalgs(ctx: ?*SSL_CTX, values: [*c]const c_int, num_values: usize) c_int; pub extern fn SSL_set1_sigalgs(ssl: ?*SSL, values: [*c]const c_int, num_values: usize) c_int; pub extern fn SSL_CTX_set1_sigalgs_list(ctx: ?*SSL_CTX, str: [*c]const u8) c_int; pub extern fn SSL_set1_sigalgs_list(ssl: ?*SSL, str: [*c]const u8) c_int; -pub const stack_SSL_COMP_free_func = ?*const fn ([*c]SSL_COMP) callconv(.C) void; -pub const stack_SSL_COMP_copy_func = ?*const fn ([*c]SSL_COMP) callconv(.C) [*c]SSL_COMP; -pub const stack_SSL_COMP_cmp_func = ?*const fn ([*c][*c]const SSL_COMP, [*c][*c]const SSL_COMP) callconv(.C) c_int; -pub fn sk_SSL_COMP_call_free_func(arg_free_func: stack_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { +pub const sk_SSL_COMP_free_func = ?*const fn ([*c]SSL_COMP) callconv(.C) void; +pub const sk_SSL_COMP_copy_func = ?*const fn ([*c]SSL_COMP) callconv(.C) [*c]SSL_COMP; +pub const sk_SSL_COMP_cmp_func = ?*const fn ([*c][*c]const SSL_COMP, [*c][*c]const SSL_COMP) callconv(.C) c_int; +pub fn sk_SSL_COMP_call_free_func(arg_free_func: OPENSSL_sk_free_func, arg_ptr: ?*anyopaque) callconv(.C) void { var free_func = arg_free_func; var ptr = arg_ptr; - @ptrCast(stack_SSL_COMP_free_func, @alignCast(@import("std").meta.alignment(fn ([*c]SSL_COMP) callconv(.C) void), free_func)).?(@ptrCast([*c]SSL_COMP, @alignCast(@import("std").meta.alignment(SSL_COMP), ptr))); + @as(sk_SSL_COMP_free_func, @ptrCast(@alignCast(free_func))).?(@as([*c]SSL_COMP, @ptrCast(@alignCast(ptr)))); } -pub fn sk_SSL_COMP_call_copy_func(arg_copy_func: stack_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { +pub fn sk_SSL_COMP_call_copy_func(arg_copy_func: OPENSSL_sk_copy_func, arg_ptr: ?*anyopaque) callconv(.C) ?*anyopaque { var copy_func = arg_copy_func; var ptr = arg_ptr; - return @ptrCast(?*anyopaque, @ptrCast(stack_SSL_COMP_copy_func, @alignCast(@import("std").meta.alignment(fn ([*c]SSL_COMP) callconv(.C) [*c]SSL_COMP), copy_func)).?(@ptrCast([*c]SSL_COMP, @alignCast(@import("std").meta.alignment(SSL_COMP), ptr)))); + return @as(?*anyopaque, @ptrCast(@as(sk_SSL_COMP_copy_func, @ptrCast(@alignCast(copy_func))).?(@as([*c]SSL_COMP, @ptrCast(@alignCast(ptr)))))); } -pub fn sk_SSL_COMP_call_cmp_func(arg_cmp_func: stack_cmp_func, arg_a: [*c]?*const anyopaque, arg_b: [*c]?*const anyopaque) callconv(.C) c_int { +pub fn sk_SSL_COMP_call_cmp_func(arg_cmp_func: OPENSSL_sk_cmp_func, arg_a: [*c]const ?*const anyopaque, arg_b: [*c]const ?*const anyopaque) callconv(.C) c_int { var cmp_func = arg_cmp_func; var a = arg_a; var b = arg_b; - var a_ptr: [*c]const SSL_COMP = @ptrCast([*c]const SSL_COMP, @alignCast(@import("std").meta.alignment(SSL_COMP), a.*)); - var b_ptr: [*c]const SSL_COMP = @ptrCast([*c]const SSL_COMP, @alignCast(@import("std").meta.alignment(SSL_COMP), b.*)); - return @ptrCast(stack_SSL_COMP_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const SSL_COMP, [*c][*c]const SSL_COMP) callconv(.C) c_int), cmp_func)).?(&a_ptr, &b_ptr); + var a_ptr: [*c]const SSL_COMP = @as([*c]const SSL_COMP, @ptrCast(@alignCast(a.*))); + var b_ptr: [*c]const SSL_COMP = @as([*c]const SSL_COMP, @ptrCast(@alignCast(b.*))); + return @as(sk_SSL_COMP_cmp_func, @ptrCast(@alignCast(cmp_func))).?(&a_ptr, &b_ptr); } -pub fn sk_SSL_COMP_new(arg_comp: stack_SSL_COMP_cmp_func) callconv(.C) ?*struct_stack_st_SSL_COMP { +pub fn sk_SSL_COMP_new(arg_comp: sk_SSL_COMP_cmp_func) callconv(.C) ?*struct_stack_st_SSL_COMP { var comp = arg_comp; - return @ptrCast(?*struct_stack_st_SSL_COMP, sk_new(@ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp)))); + return @as(?*struct_stack_st_SSL_COMP, @ptrCast(sk_new(@as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp)))))); } pub fn sk_SSL_COMP_new_null() callconv(.C) ?*struct_stack_st_SSL_COMP { - return @ptrCast(?*struct_stack_st_SSL_COMP, sk_new_null()); + return @as(?*struct_stack_st_SSL_COMP, @ptrCast(sk_new_null())); } pub fn sk_SSL_COMP_num(arg_sk: ?*const struct_stack_st_SSL_COMP) callconv(.C) usize { var sk = arg_sk; - return sk_num(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_num(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_SSL_COMP_zero(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.C) void { var sk = arg_sk; - sk_zero(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_zero(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } pub fn sk_SSL_COMP_value(arg_sk: ?*const struct_stack_st_SSL_COMP, arg_i: usize) callconv(.C) [*c]SSL_COMP { var sk = arg_sk; var i = arg_i; - return @ptrCast([*c]SSL_COMP, @alignCast(@import("std").meta.alignment(SSL_COMP), sk_value(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i))); + return @as([*c]SSL_COMP, @ptrCast(@alignCast(sk_value(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), i)))); } pub fn sk_SSL_COMP_set(arg_sk: ?*struct_stack_st_SSL_COMP, arg_i: usize, arg_p: [*c]SSL_COMP) callconv(.C) [*c]SSL_COMP { var sk = arg_sk; var i = arg_i; var p = arg_p; - return @ptrCast([*c]SSL_COMP, @alignCast(@import("std").meta.alignment(SSL_COMP), sk_set(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), i, @ptrCast(?*anyopaque, p)))); + return @as([*c]SSL_COMP, @ptrCast(@alignCast(sk_set(@as([*c]_STACK, @ptrCast(@alignCast(sk))), i, @as(?*anyopaque, @ptrCast(p)))))); } pub fn sk_SSL_COMP_free(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.C) void { var sk = arg_sk; - sk_free(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_free(@as([*c]_STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SSL_COMP_pop_free(arg_sk: ?*struct_stack_st_SSL_COMP, arg_free_func: stack_SSL_COMP_free_func) callconv(.C) void { +pub fn sk_SSL_COMP_pop_free(arg_sk: ?*struct_stack_st_SSL_COMP, arg_free_func: sk_SSL_COMP_free_func) callconv(.C) void { var sk = arg_sk; var free_func = arg_free_func; - sk_pop_free_ex(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_SSL_COMP_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func))); + sk_pop_free_ex(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_SSL_COMP_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))); } pub fn sk_SSL_COMP_insert(arg_sk: ?*struct_stack_st_SSL_COMP, arg_p: [*c]SSL_COMP, arg_where: usize) callconv(.C) usize { var sk = arg_sk; var p = arg_p; var where = arg_where; - return sk_insert(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p), where); + return sk_insert(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p)), where); } pub fn sk_SSL_COMP_delete(arg_sk: ?*struct_stack_st_SSL_COMP, arg_where: usize) callconv(.C) [*c]SSL_COMP { var sk = arg_sk; var where = arg_where; - return @ptrCast([*c]SSL_COMP, @alignCast(@import("std").meta.alignment(SSL_COMP), sk_delete(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), where))); + return @as([*c]SSL_COMP, @ptrCast(@alignCast(sk_delete(@as([*c]_STACK, @ptrCast(@alignCast(sk))), where)))); } pub fn sk_SSL_COMP_delete_ptr(arg_sk: ?*struct_stack_st_SSL_COMP, arg_p: [*c]const SSL_COMP) callconv(.C) [*c]SSL_COMP { var sk = arg_sk; var p = arg_p; - return @ptrCast([*c]SSL_COMP, @alignCast(@import("std").meta.alignment(SSL_COMP), sk_delete_ptr(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*const anyopaque, p)))); + return @as([*c]SSL_COMP, @ptrCast(@alignCast(sk_delete_ptr(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*const anyopaque, @ptrCast(p)))))); } pub fn sk_SSL_COMP_find(arg_sk: ?*const struct_stack_st_SSL_COMP, arg_out_index: [*c]usize, arg_p: [*c]const SSL_COMP) callconv(.C) c_int { var sk = arg_sk; var out_index = arg_out_index; var p = arg_p; - return sk_find(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), out_index, @ptrCast(?*const anyopaque, p), sk_SSL_COMP_call_cmp_func); + return sk_find(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), out_index, @as(?*const anyopaque, @ptrCast(p)), &sk_SSL_COMP_call_cmp_func); } pub fn sk_SSL_COMP_shift(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.C) [*c]SSL_COMP { var sk = arg_sk; - return @ptrCast([*c]SSL_COMP, @alignCast(@import("std").meta.alignment(SSL_COMP), sk_shift(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]SSL_COMP, @ptrCast(@alignCast(sk_shift(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_SSL_COMP_push(arg_sk: ?*struct_stack_st_SSL_COMP, arg_p: [*c]SSL_COMP) callconv(.C) usize { var sk = arg_sk; var p = arg_p; - return sk_push(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(?*anyopaque, p)); + return sk_push(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(?*anyopaque, @ptrCast(p))); } pub fn sk_SSL_COMP_pop(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.C) [*c]SSL_COMP { var sk = arg_sk; - return @ptrCast([*c]SSL_COMP, @alignCast(@import("std").meta.alignment(SSL_COMP), sk_pop(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))))); + return @as([*c]SSL_COMP, @ptrCast(@alignCast(sk_pop(@as([*c]_STACK, @ptrCast(@alignCast(sk))))))); } pub fn sk_SSL_COMP_dup(arg_sk: ?*const struct_stack_st_SSL_COMP) callconv(.C) ?*struct_stack_st_SSL_COMP { var sk = arg_sk; - return @ptrCast(?*struct_stack_st_SSL_COMP, sk_dup(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)))); + return @as(?*struct_stack_st_SSL_COMP, @ptrCast(sk_dup(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))))); } pub fn sk_SSL_COMP_sort(arg_sk: ?*struct_stack_st_SSL_COMP) callconv(.C) void { var sk = arg_sk; - sk_sort(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + sk_sort(@as([*c]_STACK, @ptrCast(@alignCast(sk))), &sk_SSL_COMP_call_cmp_func); } pub fn sk_SSL_COMP_is_sorted(arg_sk: ?*const struct_stack_st_SSL_COMP) callconv(.C) c_int { var sk = arg_sk; - return sk_is_sorted(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk))); + return sk_is_sorted(@as([*c]const _STACK, @ptrCast(@alignCast(sk)))); } -pub fn sk_SSL_COMP_set_cmp_func(arg_sk: ?*struct_stack_st_SSL_COMP, arg_comp: stack_SSL_COMP_cmp_func) callconv(.C) stack_SSL_COMP_cmp_func { +pub fn sk_SSL_COMP_set_cmp_func(arg_sk: ?*struct_stack_st_SSL_COMP, arg_comp: sk_SSL_COMP_cmp_func) callconv(.C) sk_SSL_COMP_cmp_func { var sk = arg_sk; var comp = arg_comp; - return @ptrCast(stack_SSL_COMP_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c][*c]const SSL_COMP, [*c][*c]const SSL_COMP) callconv(.C) c_int), sk_set_cmp_func(@ptrCast([*c]_STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), @ptrCast(stack_cmp_func, @alignCast(@import("std").meta.alignment(fn ([*c]?*const anyopaque, [*c]?*const anyopaque) callconv(.C) c_int), comp))))); + return @as(sk_SSL_COMP_cmp_func, @ptrCast(@alignCast(sk_set_cmp_func(@as([*c]_STACK, @ptrCast(@alignCast(sk))), @as(OPENSSL_sk_cmp_func, @ptrCast(@alignCast(comp))))))); } -pub fn sk_SSL_COMP_deep_copy(arg_sk: ?*const struct_stack_st_SSL_COMP, arg_copy_func: ?*const fn ([*c]SSL_COMP) callconv(.C) [*c]SSL_COMP, arg_free_func: ?*const fn ([*c]SSL_COMP) callconv(.C) void) callconv(.C) ?*struct_stack_st_SSL_COMP { +pub fn sk_SSL_COMP_deep_copy(arg_sk: ?*const struct_stack_st_SSL_COMP, arg_copy_func: sk_SSL_COMP_copy_func, arg_free_func: sk_SSL_COMP_free_func) callconv(.C) ?*struct_stack_st_SSL_COMP { var sk = arg_sk; var copy_func = arg_copy_func; var free_func = arg_free_func; - return @ptrCast(?*struct_stack_st_SSL_COMP, sk_deep_copy(@ptrCast([*c]const _STACK, @alignCast(@import("std").meta.alignment(_STACK), sk)), sk_SSL_COMP_call_copy_func, @ptrCast(stack_copy_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) ?*anyopaque), copy_func)), sk_SSL_COMP_call_free_func, @ptrCast(stack_free_func, @alignCast(@import("std").meta.alignment(fn (?*anyopaque) callconv(.C) void), free_func)))); + return @as(?*struct_stack_st_SSL_COMP, @ptrCast(sk_deep_copy(@as([*c]const _STACK, @ptrCast(@alignCast(sk))), &sk_SSL_COMP_call_copy_func, @as(OPENSSL_sk_copy_func, @ptrCast(@alignCast(copy_func))), &sk_SSL_COMP_call_free_func, @as(OPENSSL_sk_free_func, @ptrCast(@alignCast(free_func)))))); } pub extern fn SSL_cache_hit(ssl: ?*SSL) c_int; pub extern fn SSL_get_default_timeout(ssl: ?*const SSL) c_long; @@ -6119,9 +5975,119 @@ pub extern fn SSL_get_tlsext_status_ocsp_resp(ssl: ?*const SSL, out: [*c][*c]con pub extern fn SSL_CTX_set_tlsext_status_cb(ctx: ?*SSL_CTX, callback: ?*const fn (?*SSL, ?*anyopaque) callconv(.C) c_int) c_int; pub extern fn SSL_CTX_set_tlsext_status_arg(ctx: ?*SSL_CTX, arg: ?*anyopaque) c_int; pub extern fn SSL_CIPHER_get_value(cipher: ?*const SSL_CIPHER) u16; +pub const ssl_compliance_policy_fips_202205: c_int = 0; +pub const enum_ssl_compliance_policy_t = c_uint; +pub extern fn SSL_CTX_set_compliance_policy(ctx: ?*SSL_CTX, policy: enum_ssl_compliance_policy_t) c_int; +pub extern fn SSL_set_compliance_policy(ssl: ?*SSL, policy: enum_ssl_compliance_policy_t) c_int; +pub const OPENSSL_HEADER_OPENSSLCONF_H = ""; +pub const OPENSSL_NO_ASYNC = ""; +pub const OPENSSL_NO_BF = ""; +pub const OPENSSL_NO_BLAKE2 = ""; +pub const OPENSSL_NO_BUF_FREELISTS = ""; +pub const OPENSSL_NO_CAMELLIA = ""; +pub const OPENSSL_NO_CAPIENG = ""; +pub const OPENSSL_NO_CAST = ""; +pub const OPENSSL_NO_CMS = ""; +pub const OPENSSL_NO_COMP = ""; +pub const OPENSSL_NO_CT = ""; +pub const OPENSSL_NO_DANE = ""; +pub const OPENSSL_NO_DEPRECATED = ""; +pub const OPENSSL_NO_DGRAM = ""; +pub const OPENSSL_NO_DYNAMIC_ENGINE = ""; +pub const OPENSSL_NO_EC_NISTP_64_GCC_128 = ""; +pub const OPENSSL_NO_EC2M = ""; +pub const OPENSSL_NO_EGD = ""; +pub const OPENSSL_NO_ENGINE = ""; +pub const OPENSSL_NO_GMP = ""; +pub const OPENSSL_NO_GOST = ""; +pub const OPENSSL_NO_HEARTBEATS = ""; +pub const OPENSSL_NO_HW = ""; +pub const OPENSSL_NO_IDEA = ""; +pub const OPENSSL_NO_JPAKE = ""; +pub const OPENSSL_NO_KRB5 = ""; +pub const OPENSSL_NO_MD2 = ""; +pub const OPENSSL_NO_MDC2 = ""; +pub const OPENSSL_NO_OCB = ""; +pub const OPENSSL_NO_OCSP = ""; +pub const OPENSSL_NO_RC2 = ""; +pub const OPENSSL_NO_RC5 = ""; +pub const OPENSSL_NO_RFC3779 = ""; +pub const OPENSSL_NO_RIPEMD = ""; +pub const OPENSSL_NO_RMD160 = ""; +pub const OPENSSL_NO_SCTP = ""; +pub const OPENSSL_NO_SEED = ""; +pub const OPENSSL_NO_SM2 = ""; +pub const OPENSSL_NO_SM3 = ""; +pub const OPENSSL_NO_SM4 = ""; +pub const OPENSSL_NO_SRP = ""; +pub const OPENSSL_NO_SSL_TRACE = ""; +pub const OPENSSL_NO_SSL2 = ""; +pub const OPENSSL_NO_SSL3 = ""; +pub const OPENSSL_NO_SSL3_METHOD = ""; +pub const OPENSSL_NO_STATIC_ENGINE = ""; +pub const OPENSSL_NO_STORE = ""; +pub const OPENSSL_NO_WHIRLPOOL = ""; +pub const OPENSSL_64_BIT = ""; +pub const OPENSSL_AARCH64 = ""; +pub const OPENSSL_APPLE = ""; +pub const OPENSSL_MACOS = ""; +pub const OPENSSL_THREADS = ""; +pub const OPENSSL_IS_BORINGSSL = ""; pub const OPENSSL_VERSION_NUMBER = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x1010107f, .hexadecimal); pub const SSLEAY_VERSION_NUMBER = OPENSSL_VERSION_NUMBER; -pub const BORINGSSL_API_VERSION = @as(c_int, 16); +pub const BORINGSSL_API_VERSION = @as(c_int, 18); +pub const OPENSSL_EXPORT = ""; +pub const BORINGSSL_ENUM_INT = ""; +pub const BORINGSSL_NO_CXX = ""; +pub const OPENSSL_HEADER_BIO_H = ""; +pub const _STDIO_H_ = ""; +pub const __STDIO_H_ = ""; +pub const __TYPES_H_ = ""; +pub const _FORTIFY_SOURCE = @as(c_int, 2); +pub const _VA_LIST_T = ""; +pub const _SYS_STDIO_H_ = ""; +pub const RENAME_SECLUDE = @as(c_int, 0x00000001); +pub const RENAME_SWAP = @as(c_int, 0x00000002); +pub const RENAME_EXCL = @as(c_int, 0x00000004); +pub const RENAME_RESERVED1 = @as(c_int, 0x00000008); +pub const RENAME_NOFOLLOW_ANY = @as(c_int, 0x00000010); +pub const _FSTDIO = ""; +pub const __SLBF = @as(c_int, 0x0001); +pub const __SNBF = @as(c_int, 0x0002); +pub const __SRD = @as(c_int, 0x0004); +pub const __SWR = @as(c_int, 0x0008); +pub const __SRW = @as(c_int, 0x0010); +pub const __SEOF = @as(c_int, 0x0020); +pub const __SERR = @as(c_int, 0x0040); +pub const __SMBF = @as(c_int, 0x0080); +pub const __SAPP = @as(c_int, 0x0100); +pub const __SSTR = @as(c_int, 0x0200); +pub const __SOPT = @as(c_int, 0x0400); +pub const __SNPT = @as(c_int, 0x0800); +pub const __SOFF = @as(c_int, 0x1000); +pub const __SMOD = @as(c_int, 0x2000); +pub const __SALC = @as(c_int, 0x4000); +pub const __SIGN = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x8000, .hexadecimal); +pub const _IOFBF = @as(c_int, 0); +pub const _IOLBF = @as(c_int, 1); +pub const _IONBF = @as(c_int, 2); +pub const BUFSIZ = @as(c_int, 1024); +pub const EOF = -@as(c_int, 1); +pub const FOPEN_MAX = @as(c_int, 20); +pub const FILENAME_MAX = @as(c_int, 1024); +pub const P_tmpdir = "/var/tmp/"; +pub const L_tmpnam = @as(c_int, 1024); +pub const TMP_MAX = @import("std").zig.c_translation.promoteIntLiteral(c_int, 308915776, .decimal); +pub const SEEK_SET = @as(c_int, 0); +pub const SEEK_CUR = @as(c_int, 1); +pub const SEEK_END = @as(c_int, 2); +pub const L_ctermid = @as(c_int, 1024); +pub const _CTERMID_H_ = ""; +pub const _SECURE__STDIO_H_ = ""; +pub const _SECURE__COMMON_H_ = ""; +pub const _USE_FORTIFY_LEVEL = @as(c_int, 2); +pub const OPENSSL_HEADER_BUFFER_H = ""; +pub const OPENSSL_HEADER_ERR_H = ""; pub inline fn ERR_GET_LIB(packed_error: anytype) c_int { return @import("std").zig.c_translation.cast(c_int, (packed_error >> @as(c_int, 24)) & @as(c_int, 0xff)); } @@ -6129,6 +6095,7 @@ pub inline fn ERR_GET_REASON(packed_error: anytype) c_int { return @import("std").zig.c_translation.cast(c_int, packed_error & @as(c_int, 0xfff)); } pub const ERR_FLAG_STRING = @as(c_int, 1); +pub const ERR_FLAG_MALLOCED = @as(c_int, 2); pub const ERR_R_SYS_LIB = ERR_LIB_SYS; pub const ERR_R_BN_LIB = ERR_LIB_BN; pub const ERR_R_RSA_LIB = ERR_LIB_RSA; @@ -6149,19 +6116,13 @@ pub const ERR_R_PKCS7_LIB = ERR_LIB_PKCS7; pub const ERR_R_PKCS8_LIB = ERR_LIB_PKCS8; pub const ERR_R_X509V3_LIB = ERR_LIB_X509V3; pub const ERR_R_RAND_LIB = ERR_LIB_RAND; -pub const ERR_R_DSO_LIB = ERR_LIB_DSO; pub const ERR_R_ENGINE_LIB = ERR_LIB_ENGINE; pub const ERR_R_OCSP_LIB = ERR_LIB_OCSP; pub const ERR_R_UI_LIB = ERR_LIB_UI; pub const ERR_R_COMP_LIB = ERR_LIB_COMP; pub const ERR_R_ECDSA_LIB = ERR_LIB_ECDSA; pub const ERR_R_ECDH_LIB = ERR_LIB_ECDH; -pub const ERR_R_STORE_LIB = ERR_LIB_STORE; -pub const ERR_R_FIPS_LIB = ERR_LIB_FIPS; -pub const ERR_R_CMS_LIB = ERR_LIB_CMS; -pub const ERR_R_TS_LIB = ERR_LIB_TS; pub const ERR_R_HMAC_LIB = ERR_LIB_HMAC; -pub const ERR_R_JPAKE_LIB = ERR_LIB_JPAKE; pub const ERR_R_USER_LIB = ERR_LIB_USER; pub const ERR_R_DIGEST_LIB = ERR_LIB_DIGEST; pub const ERR_R_CIPHER_LIB = ERR_LIB_CIPHER; @@ -6175,17 +6136,21 @@ pub const ERR_R_INTERNAL_ERROR = @as(c_int, 4) | ERR_R_FATAL; pub const ERR_R_OVERFLOW = @as(c_int, 5) | ERR_R_FATAL; pub const ERR_ERROR_STRING_BUF_LEN = @as(c_int, 120); pub inline fn ERR_GET_FUNC(packed_error: anytype) @TypeOf(@as(c_int, 0)) { - _ = packed_error; + _ = @TypeOf(packed_error); return @as(c_int, 0); } pub const ERR_TXT_STRING = ERR_FLAG_STRING; +pub const ERR_TXT_MALLOCED = ERR_FLAG_MALLOCED; pub const ERR_NUM_ERRORS = @as(c_int, 16); pub inline fn ERR_PACK(lib: anytype, reason: anytype) @TypeOf(((@import("std").zig.c_translation.cast(u32, lib) & @as(c_int, 0xff)) << @as(c_int, 24)) | (@import("std").zig.c_translation.cast(u32, reason) & @as(c_int, 0xfff))) { return ((@import("std").zig.c_translation.cast(u32, lib) & @as(c_int, 0xff)) << @as(c_int, 24)) | (@import("std").zig.c_translation.cast(u32, reason) & @as(c_int, 0xfff)); } +pub const OPENSSL_HEADER_EX_DATA_H = ""; +pub const OPENSSL_HEADER_STACK_H = ""; pub inline fn DEFINE_STACK_OF(@"type": anytype) @TypeOf(DEFINE_NAMED_STACK_OF(@"type", @"type")) { return DEFINE_NAMED_STACK_OF(@"type", @"type"); } +pub const OPENSSL_HEADER_THREAD_H = ""; pub const CRYPTO_LOCK = @as(c_int, 1); pub const CRYPTO_UNLOCK = @as(c_int, 2); pub const CRYPTO_READ = @as(c_int, 4); @@ -6325,6 +6290,9 @@ pub const BIO_R_UNABLE_TO_CREATE_SOCKET = @as(c_int, 113); pub const BIO_R_UNINITIALIZED = @as(c_int, 114); pub const BIO_R_UNSUPPORTED_METHOD = @as(c_int, 115); pub const BIO_R_WRITE_TO_READ_ONLY_BIO = @as(c_int, 116); +pub const OPENSSL_HEADER_PEM_H = ""; +pub const OPENSSL_HEADER_BASE64_H = ""; +pub const OPENSSL_HEADER_CIPHER_H = ""; pub const EVP_CIPH_STREAM_CIPHER = @as(c_int, 0x0); pub const EVP_CIPH_ECB_MODE = @as(c_int, 0x1); pub const EVP_CIPH_CBC_MODE = @as(c_int, 0x2); @@ -6398,6 +6366,7 @@ pub const CIPHER_R_UNSUPPORTED_TAG_SIZE = @as(c_int, 122); pub const CIPHER_R_WRONG_FINAL_BLOCK_LENGTH = @as(c_int, 123); pub const CIPHER_R_NO_DIRECTION_SET = @as(c_int, 124); pub const CIPHER_R_INVALID_NONCE = @as(c_int, 125); +pub const OPENSSL_HEADER_DIGEST_H = ""; pub const EVP_MAX_MD_SIZE = @as(c_int, 64); pub const EVP_MAX_MD_BLOCK_SIZE = @as(c_int, 128); pub const EVP_MD_FLAG_PKEY_DIGEST = @as(c_int, 1); @@ -6407,6 +6376,8 @@ pub const EVP_MD_CTX_FLAG_NON_FIPS_ALLOW = @as(c_int, 0); pub const DIGEST_R_INPUT_NOT_INITIALIZED = @as(c_int, 100); pub const DIGEST_R_DECODE_ERROR = @as(c_int, 101); pub const DIGEST_R_UNKNOWN_HASH = @as(c_int, 102); +pub const OPENSSL_HEADER_EVP_H = ""; +pub const OPENSSL_HEADER_EVP_ERRORS_H = ""; pub const EVP_R_BUFFER_TOO_SMALL = @as(c_int, 100); pub const EVP_R_COMMAND_NOT_SUPPORTED = @as(c_int, 101); pub const EVP_R_DECODE_ERROR = @as(c_int, 102); @@ -6445,10 +6416,12 @@ pub const EVP_R_INVALID_PEER_KEY = @as(c_int, 134); pub const EVP_R_NOT_XOF_OR_INVALID_LENGTH = @as(c_int, 135); pub const EVP_R_EMPTY_PSK = @as(c_int, 136); pub const EVP_R_INVALID_BUFFER_SIZE = @as(c_int, 137); +pub const OPENSSL_HEADER_AEAD_H = ""; pub const EVP_AEAD_MAX_KEY_LENGTH = @as(c_int, 80); pub const EVP_AEAD_MAX_NONCE_LENGTH = @as(c_int, 24); pub const EVP_AEAD_MAX_OVERHEAD = @as(c_int, 64); pub const EVP_AEAD_DEFAULT_TAG_LENGTH = @as(c_int, 0); +pub const OPENSSL_HEADER_NID_H = ""; pub const SN_undef = "UNDEF"; pub const LN_undef = "undefined"; pub const NID_undef = @as(c_int, 0); @@ -16472,11 +16445,9 @@ pub const OBJ_sha512_256 = blk: { _ = @as(c_long, 2); break :blk @as(c_long, 6); }; - -pub const NID_id_on_SmtpUTF8Mailbox = @as(c_int, 1208); -pub const NID_XmppAddr = @as(c_int, 1209); -pub const NID_SRVName = @as(c_int, 1210); -pub const NID_NAIRealm = @as(c_int, 1211); +pub const SN_hkdf = "HKDF"; +pub const LN_hkdf = "hkdf"; +pub const NID_hkdf = @as(c_int, 963); pub const EVP_PKEY_NONE = NID_undef; pub const EVP_PKEY_RSA = NID_rsaEncryption; pub const EVP_PKEY_RSA_PSS = NID_rsassaPss; @@ -16484,10 +16455,12 @@ pub const EVP_PKEY_DSA = NID_dsa; pub const EVP_PKEY_EC = NID_X9_62_id_ecPublicKey; pub const EVP_PKEY_ED25519 = NID_ED25519; pub const EVP_PKEY_X25519 = NID_X25519; +pub const EVP_PKEY_HKDF = NID_hkdf; pub const EVP_PKEY_DH = NID_dhKeyAgreement; pub const EVP_PKEY_RSA2 = NID_rsa; pub const EVP_PKEY_X448 = NID_X448; pub const EVP_PKEY_ED448 = NID_ED448; +pub const OPENSSL_HEADER_PKCS7_H = ""; pub const PKCS7_DETACHED = @as(c_int, 0x40); pub const PKCS7_TEXT = @as(c_int, 0x1); pub const PKCS7_NOCERTS = @as(c_int, 0x2); @@ -16504,17 +16477,11 @@ pub const PKCS7_R_BAD_PKCS7_VERSION = @as(c_int, 100); pub const PKCS7_R_NOT_PKCS7_SIGNED_DATA = @as(c_int, 101); pub const PKCS7_R_NO_CERTIFICATES_INCLUDED = @as(c_int, 102); pub const PKCS7_R_NO_CRLS_INCLUDED = @as(c_int, 103); -pub const _STRUCT_TIMESPEC = struct_timespec; -pub const CLOCKS_PER_SEC = @import("std").zig.c_translation.promoteIntLiteral(c_int, 1000000, .decimal); -pub const CLOCK_REALTIME = _CLOCK_REALTIME; -pub const CLOCK_MONOTONIC = _CLOCK_MONOTONIC; -pub const CLOCK_MONOTONIC_RAW = _CLOCK_MONOTONIC_RAW; -pub const CLOCK_MONOTONIC_RAW_APPROX = _CLOCK_MONOTONIC_RAW_APPROX; -pub const CLOCK_UPTIME_RAW = _CLOCK_UPTIME_RAW; -pub const CLOCK_UPTIME_RAW_APPROX = _CLOCK_UPTIME_RAW_APPROX; -pub const CLOCK_PROCESS_CPUTIME_ID = _CLOCK_PROCESS_CPUTIME_ID; -pub const CLOCK_THREAD_CPUTIME_ID = _CLOCK_THREAD_CPUTIME_ID; -pub const TIME_UTC = @as(c_int, 1); +pub const HEADER_X509_H = ""; +pub const HEADER_ASN1_H = ""; +pub const OPENSSL_HEADER_BN_H = ""; +pub const __CLANG_INTTYPES_H = ""; +pub const _INTTYPES_H_ = ""; pub const __PRI_8_LENGTH_MODIFIER__ = "hh"; pub const __PRI_64_LENGTH_MODIFIER__ = "ll"; pub const __SCN_64_LENGTH_MODIFIER__ = "ll"; @@ -16674,7 +16641,6 @@ pub const SCNiMAX = __SCN_MAX_LENGTH_MODIFIER__ ++ "i"; pub const SCNoMAX = __SCN_MAX_LENGTH_MODIFIER__ ++ "o"; pub const SCNuMAX = __SCN_MAX_LENGTH_MODIFIER__ ++ "u"; pub const SCNxMAX = __SCN_MAX_LENGTH_MODIFIER__ ++ "x"; -pub const BN_ULONG = u64; pub const BN_BITS2 = @as(c_int, 64); pub const BN_DEC_FMT1 = "%" ++ PRIu64; pub const BN_DEC_FMT2 = "%019" ++ PRIu64; @@ -16828,9 +16794,9 @@ pub inline fn M_ASN1_BIT_STRING_dup(a: anytype) @TypeOf(ASN1_STRING_dup(a)) { pub inline fn M_ASN1_BIT_STRING_cmp(a: anytype, b: anytype) @TypeOf(ASN1_STRING_cmp(a, b)) { return ASN1_STRING_cmp(a, b); } -pub inline fn M_ASN1_BIT_STRING_set(a: anytype, b: anytype, c: anytype) @TypeOf(ASN1_BIT_STRING_set(a, b, c)) { - return ASN1_BIT_STRING_set(a, b, c); -} +// pub inline fn M_ASN1_BIT_STRING_set(a: anytype, b: anytype, c: anytype) @TypeOf(ASN1_BIT_STRING_set(a, b, c)) { +// return ASN1_BIT_STRING_set(a, b, c); +// } pub inline fn M_ASN1_INTEGER_new() @TypeOf(ASN1_INTEGER_new()) { return ASN1_INTEGER_new(); } @@ -16859,7 +16825,7 @@ pub inline fn M_ASN1_OCTET_STRING_new() @TypeOf(ASN1_OCTET_STRING_new()) { return ASN1_OCTET_STRING_new(); } pub inline fn M_ASN1_OCTET_STRING_free(a: anytype) @TypeOf(ASN1_OCTET_STRING_free()) { - _ = a; + _ = @TypeOf(a); return ASN1_OCTET_STRING_free(); } pub inline fn M_ASN1_OCTET_STRING_dup(a: anytype) @TypeOf(ASN1_OCTET_STRING_dup(a)) { @@ -17039,6 +17005,9 @@ pub const ASN1_R_WRONG_TYPE = @as(c_int, 191); pub const ASN1_R_NESTED_TOO_DEEP = @as(c_int, 192); pub const ASN1_R_BAD_TEMPLATE = @as(c_int, 193); pub const ASN1_R_INVALID_BIT_STRING_PADDING = @as(c_int, 194); +pub const ASN1_R_WRONG_INTEGER_TYPE = @as(c_int, 195); +pub const ASN1_R_INVALID_INTEGER = @as(c_int, 196); +pub const OPENSSL_HEADER_DH_H = ""; pub const DH_GENERATOR_2 = @as(c_int, 2); pub const DH_GENERATOR_5 = @as(c_int, 5); pub const DH_CHECK_P_NOT_PRIME = @as(c_int, 0x01); @@ -17047,7 +17016,6 @@ pub const DH_CHECK_UNABLE_TO_CHECK_GENERATOR = @as(c_int, 0x04); pub const DH_CHECK_NOT_SUITABLE_GENERATOR = @as(c_int, 0x08); pub const DH_CHECK_Q_NOT_PRIME = @as(c_int, 0x10); pub const DH_CHECK_INVALID_Q_VALUE = @as(c_int, 0x20); -pub const DH_CHECK_INVALID_J_VALUE = @as(c_int, 0x40); pub const DH_NOT_SUITABLE_GENERATOR = DH_CHECK_NOT_SUITABLE_GENERATOR; pub const DH_UNABLE_TO_CHECK_GENERATOR = DH_CHECK_UNABLE_TO_CHECK_GENERATOR; pub const DH_CHECK_PUBKEY_TOO_SMALL = @as(c_int, 0x1); @@ -17059,6 +17027,8 @@ pub const DH_R_MODULUS_TOO_LARGE = @as(c_int, 102); pub const DH_R_NO_PRIVATE_VALUE = @as(c_int, 103); pub const DH_R_DECODE_ERROR = @as(c_int, 104); pub const DH_R_ENCODE_ERROR = @as(c_int, 105); +pub const OPENSSL_HEADER_DSA_H = ""; +pub const OPENSSL_HEADER_ENGINE_H = ""; pub const ENGINE_R_OPERATION_NOT_SUPPORTED = @as(c_int, 100); pub const DSA_R_BAD_Q_VALUE = @as(c_int, 100); pub const DSA_R_MISSING_PARAMETERS = @as(c_int, 101); @@ -17068,8 +17038,10 @@ pub const DSA_R_BAD_VERSION = @as(c_int, 104); pub const DSA_R_DECODE_ERROR = @as(c_int, 105); pub const DSA_R_ENCODE_ERROR = @as(c_int, 106); pub const DSA_R_INVALID_PARAMETERS = @as(c_int, 107); +pub const OPENSSL_HEADER_EC_H = ""; pub const OPENSSL_EC_EXPLICIT_CURVE = @as(c_int, 0); pub const OPENSSL_EC_NAMED_CURVE = @as(c_int, 1); +pub const OPENSSL_HEADER_EC_KEY_H = ""; pub const EC_PKEY_NO_PARAMETERS = @as(c_int, 0x001); pub const EC_PKEY_NO_PUBKEY = @as(c_int, 0x002); pub const ECDSA_FLAG_OPAQUE = @as(c_int, 1); @@ -17107,16 +17079,21 @@ pub const EC_R_GROUP_MISMATCH = @as(c_int, 130); pub const EC_R_INVALID_COFACTOR = @as(c_int, 131); pub const EC_R_PUBLIC_KEY_VALIDATION_FAILED = @as(c_int, 132); pub const EC_R_INVALID_SCALAR = @as(c_int, 133); +pub const OPENSSL_HEADER_ECDH_H = ""; pub const ECDH_R_KDF_FAILED = @as(c_int, 100); pub const ECDH_R_NO_PRIVATE_VALUE = @as(c_int, 101); pub const ECDH_R_POINT_ARITHMETIC_FAILURE = @as(c_int, 102); pub const ECDH_R_UNKNOWN_DIGEST_LENGTH = @as(c_int, 103); +pub const OPENSSL_HEADER_ECDSA_H = ""; pub const ECDSA_R_BAD_SIGNATURE = @as(c_int, 100); pub const ECDSA_R_MISSING_PARAMETERS = @as(c_int, 101); pub const ECDSA_R_NEED_NEW_SETUP_VALUES = @as(c_int, 102); pub const ECDSA_R_NOT_IMPLEMENTED = @as(c_int, 103); pub const ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED = @as(c_int, 104); pub const ECDSA_R_ENCODE_ERROR = @as(c_int, 105); +pub const OPENSSL_HEADER_OBJ_H = ""; +pub const OPENSSL_HEADER_BYTESTRING_H = ""; +pub const OPENSSL_HEADER_SSL_SPAN_H = ""; pub const CBS_ASN1_TAG_SHIFT = @as(c_int, 24); pub const CBS_ASN1_CONSTRUCTED = @as(c_uint, 0x20) << CBS_ASN1_TAG_SHIFT; pub const CBS_ASN1_UNIVERSAL = @as(c_uint, 0) << CBS_ASN1_TAG_SHIFT; @@ -17151,6 +17128,8 @@ pub const OBJ_NAME_TYPE_MD_METH = @as(c_int, 1); pub const OBJ_NAME_TYPE_CIPHER_METH = @as(c_int, 2); pub const OBJ_R_UNKNOWN_NID = @as(c_int, 100); pub const OBJ_R_INVALID_OID_STRING = @as(c_int, 101); +pub const OPENSSL_HEADER_POOL_H = ""; +pub const OPENSSL_HEADER_RSA_H = ""; pub const RSA_PKCS1_PADDING = @as(c_int, 1); pub const RSA_NO_PADDING = @as(c_int, 3); pub const RSA_PKCS1_OAEP_PADDING = @as(c_int, 4); @@ -17210,6 +17189,7 @@ pub const RSA_R_WRONG_SIGNATURE_LENGTH = @as(c_int, 145); pub const RSA_R_PUBLIC_KEY_VALIDATION_FAILED = @as(c_int, 146); pub const RSA_R_D_OUT_OF_RANGE = @as(c_int, 147); pub const RSA_R_BLOCK_TYPE_IS_NOT_02 = @as(c_int, 148); +pub const OPENSSL_HEADER_SHA_H = ""; pub const SHA_CBLOCK = @as(c_int, 64); pub const SHA_DIGEST_LENGTH = @as(c_int, 20); pub const SHA224_CBLOCK = @as(c_int, 64); @@ -17221,6 +17201,23 @@ pub const SHA384_DIGEST_LENGTH = @as(c_int, 48); pub const SHA512_CBLOCK = @as(c_int, 128); pub const SHA512_DIGEST_LENGTH = @as(c_int, 64); pub const SHA512_256_DIGEST_LENGTH = @as(c_int, 32); +pub const X509_VERSION_1 = @as(c_int, 0); +pub const X509_VERSION_2 = @as(c_int, 1); +pub const X509_VERSION_3 = @as(c_int, 2); +pub const X509_CRL_VERSION_1 = @as(c_int, 0); +pub const X509_CRL_VERSION_2 = @as(c_int, 1); +pub const X509_REQ_VERSION_1 = @as(c_int, 0); +pub inline fn X509_extract_key(x: anytype) @TypeOf(X509_get_pubkey(x)) { + return X509_get_pubkey(x); +} +pub inline fn X509_REQ_extract_key(a: anytype) @TypeOf(X509_REQ_get_pubkey(a)) { + return X509_REQ_get_pubkey(a); +} +pub inline fn X509_name_cmp(a: anytype, b: anytype) @TypeOf(X509_NAME_cmp(a, b)) { + return X509_NAME_cmp(a, b); +} +pub const X509_CRL_set_lastUpdate = X509_CRL_set1_lastUpdate; +pub const X509_CRL_set_nextUpdate = X509_CRL_set1_nextUpdate; pub const X509_FILETYPE_PEM = @as(c_int, 1); pub const X509_FILETYPE_ASN1 = @as(c_int, 2); pub const X509_FILETYPE_DEFAULT = @as(c_int, 3); @@ -17282,32 +17279,9 @@ pub const XN_FLAG_FN_ALIGN = @as(c_int, 1) << @as(c_int, 25); pub const XN_FLAG_RFC2253 = (((ASN1_STRFLGS_RFC2253 | XN_FLAG_SEP_COMMA_PLUS) | XN_FLAG_DN_REV) | XN_FLAG_FN_SN) | XN_FLAG_DUMP_UNKNOWN_FIELDS; pub const XN_FLAG_ONELINE = (((ASN1_STRFLGS_RFC2253 | ASN1_STRFLGS_ESC_QUOTE) | XN_FLAG_SEP_CPLUS_SPC) | XN_FLAG_SPC_EQ) | XN_FLAG_FN_SN; pub const XN_FLAG_MULTILINE = ((((ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_ESC_MSB) | XN_FLAG_SEP_MULTILINE) | XN_FLAG_SPC_EQ) | XN_FLAG_FN_LN) | XN_FLAG_FN_ALIGN; -pub const X509_VERSION_1 = @as(c_int, 0); -pub const X509_VERSION_2 = @as(c_int, 1); -pub const X509_VERSION_3 = @as(c_int, 2); -pub inline fn X509_extract_key(x: anytype) @TypeOf(X509_get_pubkey(x)) { - return X509_get_pubkey(x); -} -pub const X509_REQ_VERSION_1 = @as(c_int, 0); -pub inline fn X509_REQ_extract_key(a: anytype) @TypeOf(X509_REQ_get_pubkey(a)) { - return X509_REQ_get_pubkey(a); -} -pub inline fn X509_name_cmp(a: anytype, b: anytype) @TypeOf(X509_NAME_cmp(a, b)) { - return X509_NAME_cmp(a, b); -} -pub const X509_CRL_VERSION_1 = @as(c_int, 0); -pub const X509_CRL_VERSION_2 = @as(c_int, 1); -pub const X509_CRL_set_lastUpdate = X509_CRL_set1_lastUpdate; -pub const X509_CRL_set_nextUpdate = X509_CRL_set1_nextUpdate; pub const X509_LU_X509 = @as(c_int, 1); pub const X509_LU_CRL = @as(c_int, 2); pub const X509_LU_PKEY = @as(c_int, 3); -pub inline fn X509_STORE_CTX_set_app_data(ctx: anytype, data: anytype) @TypeOf(X509_STORE_CTX_set_ex_data(ctx, @as(c_int, 0), data)) { - return X509_STORE_CTX_set_ex_data(ctx, @as(c_int, 0), data); -} -pub inline fn X509_STORE_CTX_get_app_data(ctx: anytype) @TypeOf(X509_STORE_CTX_get_ex_data(ctx, @as(c_int, 0))) { - return X509_STORE_CTX_get_ex_data(ctx, @as(c_int, 0)); -} pub const X509_L_FILE_LOAD = @as(c_int, 1); pub const X509_L_ADD_DIR = @as(c_int, 2); pub inline fn X509_LOOKUP_load_file(x: anytype, name: anytype, @"type": anytype) @TypeOf(X509_LOOKUP_ctrl(x, X509_L_FILE_LOAD, name, @import("std").zig.c_translation.cast(c_long, @"type"), NULL)) { @@ -17371,12 +17345,6 @@ pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE = @as(c_int, 51); pub const X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX = @as(c_int, 52); pub const X509_V_ERR_UNSUPPORTED_NAME_SYNTAX = @as(c_int, 53); pub const X509_V_ERR_CRL_PATH_VALIDATION_ERROR = @as(c_int, 54); -pub const X509_V_ERR_SUITE_B_INVALID_VERSION = @as(c_int, 56); -pub const X509_V_ERR_SUITE_B_INVALID_ALGORITHM = @as(c_int, 57); -pub const X509_V_ERR_SUITE_B_INVALID_CURVE = @as(c_int, 58); -pub const X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM = @as(c_int, 59); -pub const X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED = @as(c_int, 60); -pub const X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 = @as(c_int, 61); pub const X509_V_ERR_HOSTNAME_MISMATCH = @as(c_int, 62); pub const X509_V_ERR_EMAIL_MISMATCH = @as(c_int, 63); pub const X509_V_ERR_IP_ADDRESS_MISMATCH = @as(c_int, 64); @@ -17399,11 +17367,9 @@ pub const X509_V_FLAG_EXTENDED_CRL_SUPPORT = @as(c_int, 0x1000); pub const X509_V_FLAG_USE_DELTAS = @as(c_int, 0x2000); pub const X509_V_FLAG_CHECK_SS_SIGNATURE = @as(c_int, 0x4000); pub const X509_V_FLAG_TRUSTED_FIRST = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x8000, .hexadecimal); -pub const X509_V_FLAG_SUITEB_128_LOS_ONLY = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x10000, .hexadecimal); -pub const X509_V_FLAG_SUITEB_192_LOS = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x20000, .hexadecimal); -pub const X509_V_FLAG_SUITEB_128_LOS = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x30000, .hexadecimal); pub const X509_V_FLAG_PARTIAL_CHAIN = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x80000, .hexadecimal); pub const X509_V_FLAG_NO_ALT_CHAINS = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x100000, .hexadecimal); +pub const X509_V_FLAG_NO_CHECK_TIME = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x200000, .hexadecimal); pub const X509_VP_FLAG_DEFAULT = @as(c_int, 0x1); pub const X509_VP_FLAG_OVERWRITE = @as(c_int, 0x2); pub const X509_VP_FLAG_RESET_FLAGS = @as(c_int, 0x4); @@ -17460,6 +17426,11 @@ pub const X509_R_SIGNATURE_ALGORITHM_MISMATCH = @as(c_int, 137); pub const X509_R_DELTA_CRL_WITHOUT_CRL_NUMBER = @as(c_int, 138); pub const X509_R_INVALID_FIELD_FOR_VERSION = @as(c_int, 139); pub const X509_R_INVALID_VERSION = @as(c_int, 140); +pub const X509_R_NO_CERTIFICATE_FOUND = @as(c_int, 141); +pub const X509_R_NO_CERTIFICATE_OR_CRL_FOUND = @as(c_int, 142); +pub const X509_R_NO_CRL_FOUND = @as(c_int, 143); +pub const OPENSSL_HEADER_CRYPTO_H = ""; +pub const OPENSSL_HEADER_MEM_H = ""; pub const OPENSSL_VERSION_TEXT = "OpenSSL 1.1.1 (compatible; BoringSSL)"; pub const OPENSSL_VERSION = @as(c_int, 0); pub const OPENSSL_CFLAGS = @as(c_int, 1); @@ -17523,6 +17494,7 @@ pub const PEM_R_READ_KEY = @as(c_int, 111); pub const PEM_R_SHORT_HEADER = @as(c_int, 112); pub const PEM_R_UNSUPPORTED_CIPHER = @as(c_int, 113); pub const PEM_R_UNSUPPORTED_ENCRYPTION = @as(c_int, 114); +pub const OPENSSL_HEADER_SSL3_H = ""; pub const SSL2_MT_CLIENT_HELLO = @as(c_int, 1); pub const SSL2_VERSION = @as(c_int, 0x0002); pub const SSL3_CK_SCSV = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x030000FF, .hexadecimal); @@ -17605,6 +17577,7 @@ pub const SSL3_RT_ALERT = @as(c_int, 21); pub const SSL3_RT_HANDSHAKE = @as(c_int, 22); pub const SSL3_RT_APPLICATION_DATA = @as(c_int, 23); pub const SSL3_RT_HEADER = @as(c_int, 0x100); +pub const SSL3_RT_CLIENT_HELLO_INNER = @as(c_int, 0x101); pub const SSL3_AL_WARNING = @as(c_int, 1); pub const SSL3_AL_FATAL = @as(c_int, 2); pub const SSL3_AD_CLOSE_NOTIFY = @as(c_int, 0); @@ -17645,6 +17618,7 @@ pub const DTLS1_MT_HELLO_VERIFY_REQUEST = @as(c_int, 3); pub const SSL3_MT_SERVER_DONE = SSL3_MT_SERVER_HELLO_DONE; pub const SSL3_MT_NEWSESSION_TICKET = SSL3_MT_NEW_SESSION_TICKET; pub const SSL3_MT_CCS = @as(c_int, 1); +pub const OPENSSL_HEADER_TLS1_H = ""; pub const TLS1_AD_END_OF_EARLY_DATA = @as(c_int, 1); pub const TLS1_AD_DECRYPTION_FAILED = @as(c_int, 21); pub const TLS1_AD_RECORD_OVERFLOW = @as(c_int, 22); @@ -17837,9 +17811,12 @@ pub const TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 = @import("std").zig.c_transl pub const TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x0300CCA8, .hexadecimal); pub const TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x0300CCA9, .hexadecimal); pub const TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x0300CCAC, .hexadecimal); -pub const TLS1_CK_AES_128_GCM_SHA256 = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x03001301, .hexadecimal); -pub const TLS1_CK_AES_256_GCM_SHA384 = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x03001302, .hexadecimal); -pub const TLS1_CK_CHACHA20_POLY1305_SHA256 = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x03001303, .hexadecimal); +pub const TLS1_3_CK_AES_128_GCM_SHA256 = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x03001301, .hexadecimal); +pub const TLS1_3_CK_AES_256_GCM_SHA384 = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x03001302, .hexadecimal); +pub const TLS1_3_CK_CHACHA20_POLY1305_SHA256 = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x03001303, .hexadecimal); +pub const TLS1_CK_AES_128_GCM_SHA256 = TLS1_3_CK_AES_128_GCM_SHA256; +pub const TLS1_CK_AES_256_GCM_SHA384 = TLS1_3_CK_AES_256_GCM_SHA384; +pub const TLS1_CK_CHACHA20_POLY1305_SHA256 = TLS1_3_CK_CHACHA20_POLY1305_SHA256; pub const TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5 = "EXP1024-RC4-MD5"; pub const TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 = "EXP1024-RC2-CBC-MD5"; pub const TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA = "EXP1024-DES-CBC-SHA"; @@ -17961,9 +17938,12 @@ pub const TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 = "ECDH-RSA-AES256-GCM-SHA38 pub const TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = "ECDHE-RSA-CHACHA20-POLY1305"; pub const TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = "ECDHE-ECDSA-CHACHA20-POLY1305"; pub const TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = "ECDHE-PSK-CHACHA20-POLY1305"; -pub const TLS1_TXT_AES_128_GCM_SHA256 = "TLS_AES_128_GCM_SHA256"; -pub const TLS1_TXT_AES_256_GCM_SHA384 = "TLS_AES_256_GCM_SHA384"; -pub const TLS1_TXT_CHACHA20_POLY1305_SHA256 = "TLS_CHACHA20_POLY1305_SHA256"; +pub const TLS1_3_RFC_AES_128_GCM_SHA256 = "TLS_AES_128_GCM_SHA256"; +pub const TLS1_3_RFC_AES_256_GCM_SHA384 = "TLS_AES_256_GCM_SHA384"; +pub const TLS1_3_RFC_CHACHA20_POLY1305_SHA256 = "TLS_CHACHA20_POLY1305_SHA256"; +pub const TLS1_TXT_AES_128_GCM_SHA256 = TLS1_3_RFC_AES_128_GCM_SHA256; +pub const TLS1_TXT_AES_256_GCM_SHA384 = TLS1_3_RFC_AES_256_GCM_SHA384; +pub const TLS1_TXT_CHACHA20_POLY1305_SHA256 = TLS1_3_RFC_CHACHA20_POLY1305_SHA256; pub const TLS_CT_RSA_SIGN = @as(c_int, 1); pub const TLS_CT_DSS_SIGN = @as(c_int, 2); pub const TLS_CT_RSA_FIXED_DH = @as(c_int, 3); @@ -17972,6 +17952,8 @@ pub const TLS_CT_ECDSA_SIGN = @as(c_int, 64); pub const TLS_CT_RSA_FIXED_ECDH = @as(c_int, 65); pub const TLS_CT_ECDSA_FIXED_ECDH = @as(c_int, 66); pub const TLS_MD_MAX_CONST_SIZE = @as(c_int, 20); +pub const _SYS_TIME_H_ = ""; +pub const _STRUCT_TIMEVAL64 = ""; pub const ITIMER_REAL = @as(c_int, 0); pub const ITIMER_VIRTUAL = @as(c_int, 1); pub const ITIMER_PROF = @as(c_int, 2); @@ -17988,6 +17970,8 @@ pub inline fn timerisset(tvp: anytype) @TypeOf((tvp.*.tv_sec != 0) or (tvp.*.tv_ pub inline fn timevalcmp(l: anytype, r: anytype, cmp: anytype) @TypeOf(timercmp(l, r, cmp)) { return timercmp(l, r, cmp); } +pub const _SYS__SELECT_H_ = ""; +pub const OPENSSL_HEADER_HMAC_H = ""; pub const SSL_KEY_UPDATE_REQUESTED = @as(c_int, 1); pub const SSL_KEY_UPDATE_NOT_REQUESTED = @as(c_int, 0); pub const SSL_ERROR_NONE = @as(c_int, 0); @@ -18290,13 +18274,13 @@ pub inline fn SSL_get_state(ssl: anytype) @TypeOf(SSL_state(ssl)) { return SSL_state(ssl); } pub inline fn SSL_CTX_set_ecdh_auto(ctx: anytype, onoff: anytype) @TypeOf(@as(c_int, 1)) { - _ = ctx; - _ = onoff; + _ = @TypeOf(ctx); + _ = @TypeOf(onoff); return @as(c_int, 1); } pub inline fn SSL_set_ecdh_auto(ssl: anytype, onoff: anytype) @TypeOf(@as(c_int, 1)) { - _ = ssl; - _ = onoff; + _ = @TypeOf(ssl); + _ = @TypeOf(onoff); return @as(c_int, 1); } pub const SSL_get0_session = SSL_get_session; @@ -18312,55 +18296,6 @@ pub const SSL_R_TLSV1_UNRECOGNIZED_NAME = SSL_R_TLSV1_ALERT_UNRECOGNIZED_NAME; pub const SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE = SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_STATUS_RESPONSE; pub const SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE = SSL_R_TLSV1_ALERT_BAD_CERTIFICATE_HASH_VALUE; pub const SSL_R_TLSV1_CERTIFICATE_REQUIRED = SSL_R_TLSV1_ALERT_CERTIFICATE_REQUIRED; -pub const DTLS_CTRL_GET_TIMEOUT = doesnt_exist; -pub const DTLS_CTRL_HANDLE_TIMEOUT = doesnt_exist; -pub const SSL_CTRL_CHAIN = doesnt_exist; -pub const SSL_CTRL_CHAIN_CERT = doesnt_exist; -pub const SSL_CTRL_CHANNEL_ID = doesnt_exist; -pub const SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS = doesnt_exist; -pub const SSL_CTRL_CLEAR_MODE = doesnt_exist; -pub const SSL_CTRL_CLEAR_OPTIONS = doesnt_exist; -pub const SSL_CTRL_EXTRA_CHAIN_CERT = doesnt_exist; -pub const SSL_CTRL_GET_CHAIN_CERTS = doesnt_exist; -pub const SSL_CTRL_GET_CHANNEL_ID = doesnt_exist; -pub const SSL_CTRL_GET_CLIENT_CERT_TYPES = doesnt_exist; -pub const SSL_CTRL_GET_EXTRA_CHAIN_CERTS = doesnt_exist; -pub const SSL_CTRL_GET_MAX_CERT_LIST = doesnt_exist; -pub const SSL_CTRL_GET_NUM_RENEGOTIATIONS = doesnt_exist; -pub const SSL_CTRL_GET_READ_AHEAD = doesnt_exist; -pub const SSL_CTRL_GET_RI_SUPPORT = doesnt_exist; -pub const SSL_CTRL_GET_SERVER_TMP_KEY = doesnt_exist; -pub const SSL_CTRL_GET_SESSION_REUSED = doesnt_exist; -pub const SSL_CTRL_GET_SESS_CACHE_MODE = doesnt_exist; -pub const SSL_CTRL_GET_SESS_CACHE_SIZE = doesnt_exist; -pub const SSL_CTRL_GET_TLSEXT_TICKET_KEYS = doesnt_exist; -pub const SSL_CTRL_GET_TOTAL_RENEGOTIATIONS = doesnt_exist; -pub const SSL_CTRL_MODE = doesnt_exist; -pub const SSL_CTRL_NEED_TMP_RSA = doesnt_exist; -pub const SSL_CTRL_OPTIONS = doesnt_exist; -pub const SSL_CTRL_SESS_NUMBER = doesnt_exist; -pub const SSL_CTRL_SET_CURVES = doesnt_exist; -pub const SSL_CTRL_SET_CURVES_LIST = doesnt_exist; -pub const SSL_CTRL_SET_ECDH_AUTO = doesnt_exist; -pub const SSL_CTRL_SET_MAX_CERT_LIST = doesnt_exist; -pub const SSL_CTRL_SET_MAX_SEND_FRAGMENT = doesnt_exist; -pub const SSL_CTRL_SET_MSG_CALLBACK = doesnt_exist; -pub const SSL_CTRL_SET_MSG_CALLBACK_ARG = doesnt_exist; -pub const SSL_CTRL_SET_MTU = doesnt_exist; -pub const SSL_CTRL_SET_READ_AHEAD = doesnt_exist; -pub const SSL_CTRL_SET_SESS_CACHE_MODE = doesnt_exist; -pub const SSL_CTRL_SET_SESS_CACHE_SIZE = doesnt_exist; -pub const SSL_CTRL_SET_TLSEXT_HOSTNAME = doesnt_exist; -pub const SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG = doesnt_exist; -pub const SSL_CTRL_SET_TLSEXT_SERVERNAME_CB = doesnt_exist; -pub const SSL_CTRL_SET_TLSEXT_TICKET_KEYS = doesnt_exist; -pub const SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB = doesnt_exist; -pub const SSL_CTRL_SET_TMP_DH = doesnt_exist; -pub const SSL_CTRL_SET_TMP_DH_CB = doesnt_exist; -pub const SSL_CTRL_SET_TMP_ECDH = doesnt_exist; -pub const SSL_CTRL_SET_TMP_ECDH_CB = doesnt_exist; -pub const SSL_CTRL_SET_TMP_RSA = doesnt_exist; -pub const SSL_CTRL_SET_TMP_RSA_CB = doesnt_exist; pub const SSL_R_APP_DATA_IN_HANDSHAKE = @as(c_int, 100); pub const SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT = @as(c_int, 101); pub const SSL_R_BAD_ALERT = @as(c_int, 102); @@ -18580,7 +18515,7 @@ pub const SSL_R_COULD_NOT_PARSE_HINTS = @as(c_int, 316); pub const SSL_R_INVALID_ECH_PUBLIC_NAME = @as(c_int, 317); pub const SSL_R_INVALID_ECH_CONFIG_LIST = @as(c_int, 318); pub const SSL_R_ECH_REJECTED = @as(c_int, 319); -pub const SSL_R_OUTER_EXTENSION_NOT_FOUND = @as(c_int, 320); +pub const SSL_R_INVALID_OUTER_EXTENSION = @as(c_int, 320); pub const SSL_R_INCONSISTENT_ECH_NEGOTIATION = @as(c_int, 321); pub const SSL_R_SSLV3_ALERT_CLOSE_NOTIFY = @as(c_int, 1000); pub const SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE = @as(c_int, 1010); @@ -18635,10 +18570,6 @@ pub const Netscape_spkac_st = struct_Netscape_spkac_st; pub const X509_algor_st = struct_X509_algor_st; pub const Netscape_spki_st = struct_Netscape_spki_st; pub const RIPEMD160state_st = struct_RIPEMD160state_st; -pub const X509_POLICY_CACHE_st = struct_X509_POLICY_CACHE_st; -pub const X509_POLICY_LEVEL_st = struct_X509_POLICY_LEVEL_st; -pub const X509_POLICY_NODE_st = struct_X509_POLICY_NODE_st; -pub const X509_POLICY_TREE_st = struct_X509_POLICY_TREE_st; pub const X509_VERIFY_PARAM_st = struct_X509_VERIFY_PARAM_st; pub const X509_crl_st = struct_X509_crl_st; pub const X509_extension_st = struct_X509_extension_st; @@ -18655,7 +18586,6 @@ pub const dh_st = struct_dh_st; pub const ec_key_st = struct_ec_key_st; pub const evp_pkey_asn1_method_st = struct_evp_pkey_asn1_method_st; pub const evp_pkey_st = struct_evp_pkey_st; -pub const evp_cipher_ctx_st = struct_evp_cipher_ctx_st; pub const evp_cipher_st = struct_evp_cipher_st; pub const evp_cipher_info_st = struct_evp_cipher_info_st; pub const private_key_st = struct_private_key_st; @@ -18671,6 +18601,7 @@ pub const blake2b_state_st = struct_blake2b_state_st; pub const bn_gencb_st = struct_bn_gencb_st; pub const buf_mem_st = struct_buf_mem_st; pub const cbb_buffer_st = struct_cbb_buffer_st; +pub const cbb_child_st = struct_cbb_child_st; pub const cbb_st = struct_cbb_st; pub const cbs_st = struct_cbs_st; pub const cmac_ctx_st = struct_cmac_ctx_st; @@ -18678,6 +18609,7 @@ pub const conf_st = struct_conf_st; pub const conf_value_st = struct_conf_value_st; pub const crypto_buffer_pool_st = struct_crypto_buffer_pool_st; pub const crypto_buffer_st = struct_crypto_buffer_st; +pub const ctr_drbg_state_st = struct_ctr_drbg_state_st; pub const ec_group_st = struct_ec_group_st; pub const ec_point_st = struct_ec_point_st; pub const ecdsa_method_st = struct_ecdsa_method_st; @@ -18688,6 +18620,9 @@ pub const evp_pkey_ctx_st = struct_evp_pkey_ctx_st; pub const evp_md_pctx_ops = struct_evp_md_pctx_ops; pub const env_md_ctx_st = struct_env_md_ctx_st; pub const evp_aead_st = struct_evp_aead_st; +pub const evp_aead_ctx_st_state = union_evp_aead_ctx_st_state; +pub const evp_aead_ctx_st = struct_evp_aead_ctx_st; +pub const evp_cipher_ctx_st = struct_evp_cipher_ctx_st; pub const evp_encode_ctx_st = struct_evp_encode_ctx_st; pub const evp_hpke_aead_st = struct_evp_hpke_aead_st; pub const evp_hpke_ctx_st = struct_evp_hpke_ctx_st; @@ -18710,8 +18645,8 @@ pub const sha_state_st = struct_sha_state_st; pub const spake2_ctx_st = struct_spake2_ctx_st; pub const srtp_protection_profile_st = struct_srtp_protection_profile_st; pub const ssl_cipher_st = struct_ssl_cipher_st; -pub const ssl_ctx_st = SSL_CTX; -pub const ssl_st = SSL; +// pub const ssl_ctx_st = struct_ssl_ctx_st; +// pub const ssl_st = struct_ssl_st; pub const ssl_early_callback_ctx = struct_ssl_early_callback_ctx; pub const ssl_ech_keys_st = struct_ssl_ech_keys_st; pub const ssl_method_st = struct_ssl_method_st; @@ -18729,30 +18664,23 @@ pub const trust_token_issuer_st = struct_trust_token_issuer_st; pub const trust_token_method_st = struct_trust_token_method_st; pub const v3_ext_ctx = struct_v3_ext_ctx; pub const x509_attributes_st = struct_x509_attributes_st; -pub const x509_cert_aux_st = struct_x509_cert_aux_st; -pub const x509_crl_method_st = struct_x509_crl_method_st; pub const x509_lookup_st = struct_x509_lookup_st; pub const x509_lookup_method_st = struct_x509_lookup_method_st; pub const x509_object_st = struct_x509_object_st; -pub const stack_st_X509_EXTENSION = struct_stack_st_X509_EXTENSION; -pub const stack_st_GENERAL_NAME = struct_stack_st_GENERAL_NAME; pub const x509_revoked_st = struct_x509_revoked_st; pub const x509_store_ctx_st = struct_x509_store_ctx_st; pub const x509_store_st = struct_x509_store_st; pub const x509_trust_st = struct_x509_trust_st; pub const __sbuf = struct___sbuf; -pub const __sFILEX = struct___sFILEX; -pub const __sFILE = struct___sFILE; pub const stack_st = struct_stack_st; pub const stack_st_OPENSSL_STRING = struct_stack_st_OPENSSL_STRING; pub const CRYPTO_dynlock_value = struct_CRYPTO_dynlock_value; pub const stack_st_BIO = struct_stack_st_BIO; -pub const evp_aead_ctx_st_state = union_evp_aead_ctx_st_state; -pub const evp_aead_ctx_st = struct_evp_aead_ctx_st; pub const evp_aead_direction_t = enum_evp_aead_direction_t; pub const stack_st_CRYPTO_BUFFER = struct_stack_st_CRYPTO_BUFFER; pub const stack_st_X509 = struct_stack_st_X509; pub const stack_st_X509_CRL = struct_stack_st_X509_CRL; +pub const timespec = struct_timespec; pub const tm = struct_tm; pub const bn_primality_result_t = enum_bn_primality_result_t; pub const stack_st_ASN1_INTEGER = struct_stack_st_ASN1_INTEGER; @@ -18760,21 +18688,21 @@ pub const stack_st_ASN1_OBJECT = struct_stack_st_ASN1_OBJECT; pub const stack_st_ASN1_TYPE = struct_stack_st_ASN1_TYPE; pub const ec_method_st = struct_ec_method_st; pub const obj_name_st = struct_obj_name_st; -pub const stack_st_X509_ALGOR = struct_stack_st_X509_ALGOR; +pub const stack_st_X509_EXTENSION = struct_stack_st_X509_EXTENSION; +pub const stack_st_X509_REVOKED = struct_stack_st_X509_REVOKED; pub const stack_st_X509_NAME_ENTRY = struct_stack_st_X509_NAME_ENTRY; pub const stack_st_X509_NAME = struct_stack_st_X509_NAME; +pub const stack_st_X509_ALGOR = struct_stack_st_X509_ALGOR; pub const stack_st_X509_ATTRIBUTE = struct_stack_st_X509_ATTRIBUTE; pub const stack_st_DIST_POINT = struct_stack_st_DIST_POINT; +pub const stack_st_GENERAL_NAME = struct_stack_st_GENERAL_NAME; pub const stack_st_X509_TRUST = struct_stack_st_X509_TRUST; -pub const stack_st_X509_REVOKED = struct_stack_st_X509_REVOKED; pub const stack_st_GENERAL_NAMES = struct_stack_st_GENERAL_NAMES; pub const AUTHORITY_INFO_ACCESS = struct_stack_st_ACCESS_DESCRIPTION; pub const stack_st_X509_INFO = struct_stack_st_X509_INFO; pub const stack_st_X509_LOOKUP = struct_stack_st_X509_LOOKUP; pub const stack_st_X509_OBJECT = struct_stack_st_X509_OBJECT; pub const stack_st_X509_VERIFY_PARAM = struct_stack_st_X509_VERIFY_PARAM; -pub const stack_st_X509_POLICY_NODE = struct_stack_st_X509_POLICY_NODE; -pub const stack_st_POLICYQUALINFO = struct_stack_st_POLICYQUALINFO; pub const fips_counter_t = enum_fips_counter_t; pub const stack_st_SSL_CIPHER = struct_stack_st_SSL_CIPHER; pub const ssl_verify_result_t = enum_ssl_verify_result_t; @@ -18785,6 +18713,7 @@ pub const ssl_select_cert_result_t = enum_ssl_select_cert_result_t; pub const ssl_comp_st = struct_ssl_comp_st; pub const stack_st_SSL_COMP = struct_stack_st_SSL_COMP; pub const ssl_conf_ctx_st = struct_ssl_conf_ctx_st; +pub const ssl_compliance_policy_t = enum_ssl_compliance_policy_t; pub extern fn RAND_bytes(buf: [*]u8, len: usize) c_int; @@ -18799,7 +18728,23 @@ pub extern fn RAND_bytes(buf: [*]u8, len: usize) c_int; /// Hence, this function should never be called by libraries. pub extern fn RAND_enable_fork_unsafe_buffering(c_int) void; -// Manual modification +pub extern fn SSL_new(ctx: ?*SSL_CTX) *SSL; + +pub extern fn EVP_md4() *const EVP_MD; +pub extern fn EVP_md5() *const EVP_MD; +pub extern fn EVP_sha1() *const EVP_MD; +pub extern fn EVP_sha224() *const EVP_MD; +pub extern fn EVP_sha256() *const EVP_MD; +pub extern fn EVP_sha384() *const EVP_MD; +pub extern fn EVP_sha512() *const EVP_MD; +pub extern fn EVP_sha512_256() *const EVP_MD; + +pub extern fn EVP_blake2b256() *const EVP_MD; + +pub extern fn ERR_clear_error() void; +pub extern fn ERR_set_mark() c_int; +pub extern fn ERR_pop_to_mark() c_int; +pub extern fn ERR_get_next_error_library() c_int; pub const struct_bio_st = extern struct { method: [*c]const BIO_METHOD, @@ -18843,18 +18788,18 @@ pub const struct_bio_st = extern struct { } pub fn write(this: *struct_bio_st, buffer: []const u8) !usize { - const rc = BIO_write(this, buffer.ptr, @intCast(c_int, buffer.len)); + const rc = BIO_write(this, buffer.ptr, @as(c_int, @intCast(buffer.len))); return if (rc > -1) - return @intCast(usize, rc) + return @as(usize, @intCast(rc)) else return error.Fail; } pub fn read(this: *struct_bio_st, buffer: []u8) !usize { - const rc = BIO_read(this, buffer.ptr, @intCast(c_int, buffer.len)); + const rc = BIO_read(this, buffer.ptr, @as(c_int, @intCast(buffer.len))); return if (rc > -1) - return @intCast(usize, rc) + return @as(usize, @intCast(rc)) else return error.Fail; } @@ -18900,7 +18845,7 @@ pub const SSL = opaque { } pub inline fn pending(ssl: *SSL) usize { - return @intCast(usize, SSL_pending(ssl)); + return @as(usize, @intCast(SSL_pending(ssl))); } pub inline fn hasPending(ssl: *SSL) bool { @@ -18977,7 +18922,7 @@ pub const SSL = opaque { const Environment = @import("root").bun.Environment; pub fn read(this: *SSL, buf: []u8) Error!usize { - const rc = SSL_read(this, buf.ptr, @intCast(c_int, buf.len)); + const rc = SSL_read(this, buf.ptr, @as(c_int, @intCast(buf.len))); return switch (SSL_get_error(this, rc)) { SSL_ERROR_SSL => error.SSL, SSL_ERROR_WANT_READ => error.WantRead, @@ -18998,12 +18943,12 @@ pub const SSL = opaque { SSL_ERROR_HANDBACK => error.Handback, SSL_ERROR_WANT_RENEGOTIATE => error.WantRenegotiate, SSL_ERROR_HANDSHAKE_HINTS_READY => error.HandshakeHintsReady, - else => @intCast(usize, rc), + else => @as(usize, @intCast(rc)), }; } pub fn write(this: *SSL, buf: []const u8) Error!u32 { - const rc = SSL_write(this, buf.ptr, @intCast(c_int, buf.len)); + const rc = SSL_write(this, buf.ptr, @as(c_int, @intCast(buf.len))); return switch (SSL_get_error(this, rc)) { SSL_ERROR_SSL => { if (comptime Environment.isDebug) { @@ -19030,7 +18975,7 @@ pub const SSL = opaque { SSL_ERROR_HANDBACK => error.Handback, SSL_ERROR_WANT_RENEGOTIATE => error.WantRenegotiate, SSL_ERROR_HANDSHAKE_HINTS_READY => error.HandshakeHintsReady, - else => @intCast(u32, rc), + else => @as(u32, @intCast(rc)), }; } @@ -19049,6 +18994,15 @@ pub const SSL = opaque { } }; +pub const VerifyResult = enum(c_int) { + ok = 0, + invalid = 1, + retry = 2, +}; +pub const VerifyCallback = *const fn (*SSL, [*c]u8) callconv(.C) VerifyResult; + +pub extern fn SSL_CTX_set_custom_verify(ctx: ?*SSL_CTX, mode: c_int, callback: ?VerifyCallback) void; + pub const SSL_CTX = opaque { pub fn init() ?*SSL_CTX { var ctx = SSL_CTX_new(TLS_with_buffers_method()) orelse return null; @@ -19143,6 +19097,6 @@ pub fn getError(this: *SSL, rc: c_int) SSL.Error!u32 { SSL_ERROR_HANDBACK => error.Handback, SSL_ERROR_WANT_RENEGOTIATE => error.WantRenegotiate, SSL_ERROR_HANDSHAKE_HINTS_READY => error.HandshakeHintsReady, - else => @intCast(u32, rc), + else => @as(u32, @intCast(rc)), }; } diff --git a/src/deps/c_ares.zig b/src/deps/c_ares.zig index 7813ff5e4..a8ad9f02b 100644 --- a/src/deps/c_ares.zig +++ b/src/deps/c_ares.zig @@ -400,7 +400,7 @@ pub const Channel = opaque { const SockStateWrap = struct { pub fn onSockState(ctx: ?*anyopaque, socket: ares_socket_t, readable: c_int, writable: c_int) callconv(.C) void { var container = bun.cast(*Container, ctx.?); - Container.onDNSSocketState(container, @intCast(i32, socket), readable != 0, writable != 0); + Container.onDNSSocketState(container, @as(i32, @intCast(socket)), readable != 0, writable != 0); } }; @@ -408,7 +408,7 @@ pub const Channel = opaque { opts.flags = ARES_FLAG_NOCHECKRESP; opts.sock_state_cb = &SockStateWrap.onSockState; - opts.sock_state_cb_data = @ptrCast(*anyopaque, this); + opts.sock_state_cb_data = @as(*anyopaque, @ptrCast(this)); opts.timeout = 1000; opts.tries = 3; @@ -1210,8 +1210,8 @@ pub const Error = enum(i32) { ESERVICE = ARES_ESERVICE, pub fn initEAI(rc: i32) ?Error { - return switch (@enumFromInt(std.os.system.EAI, rc)) { - @enumFromInt(std.os.system.EAI, 0) => return null, + return switch (@as(std.os.system.EAI, @enumFromInt(rc))) { + @as(std.os.system.EAI, @enumFromInt(0)) => return null, .ADDRFAMILY => Error.EBADFAMILY, .BADFLAGS => Error.EBADFLAGS, // Invalid hints .FAIL => Error.EBADRESP, @@ -1284,8 +1284,8 @@ pub const Error = enum(i32) { pub fn get(rc: i32) ?Error { return switch (rc) { 0 => null, - 1...ARES_ESERVICE => @enumFromInt(Error, rc), - -ARES_ESERVICE...-1 => @enumFromInt(Error, -rc), + 1...ARES_ESERVICE => @as(Error, @enumFromInt(rc)), + -ARES_ESERVICE...-1 => @as(Error, @enumFromInt(-rc)), else => unreachable, }; } diff --git a/src/deps/diffz/DiffMatchPatch.zig b/src/deps/diffz/DiffMatchPatch.zig index a5cc02af4..9ce736d15 100644 --- a/src/deps/diffz/DiffMatchPatch.zig +++ b/src/deps/diffz/DiffMatchPatch.zig @@ -106,7 +106,7 @@ pub fn diff( const deadline = if (dmp.diff_timeout == 0) std.math.maxInt(u64) else - @intCast(u64, std.time.milliTimestamp()) + dmp.diff_timeout; + @as(u64, @intCast(std.time.milliTimestamp())) + dmp.diff_timeout; return dmp.diffInternal(allocator, before, after, check_lines, deadline); } @@ -124,7 +124,7 @@ pub fn diffLines( const deadline = if (dmp.diff_timeout == 0) std.math.maxInt(u64) else - @intCast(u64, std.time.milliTimestamp()) + dmp.diff_timeout; + @as(u64, @intCast(std.time.milliTimestamp())) + dmp.diff_timeout; var a = try diffLinesToChars(allocator, text1_in, text2_in); var diffs = try dmp.diffInternal(allocator, a.chars_1, a.chars_2, false, deadline); @@ -389,20 +389,20 @@ fn diffHalfMatchInternal( var best_short_text_b: []const u8 = ""; while (j < short_text.len and b: { - j = @intCast(isize, std.mem.indexOf(u8, short_text[@intCast(usize, j + 1)..], seed) orelse break :b false) + j + 1; + j = @as(isize, @intCast(std.mem.indexOf(u8, short_text[@as(usize, @intCast(j + 1))..], seed) orelse break :b false)) + j + 1; break :b true; }) { - var prefix_length = diffCommonPrefix(long_text[i..], short_text[@intCast(usize, j)..]); - var suffix_length = diffCommonSuffix(long_text[0..i], short_text[0..@intCast(usize, j)]); + var prefix_length = diffCommonPrefix(long_text[i..], short_text[@as(usize, @intCast(j))..]); + var suffix_length = diffCommonSuffix(long_text[0..i], short_text[0..@as(usize, @intCast(j))]); if (best_common.items.len < suffix_length + prefix_length) { best_common.items.len = 0; - try best_common.appendSlice(allocator, short_text[@intCast(usize, j - @intCast(isize, suffix_length)) .. @intCast(usize, j - @intCast(isize, suffix_length)) + suffix_length]); - try best_common.appendSlice(allocator, short_text[@intCast(usize, j) .. @intCast(usize, j) + prefix_length]); + try best_common.appendSlice(allocator, short_text[@as(usize, @intCast(j - @as(isize, @intCast(suffix_length)))) .. @as(usize, @intCast(j - @as(isize, @intCast(suffix_length)))) + suffix_length]); + try best_common.appendSlice(allocator, short_text[@as(usize, @intCast(j)) .. @as(usize, @intCast(j)) + prefix_length]); best_long_text_a = long_text[0 .. i - suffix_length]; best_long_text_b = long_text[i + prefix_length ..]; - best_short_text_a = short_text[0..@intCast(usize, j - @intCast(isize, suffix_length))]; - best_short_text_b = short_text[@intCast(usize, j + @intCast(isize, prefix_length))..]; + best_short_text_a = short_text[0..@as(usize, @intCast(j - @as(isize, @intCast(suffix_length))))]; + best_short_text_b = short_text[@as(usize, @intCast(j + @as(isize, @intCast(prefix_length))))..]; } } if (best_common.items.len * 2 >= long_text.len) { @@ -432,24 +432,24 @@ fn diffBisect( after: []const u8, deadline: u64, ) DiffError!DiffList { - const before_length = @intCast(isize, before.len); - const after_length = @intCast(isize, after.len); - const max_d = @intCast(isize, (before.len + after.len + 1) / 2); + const before_length = @as(isize, @intCast(before.len)); + const after_length = @as(isize, @intCast(after.len)); + const max_d = @as(isize, @intCast((before.len + after.len + 1) / 2)); const v_offset = max_d; const v_length = 2 * max_d; - var v1 = try ArrayListUnmanaged(isize).initCapacity(allocator, @intCast(usize, v_length)); - v1.items.len = @intCast(usize, v_length); - var v2 = try ArrayListUnmanaged(isize).initCapacity(allocator, @intCast(usize, v_length)); - v2.items.len = @intCast(usize, v_length); + var v1 = try ArrayListUnmanaged(isize).initCapacity(allocator, @as(usize, @intCast(v_length))); + v1.items.len = @as(usize, @intCast(v_length)); + var v2 = try ArrayListUnmanaged(isize).initCapacity(allocator, @as(usize, @intCast(v_length))); + v2.items.len = @as(usize, @intCast(v_length)); var x: usize = 0; while (x < v_length) : (x += 1) { v1.items[x] = -1; v2.items[x] = -1; } - v1.items[@intCast(usize, v_offset + 1)] = 0; - v2.items[@intCast(usize, v_offset + 1)] = 0; + v1.items[@as(usize, @intCast(v_offset + 1))] = 0; + v2.items[@as(usize, @intCast(v_offset + 1))] = 0; const delta = before_length - after_length; // If the total number of characters is odd, then the front path will // collide with the reverse path. @@ -464,7 +464,7 @@ fn diffBisect( var d: isize = 0; while (d < max_d) : (d += 1) { // Bail out if deadline is reached. - if (@intCast(u64, std.time.milliTimestamp()) > deadline) { + if (@as(u64, @intCast(std.time.milliTimestamp())) > deadline) { break; } @@ -474,20 +474,20 @@ fn diffBisect( var k1_offset = v_offset + k1; var x1: isize = 0; if (k1 == -d or (k1 != d and - v1.items[@intCast(usize, k1_offset - 1)] < v1.items[@intCast(usize, k1_offset + 1)])) + v1.items[@as(usize, @intCast(k1_offset - 1))] < v1.items[@as(usize, @intCast(k1_offset + 1))])) { - x1 = v1.items[@intCast(usize, k1_offset + 1)]; + x1 = v1.items[@as(usize, @intCast(k1_offset + 1))]; } else { - x1 = v1.items[@intCast(usize, k1_offset - 1)] + 1; + x1 = v1.items[@as(usize, @intCast(k1_offset - 1))] + 1; } var y1 = x1 - k1; while (x1 < before_length and - y1 < after_length and before[@intCast(usize, x1)] == after[@intCast(usize, y1)]) + y1 < after_length and before[@as(usize, @intCast(x1))] == after[@as(usize, @intCast(y1))]) { x1 += 1; y1 += 1; } - v1.items[@intCast(usize, k1_offset)] = x1; + v1.items[@as(usize, @intCast(k1_offset))] = x1; if (x1 > before_length) { // Ran off the right of the graph. k1end += 2; @@ -496,9 +496,9 @@ fn diffBisect( k1start += 2; } else if (front) { var k2_offset = v_offset + delta - k1; - if (k2_offset >= 0 and k2_offset < v_length and v2.items[@intCast(usize, k2_offset)] != -1) { + if (k2_offset >= 0 and k2_offset < v_length and v2.items[@as(usize, @intCast(k2_offset))] != -1) { // Mirror x2 onto top-left coordinate system. - const x2 = before_length - v2.items[@intCast(usize, k2_offset)]; + const x2 = before_length - v2.items[@as(usize, @intCast(k2_offset))]; if (x1 >= x2) { // Overlap detected. return dmp.diffBisectSplit(allocator, before, after, x1, y1, deadline); @@ -513,21 +513,21 @@ fn diffBisect( const k2_offset = v_offset + k2; var x2: isize = 0; if (k2 == -d or (k2 != d and - v2.items[@intCast(usize, k2_offset - 1)] < v2.items[@intCast(usize, k2_offset + 1)])) + v2.items[@as(usize, @intCast(k2_offset - 1))] < v2.items[@as(usize, @intCast(k2_offset + 1))])) { - x2 = v2.items[@intCast(usize, k2_offset + 1)]; + x2 = v2.items[@as(usize, @intCast(k2_offset + 1))]; } else { - x2 = v2.items[@intCast(usize, k2_offset - 1)] + 1; + x2 = v2.items[@as(usize, @intCast(k2_offset - 1))] + 1; } var y2: isize = x2 - k2; while (x2 < before_length and y2 < after_length and - before[@intCast(usize, before_length - x2 - 1)] == - after[@intCast(usize, after_length - y2 - 1)]) + before[@as(usize, @intCast(before_length - x2 - 1))] == + after[@as(usize, @intCast(after_length - y2 - 1))]) { x2 += 1; y2 += 1; } - v2.items[@intCast(usize, k2_offset)] = x2; + v2.items[@as(usize, @intCast(k2_offset))] = x2; if (x2 > before_length) { // Ran off the left of the graph. k2end += 2; @@ -536,11 +536,11 @@ fn diffBisect( k2start += 2; } else if (!front) { const k1_offset = v_offset + delta - k2; - if (k1_offset >= 0 and k1_offset < v_length and v1.items[@intCast(usize, k1_offset)] != -1) { - const x1 = v1.items[@intCast(usize, k1_offset)]; + if (k1_offset >= 0 and k1_offset < v_length and v1.items[@as(usize, @intCast(k1_offset))] != -1) { + const x1 = v1.items[@as(usize, @intCast(k1_offset))]; const y1 = v_offset + x1 - k1_offset; // Mirror x2 onto top-left coordinate system. - x2 = before_length - v2.items[@intCast(usize, k2_offset)]; + x2 = before_length - v2.items[@as(usize, @intCast(k2_offset))]; if (x1 >= x2) { // Overlap detected. return dmp.diffBisectSplit(allocator, before, after, x1, y1, deadline); @@ -574,10 +574,10 @@ fn diffBisectSplit( y: isize, deadline: u64, ) DiffError!DiffList { - const text1a = text1[0..@intCast(usize, x)]; - const text2a = text2[0..@intCast(usize, y)]; - const text1b = text1[@intCast(usize, x)..]; - const text2b = text2[@intCast(usize, y)..]; + const text1a = text1[0..@as(usize, @intCast(x))]; + const text2a = text2[0..@as(usize, @intCast(y))]; + const text1b = text1[@as(usize, @intCast(x))..]; + const text2b = text2[@as(usize, @intCast(y))..]; // Compute both diffs serially. var diffs = try dmp.diffInternal(allocator, text1a, text2a, false, deadline); @@ -726,24 +726,24 @@ fn diffLinesToCharsMunge( // Walk the text, pulling out a Substring for each line. // text.split('\n') would would temporarily double our memory footprint. // Modifying text would create many large strings to garbage collect. - while (line_end < @intCast(isize, text.len) - 1) { + while (line_end < @as(isize, @intCast(text.len)) - 1) { line_end = b: { - break :b @intCast(isize, std.mem.indexOf(u8, text[@intCast(usize, line_start)..], "\n") orelse - break :b @intCast(isize, text.len - 1)) + line_start; + break :b @as(isize, @intCast(std.mem.indexOf(u8, text[@as(usize, @intCast(line_start))..], "\n") orelse + break :b @as(isize, @intCast(text.len - 1)))) + line_start; }; - line = text[@intCast(usize, line_start) .. @intCast(usize, line_start) + @intCast(usize, line_end + 1 - line_start)]; + line = text[@as(usize, @intCast(line_start)) .. @as(usize, @intCast(line_start)) + @as(usize, @intCast(line_end + 1 - line_start))]; if (line_hash.get(line)) |value| { - try chars.append(allocator, @intCast(u8, value)); + try chars.append(allocator, @as(u8, @intCast(value))); } else { if (line_array.items.len == max_lines) { // Bail out at 255 because char 256 == char 0. - line = text[@intCast(usize, line_start)..]; - line_end = @intCast(isize, text.len); + line = text[@as(usize, @intCast(line_start))..]; + line_end = @as(isize, @intCast(text.len)); } try line_array.append(allocator, line); try line_hash.put(allocator, line, line_array.items.len - 1); - try chars.append(allocator, @intCast(u8, line_array.items.len - 1)); + try chars.append(allocator, @as(u8, @intCast(line_array.items.len - 1))); } line_start = line_end + 1; } @@ -980,18 +980,18 @@ fn diffCleanupSemantic(allocator: std.mem.Allocator, diffs: *DiffList) DiffError var length_insertions2: usize = 0; var length_deletions2: usize = 0; while (pointer < diffs.items.len) { - if (diffs.items[@intCast(usize, pointer)].operation == .equal) { // Equality found. + if (diffs.items[@as(usize, @intCast(pointer))].operation == .equal) { // Equality found. try equalities.append(allocator, pointer); length_insertions1 = length_insertions2; length_deletions1 = length_deletions2; length_insertions2 = 0; length_deletions2 = 0; - last_equality = diffs.items[@intCast(usize, pointer)].text; + last_equality = diffs.items[@as(usize, @intCast(pointer))].text; } else { // an insertion or deletion - if (diffs.items[@intCast(usize, pointer)].operation == .insert) { - length_insertions2 += diffs.items[@intCast(usize, pointer)].text.len; + if (diffs.items[@as(usize, @intCast(pointer))].operation == .insert) { + length_insertions2 += diffs.items[@as(usize, @intCast(pointer))].text.len; } else { - length_deletions2 += diffs.items[@intCast(usize, pointer)].text.len; + length_deletions2 += diffs.items[@as(usize, @intCast(pointer))].text.len; } // Eliminate an equality that is smaller or equal to the edits on both // sides of it. @@ -1002,11 +1002,11 @@ fn diffCleanupSemantic(allocator: std.mem.Allocator, diffs: *DiffList) DiffError // Duplicate record. try diffs.insert( allocator, - @intCast(usize, equalities.items[equalities.items.len - 1]), + @as(usize, @intCast(equalities.items[equalities.items.len - 1])), Diff.init(.delete, try allocator.dupe(u8, last_equality.?)), ); // Change second copy to insert. - diffs.items[@intCast(usize, equalities.items[equalities.items.len - 1] + 1)].operation = .insert; + diffs.items[@as(usize, @intCast(equalities.items[equalities.items.len - 1] + 1))].operation = .insert; // Throw away the equality we just deleted. _ = equalities.pop(); if (equalities.items.len > 0) { @@ -1038,46 +1038,46 @@ fn diffCleanupSemantic(allocator: std.mem.Allocator, diffs: *DiffList) DiffError // Only extract an overlap if it is as big as the edit ahead or behind it. pointer = 1; while (pointer < diffs.items.len) { - if (diffs.items[@intCast(usize, pointer - 1)].operation == .delete and - diffs.items[@intCast(usize, pointer)].operation == .insert) + if (diffs.items[@as(usize, @intCast(pointer - 1))].operation == .delete and + diffs.items[@as(usize, @intCast(pointer))].operation == .insert) { - const deletion = diffs.items[@intCast(usize, pointer - 1)].text; - const insertion = diffs.items[@intCast(usize, pointer)].text; + const deletion = diffs.items[@as(usize, @intCast(pointer - 1))].text; + const insertion = diffs.items[@as(usize, @intCast(pointer))].text; var overlap_length1: usize = diffCommonOverlap(deletion, insertion); var overlap_length2: usize = diffCommonOverlap(insertion, deletion); if (overlap_length1 >= overlap_length2) { - if (@floatFromInt(f32, overlap_length1) >= @floatFromInt(f32, deletion.len) / 2.0 or - @floatFromInt(f32, overlap_length1) >= @floatFromInt(f32, insertion.len) / 2.0) + if (@as(f32, @floatFromInt(overlap_length1)) >= @as(f32, @floatFromInt(deletion.len)) / 2.0 or + @as(f32, @floatFromInt(overlap_length1)) >= @as(f32, @floatFromInt(insertion.len)) / 2.0) { // Overlap found. // Insert an equality and trim the surrounding edits. try diffs.insert( allocator, - @intCast(usize, pointer), + @as(usize, @intCast(pointer)), Diff.init(.equal, try allocator.dupe(u8, insertion[0..overlap_length1])), ); - diffs.items[@intCast(usize, pointer - 1)].text = + diffs.items[@as(usize, @intCast(pointer - 1))].text = try allocator.dupe(u8, deletion[0 .. deletion.len - overlap_length1]); - diffs.items[@intCast(usize, pointer + 1)].text = + diffs.items[@as(usize, @intCast(pointer + 1))].text = try allocator.dupe(u8, insertion[overlap_length1..]); pointer += 1; } } else { - if (@floatFromInt(f32, overlap_length2) >= @floatFromInt(f32, deletion.len) / 2.0 or - @floatFromInt(f32, overlap_length2) >= @floatFromInt(f32, insertion.len) / 2.0) + if (@as(f32, @floatFromInt(overlap_length2)) >= @as(f32, @floatFromInt(deletion.len)) / 2.0 or + @as(f32, @floatFromInt(overlap_length2)) >= @as(f32, @floatFromInt(insertion.len)) / 2.0) { // Reverse overlap found. // Insert an equality and swap and trim the surrounding edits. try diffs.insert( allocator, - @intCast(usize, pointer), + @as(usize, @intCast(pointer)), Diff.init(.equal, try allocator.dupe(u8, deletion[0..overlap_length2])), ); - diffs.items[@intCast(usize, pointer - 1)].operation = .insert; - diffs.items[@intCast(usize, pointer - 1)].text = + diffs.items[@as(usize, @intCast(pointer - 1))].operation = .insert; + diffs.items[@as(usize, @intCast(pointer - 1))].text = try allocator.dupe(u8, insertion[0 .. insertion.len - overlap_length2]); - diffs.items[@intCast(usize, pointer + 1)].operation = .delete; - diffs.items[@intCast(usize, pointer + 1)].text = + diffs.items[@as(usize, @intCast(pointer + 1))].operation = .delete; + diffs.items[@as(usize, @intCast(pointer + 1))].text = try allocator.dupe(u8, deletion[overlap_length2..]); pointer += 1; } @@ -1097,7 +1097,7 @@ pub fn diffCleanupSemanticLossless( ) DiffError!void { var pointer: usize = 1; // Intentionally ignore the first and last element (don't need checking). - while (pointer < @intCast(isize, diffs.items.len) - 1) { + while (pointer < @as(isize, @intCast(diffs.items.len)) - 1) { if (diffs.items[pointer - 1].operation == .equal and diffs.items[pointer + 1].operation == .equal) { diff --git a/src/deps/lol-html.zig b/src/deps/lol-html.zig index bac422fb0..cd183ee5f 100644 --- a/src/deps/lol-html.zig +++ b/src/deps/lol-html.zig @@ -257,7 +257,7 @@ pub const HTMLRewriter = opaque { auto_disable(); @setRuntimeSafety(false); - var this = @ptrCast(*OutputSinkType, @alignCast(@alignOf(*OutputSinkType), user_data)); + var this = @as(*OutputSinkType, @ptrCast(@alignCast(user_data))); switch (len) { 0 => Done(this), else => Writer(this, ptr[0..len]), @@ -374,7 +374,7 @@ pub const TextChunk = opaque { } pub fn getUserData(this: *const TextChunk, comptime Type: type) ?*Type { auto_disable(); - return @ptrCast(?*Type, @alignCast(@alignOf(?*Type), this.lol_html_text_chunk_user_data_get())); + return @as(?*Type, @ptrCast(@alignCast(this.lol_html_text_chunk_user_data_get()))); } }; pub const Element = opaque { @@ -499,7 +499,7 @@ pub const Element = opaque { } pub fn getUserData(element: *const Element, comptime Type: type) ?*Type { auto_disable(); - return @ptrCast(?*Element, @alignCast(@alignOf(?*Element), lol_html_element_user_data_get(element))); + return @as(?*Element, @ptrCast(@alignCast(lol_html_element_user_data_get(element)))); } pub fn onEndTag(element: *Element, end_tag_handler: lol_html_end_tag_handler_t, user_data: ?*anyopaque) Error!void { auto_disable(); @@ -567,7 +567,7 @@ pub const HTMLString = extern struct { fn deinit_external(ctx: *anyopaque, ptr: *anyopaque, len: u32) callconv(.C) void { _ = ctx; auto_disable(); - lol_html_str_free(.{ .ptr = @ptrCast([*]const u8, ptr), .len = len }); + lol_html_str_free(.{ .ptr = @as([*]const u8, @ptrCast(ptr)), .len = len }); } pub fn toString(this: HTMLString) bun.String { @@ -752,23 +752,22 @@ pub fn DirectiveHandler(comptime Container: type, comptime UserDataType: type, c return struct { pub fn callback(this: *Container, user_data: ?*anyopaque) callconv(.C) Directive { auto_disable(); - return @enumFromInt( + return @as( Directive, - @as( + @enumFromInt(@as( c_uint, @intFromBool( Callback( - @ptrCast( + @as( *UserDataType, - @alignCast( - @alignOf(*UserDataType), + @ptrCast(@alignCast( user_data.?, - ), + )), ), this, ), ), - ), + )), ); } }.callback; diff --git a/src/deps/picohttp.zig b/src/deps/picohttp.zig index 722475bb5..4155678c1 100644 --- a/src/deps/picohttp.zig +++ b/src/deps/picohttp.zig @@ -90,18 +90,18 @@ pub const Request = struct { const rc = c.phr_parse_request( buf.ptr, buf.len, - @ptrCast([*c][*c]const u8, &method.ptr), + @as([*c][*c]const u8, @ptrCast(&method.ptr)), &method.len, - @ptrCast([*c][*c]const u8, &path.ptr), + @as([*c][*c]const u8, @ptrCast(&path.ptr)), &path.len, &minor_version, - @ptrCast([*c]c.phr_header, src.ptr), + @as([*c]c.phr_header, @ptrCast(src.ptr)), &num_headers, 0, ); // Leave a sentinel value, for JavaScriptCore support. - if (rc > -1) @ptrFromInt([*]u8, @intFromPtr(path.ptr))[path.len] = 0; + if (rc > -1) @as([*]u8, @ptrFromInt(@intFromPtr(path.ptr)))[path.len] = 0; return switch (rc) { -1 => error.BadRequest, @@ -109,9 +109,9 @@ pub const Request = struct { else => Request{ .method = method, .path = path, - .minor_version = @intCast(usize, minor_version), + .minor_version = @as(usize, @intCast(minor_version)), .headers = src[0..num_headers], - .bytes_read = @intCast(u32, rc), + .bytes_read = @as(u32, @intCast(rc)), }, }; } @@ -164,9 +164,9 @@ pub const Response = struct { buf.len, &minor_version, &status_code, - @ptrCast([*c][*c]const u8, &status.ptr), + @as([*c][*c]const u8, @ptrCast(&status.ptr)), &status.len, - @ptrCast([*c]c.phr_header, src.ptr), + @as([*c]c.phr_header, @ptrCast(src.ptr)), &num_headers, offset.?.*, ); @@ -182,8 +182,8 @@ pub const Response = struct { break :brk error.ShortRead; }, else => Response{ - .minor_version = @intCast(usize, minor_version), - .status_code = @intCast(usize, status_code), + .minor_version = @as(usize, @intCast(minor_version)), + .status_code = @as(usize, @intCast(status_code)), .status = status, .headers = src[0..@min(num_headers, src.len)], .bytes_read = rc, @@ -237,8 +237,8 @@ pub const Headers = struct { const rc = c.phr_parse_headers( buf.ptr, buf.len, - @ptrCast([*c]c.phr_header, src.ptr), - @ptrCast([*c]usize, &num_headers), + @as([*c]c.phr_header, @ptrCast(src.ptr)), + @as([*c]usize, @ptrCast(&num_headers)), 0, ); diff --git a/src/deps/uws.zig b/src/deps/uws.zig index da92bb496..6e9d43e5f 100644 --- a/src/deps/uws.zig +++ b/src/deps/uws.zig @@ -46,7 +46,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { pub fn ssl(this: ThisSocket) *BoringSSL.SSL { if (comptime is_ssl) { - return @ptrCast(*BoringSSL.SSL, this.getNativeHandle()); + return @as(*BoringSSL.SSL, @ptrCast(this.getNativeHandle())); } @panic("socket is not a TLS socket"); } @@ -108,7 +108,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { Fields.onData( getValue(socket), TLSSocket{ .socket = socket }, - buf.?[0..@intCast(usize, len)], + buf.?[0..@as(usize, @intCast(len))], ); return socket; } @@ -162,7 +162,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { } pub fn getNativeHandle(this: ThisSocket) *NativeSocketHandleType(is_ssl) { - return @ptrCast(*NativeSocketHandleType(is_ssl), us_socket_get_native_handle(comptime ssl_int, this.socket).?); + return @as(*NativeSocketHandleType(is_ssl), @ptrCast(us_socket_get_native_handle(comptime ssl_int, this.socket).?)); } pub fn fd(this: ThisSocket) i32 { @@ -170,7 +170,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { @compileError("SSL sockets do not have a file descriptor accessible this way"); } - return @intCast(i32, @intFromPtr(us_socket_get_native_handle(0, this.socket))); + return @as(i32, @intCast(@intFromPtr(us_socket_get_native_handle(0, this.socket)))); } pub fn markNeedsMoreForSendfile(this: ThisSocket) void { @@ -192,7 +192,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { this.socket, ) orelse return null; - return @ptrCast(*ContextType, @alignCast(alignment, ptr)); + return @as(*align(alignment) ContextType, @ptrCast(@alignCast(ptr))); } pub fn context(this: ThisSocket) *SocketContext { return us_socket_context( @@ -212,7 +212,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { this.socket, data.ptr, // truncate to 31 bits since sign bit exists - @intCast(i32, @truncate(u31, data.len)), + @as(i32, @intCast(@as(u31, @truncate(data.len)))), @as(i32, @intFromBool(msg_more)), ); } @@ -223,7 +223,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { this.socket, data.ptr, // truncate to 31 bits since sign bit exists - @intCast(i32, @truncate(u31, data.len)), + @as(i32, @intCast(@as(u31, @truncate(data.len)))), @as(i32, @intFromBool(msg_more)), ); } @@ -430,7 +430,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { Fields.onData( getValue(socket), SocketHandlerType{ .socket = socket }, - buf.?[0..@intCast(usize, len)], + buf.?[0..@as(usize, @intCast(len))], ); return socket; } @@ -540,7 +540,7 @@ pub fn NewSocketHandler(comptime is_ssl: bool) type { Fields.onData( getValue(socket), ThisSocket{ .socket = socket }, - buf.?[0..@intCast(usize, len)], + buf.?[0..@as(usize, @intCast(len))], ); return socket; } @@ -646,7 +646,7 @@ pub const Timer = opaque { us_timer_set(this, cb, ms, repeat_ms); var value_ptr = us_timer_ext(this); @setRuntimeSafety(false); - @ptrCast(*@TypeOf(ptr), @alignCast(@alignOf(*@TypeOf(ptr)), value_ptr)).* = ptr; + @as(*@TypeOf(ptr), @ptrCast(@alignCast(value_ptr))).* = ptr; } pub fn deinit(this: *Timer) void { @@ -655,12 +655,12 @@ pub const Timer = opaque { } pub fn ext(this: *Timer, comptime Type: type) ?*Type { - return @ptrCast(*Type, @alignCast(@alignOf(Type), us_timer_ext(this).*.?)); + return @as(*Type, @ptrCast(@alignCast(us_timer_ext(this).*.?))); } pub fn as(this: *Timer, comptime Type: type) Type { @setRuntimeSafety(false); - return @ptrCast(*?Type, @alignCast(@alignOf(Type), us_timer_ext(this))).*.?; + return @as(*?Type, @ptrCast(@alignCast(us_timer_ext(this)))).*.?; } }; @@ -706,7 +706,7 @@ pub const SocketContext = opaque { this, ) orelse return null; - return @ptrCast(*ContextType, @alignCast(alignment, ptr)); + return @as(*align(alignment) ContextType, @ptrCast(@alignCast(ptr))); } }; pub const Loop = extern struct { @@ -769,7 +769,7 @@ pub const Loop = extern struct { pub fn unrefCount(this: *Loop, count: i32) void { log("unref x {d}", .{count}); this.num_polls -|= count; - this.active -|= @intCast(u32, count); + this.active -|= @as(u32, @intCast(count)); } pub fn get() ?*Loop { @@ -797,7 +797,7 @@ pub const Loop = extern struct { pub fn nextTick(this: *Loop, comptime UserType: type, user_data: UserType, comptime deferCallback: fn (ctx: UserType) void) void { const Handler = struct { pub fn callback(data: *anyopaque) callconv(.C) void { - deferCallback(@ptrCast(UserType, @alignCast(@alignOf(std.meta.Child(UserType)), data))); + deferCallback(@as(UserType, @ptrCast(@alignCast(data)))); } }; uws_loop_defer(this, user_data, Handler.callback); @@ -813,7 +813,7 @@ pub const Loop = extern struct { return uws_loop_removePostHandler(handler.loop, callback); } pub fn callback(data: *anyopaque, _: *Loop) callconv(.C) void { - callback_fn(@ptrCast(UserType, @alignCast(@alignOf(std.meta.Child(UserType)), data))); + callback_fn(@as(UserType, @ptrCast(@alignCast(data)))); } }; } @@ -984,7 +984,7 @@ pub const Poll = opaque { } pub fn fd(self: *Poll) @import("std").os.fd_t { - return @intCast(@import("std").os.fd_t, us_poll_fd(self)); + return @as(@import("std").os.fd_t, @intCast(us_poll_fd(self))); } pub fn start(self: *Poll, loop: *Loop, flags: Flags) void { @@ -1139,7 +1139,7 @@ pub const AnyWebSocket = union(enum) { pub fn publishWithOptions(ssl: bool, app: *anyopaque, topic: []const u8, message: []const u8, opcode: Opcode, compress: bool) bool { return uws_publish( @intFromBool(ssl), - @ptrCast(*uws_app_t, app), + @as(*uws_app_t, @ptrCast(app)), topic.ptr, topic.len, message.ptr, @@ -1202,12 +1202,12 @@ pub const WebSocketBehavior = extern struct { const active_field_name = if (is_ssl) "ssl" else "tcp"; pub fn _open(raw_ws: *RawWebSocket) callconv(.C) void { - var ws = @unionInit(AnyWebSocket, active_field_name, @ptrCast(*WebSocket, raw_ws)); + var ws = @unionInit(AnyWebSocket, active_field_name, @as(*WebSocket, @ptrCast(raw_ws))); var this = ws.as(Type).?; @call(.always_inline, Type.onOpen, .{ this, ws }); } pub fn _message(raw_ws: *RawWebSocket, message: [*c]const u8, length: usize, opcode: Opcode) callconv(.C) void { - var ws = @unionInit(AnyWebSocket, active_field_name, @ptrCast(*WebSocket, raw_ws)); + var ws = @unionInit(AnyWebSocket, active_field_name, @as(*WebSocket, @ptrCast(raw_ws))); var this = ws.as(Type).?; @call( .always_inline, @@ -1216,7 +1216,7 @@ pub const WebSocketBehavior = extern struct { ); } pub fn _drain(raw_ws: *RawWebSocket) callconv(.C) void { - var ws = @unionInit(AnyWebSocket, active_field_name, @ptrCast(*WebSocket, raw_ws)); + var ws = @unionInit(AnyWebSocket, active_field_name, @as(*WebSocket, @ptrCast(raw_ws))); var this = ws.as(Type).?; @call(.always_inline, Type.onDrain, .{ this, @@ -1224,7 +1224,7 @@ pub const WebSocketBehavior = extern struct { }); } pub fn _ping(raw_ws: *RawWebSocket, message: [*c]const u8, length: usize) callconv(.C) void { - var ws = @unionInit(AnyWebSocket, active_field_name, @ptrCast(*WebSocket, raw_ws)); + var ws = @unionInit(AnyWebSocket, active_field_name, @as(*WebSocket, @ptrCast(raw_ws))); var this = ws.as(Type).?; @call(.always_inline, Type.onPing, .{ this, @@ -1233,7 +1233,7 @@ pub const WebSocketBehavior = extern struct { }); } pub fn _pong(raw_ws: *RawWebSocket, message: [*c]const u8, length: usize) callconv(.C) void { - var ws = @unionInit(AnyWebSocket, active_field_name, @ptrCast(*WebSocket, raw_ws)); + var ws = @unionInit(AnyWebSocket, active_field_name, @as(*WebSocket, @ptrCast(raw_ws))); var this = ws.as(Type).?; @call(.always_inline, Type.onPong, .{ this, @@ -1242,7 +1242,7 @@ pub const WebSocketBehavior = extern struct { }); } pub fn _close(raw_ws: *RawWebSocket, code: i32, message: [*c]const u8, length: usize) callconv(.C) void { - var ws = @unionInit(AnyWebSocket, active_field_name, @ptrCast(*WebSocket, raw_ws)); + var ws = @unionInit(AnyWebSocket, active_field_name, @as(*WebSocket, @ptrCast(raw_ws))); var this = ws.as(Type).?; @call( .always_inline, @@ -1259,7 +1259,7 @@ pub const WebSocketBehavior = extern struct { @call( .always_inline, Server.onWebSocketUpgrade, - .{ bun.cast(*Server, ptr), @ptrCast(*NewApp(is_ssl).Response, res), req, context, id }, + .{ bun.cast(*Server, ptr), @as(*NewApp(is_ssl).Response, @ptrCast(res)), req, context, id }, ); } @@ -1322,7 +1322,7 @@ pub const Request = opaque { } pub fn parameter(req: *Request, index: u16) []const u8 { var ptr: [*]const u8 = undefined; - return ptr[0..req.uws_req_get_parameter(@intCast(c_ushort, index), &ptr)]; + return ptr[0..req.uws_req_get_parameter(@as(c_ushort, @intCast(index)), &ptr)]; } extern fn uws_req_is_ancient(res: *Request) bool; @@ -1340,7 +1340,7 @@ pub const ListenSocket = opaque { us_listen_socket_close(@intFromBool(ssl), this); } pub fn getLocalPort(this: *ListenSocket, ssl: bool) i32 { - return us_socket_local_port(@intFromBool(ssl), @ptrCast(*uws.Socket, this)); + return us_socket_local_port(@intFromBool(ssl), @as(*uws.Socket, @ptrCast(this))); } }; extern fn us_listen_socket_close(ssl: i32, ls: *ListenSocket) void; @@ -1357,21 +1357,21 @@ pub fn NewApp(comptime ssl: bool) type { unreachable; } - return uws_app_close(ssl_flag, @ptrCast(*uws_app_s, this)); + return uws_app_close(ssl_flag, @as(*uws_app_s, @ptrCast(this))); } pub fn create(opts: us_bun_socket_context_options_t) *ThisApp { if (comptime is_bindgen) { unreachable; } - return @ptrCast(*ThisApp, uws_create_app(ssl_flag, opts)); + return @as(*ThisApp, @ptrCast(uws_create_app(ssl_flag, opts))); } pub fn destroy(app: *ThisApp) void { if (comptime is_bindgen) { unreachable; } - return uws_app_destroy(ssl_flag, @ptrCast(*uws_app_s, app)); + return uws_app_destroy(ssl_flag, @as(*uws_app_s, @ptrCast(app))); } fn RouteHandler(comptime UserDataType: type, comptime handler: fn (UserDataType, *Request, *Response) void) type { @@ -1388,7 +1388,7 @@ pub fn NewApp(comptime ssl: bool) type { .{ {}, req, - @ptrCast(*Response, @alignCast(@alignOf(*Response), res)), + @as(*Response, @ptrCast(@alignCast(res))), }, ); } else { @@ -1396,9 +1396,9 @@ pub fn NewApp(comptime ssl: bool) type { .always_inline, handler, .{ - @ptrCast(UserDataType, @alignCast(@alignOf(UserDataType), user_data.?)), + @as(UserDataType, @ptrCast(@alignCast(user_data.?))), req, - @ptrCast(*Response, @alignCast(@alignOf(*Response), res)), + @as(*Response, @ptrCast(@alignCast(res))), }, ); } @@ -1411,13 +1411,13 @@ pub fn NewApp(comptime ssl: bool) type { if (comptime is_bindgen) { unreachable; } - return us_listen_socket_close(ssl_flag, @ptrCast(*uws.ListenSocket, this)); + return us_listen_socket_close(ssl_flag, @as(*uws.ListenSocket, @ptrCast(this))); } pub inline fn getLocalPort(this: *ThisApp.ListenSocket) i32 { if (comptime is_bindgen) { unreachable; } - return us_socket_local_port(ssl_flag, @ptrCast(*uws.Socket, this)); + return us_socket_local_port(ssl_flag, @as(*uws.Socket, @ptrCast(this))); } }; @@ -1431,7 +1431,7 @@ pub fn NewApp(comptime ssl: bool) type { if (comptime is_bindgen) { unreachable; } - uws_app_get(ssl_flag, @ptrCast(*uws_app_t, app), pattern, RouteHandler(UserDataType, handler).handle, user_data); + uws_app_get(ssl_flag, @as(*uws_app_t, @ptrCast(app)), pattern, RouteHandler(UserDataType, handler).handle, user_data); } pub fn post( app: *ThisApp, @@ -1443,7 +1443,7 @@ pub fn NewApp(comptime ssl: bool) type { if (comptime is_bindgen) { unreachable; } - uws_app_post(ssl_flag, @ptrCast(*uws_app_t, app), pattern, RouteHandler(UserDataType, handler).handle, user_data); + uws_app_post(ssl_flag, @as(*uws_app_t, @ptrCast(app)), pattern, RouteHandler(UserDataType, handler).handle, user_data); } pub fn options( app: *ThisApp, @@ -1455,7 +1455,7 @@ pub fn NewApp(comptime ssl: bool) type { if (comptime is_bindgen) { unreachable; } - uws_app_options(ssl_flag, @ptrCast(*uws_app_t, app), pattern, RouteHandler(UserDataType, handler).handle, user_data); + uws_app_options(ssl_flag, @as(*uws_app_t, @ptrCast(app)), pattern, RouteHandler(UserDataType, handler).handle, user_data); } pub fn delete( app: *ThisApp, @@ -1467,7 +1467,7 @@ pub fn NewApp(comptime ssl: bool) type { if (comptime is_bindgen) { unreachable; } - uws_app_delete(ssl_flag, @ptrCast(*uws_app_t, app), pattern, RouteHandler(UserDataType, handler).handle, user_data); + uws_app_delete(ssl_flag, @as(*uws_app_t, @ptrCast(app)), pattern, RouteHandler(UserDataType, handler).handle, user_data); } pub fn patch( app: *ThisApp, @@ -1479,7 +1479,7 @@ pub fn NewApp(comptime ssl: bool) type { if (comptime is_bindgen) { unreachable; } - uws_app_patch(ssl_flag, @ptrCast(*uws_app_t, app), pattern, RouteHandler(UserDataType, handler).handle, user_data); + uws_app_patch(ssl_flag, @as(*uws_app_t, @ptrCast(app)), pattern, RouteHandler(UserDataType, handler).handle, user_data); } pub fn put( app: *ThisApp, @@ -1491,7 +1491,7 @@ pub fn NewApp(comptime ssl: bool) type { if (comptime is_bindgen) { unreachable; } - uws_app_put(ssl_flag, @ptrCast(*uws_app_t, app), pattern, RouteHandler(UserDataType, handler).handle, user_data); + uws_app_put(ssl_flag, @as(*uws_app_t, @ptrCast(app)), pattern, RouteHandler(UserDataType, handler).handle, user_data); } pub fn head( app: *ThisApp, @@ -1503,7 +1503,7 @@ pub fn NewApp(comptime ssl: bool) type { if (comptime is_bindgen) { unreachable; } - uws_app_head(ssl_flag, @ptrCast(*uws_app_t, app), pattern, RouteHandler(UserDataType, handler).handle, user_data); + uws_app_head(ssl_flag, @as(*uws_app_t, @ptrCast(app)), pattern, RouteHandler(UserDataType, handler).handle, user_data); } pub fn connect( app: *ThisApp, @@ -1515,7 +1515,7 @@ pub fn NewApp(comptime ssl: bool) type { if (comptime is_bindgen) { unreachable; } - uws_app_connect(ssl_flag, @ptrCast(*uws_app_t, app), pattern, RouteHandler(UserDataType, handler).handle, user_data); + uws_app_connect(ssl_flag, @as(*uws_app_t, @ptrCast(app)), pattern, RouteHandler(UserDataType, handler).handle, user_data); } pub fn trace( app: *ThisApp, @@ -1527,7 +1527,7 @@ pub fn NewApp(comptime ssl: bool) type { if (comptime is_bindgen) { unreachable; } - uws_app_trace(ssl_flag, @ptrCast(*uws_app_t, app), pattern, RouteHandler(UserDataType, handler).handle, user_data); + uws_app_trace(ssl_flag, @as(*uws_app_t, @ptrCast(app)), pattern, RouteHandler(UserDataType, handler).handle, user_data); } pub fn any( app: *ThisApp, @@ -1539,13 +1539,13 @@ pub fn NewApp(comptime ssl: bool) type { if (comptime is_bindgen) { unreachable; } - uws_app_any(ssl_flag, @ptrCast(*uws_app_t, app), pattern, RouteHandler(UserDataType, handler).handle, user_data); + uws_app_any(ssl_flag, @as(*uws_app_t, @ptrCast(app)), pattern, RouteHandler(UserDataType, handler).handle, user_data); } pub fn run(app: *ThisApp) void { if (comptime is_bindgen) { unreachable; } - return uws_app_run(ssl_flag, @ptrCast(*uws_app_t, app)); + return uws_app_run(ssl_flag, @as(*uws_app_t, @ptrCast(app))); } pub fn listen( app: *ThisApp, @@ -1560,17 +1560,17 @@ pub fn NewApp(comptime ssl: bool) type { const Wrapper = struct { pub fn handle(socket: ?*uws.ListenSocket, conf: uws_app_listen_config_t, data: ?*anyopaque) callconv(.C) void { if (comptime UserData == void) { - @call(.always_inline, handler, .{ {}, @ptrCast(?*ThisApp.ListenSocket, socket), conf }); + @call(.always_inline, handler, .{ {}, @as(?*ThisApp.ListenSocket, @ptrCast(socket)), conf }); } else { @call(.always_inline, handler, .{ - @ptrCast(UserData, @alignCast(@alignOf(UserData), data.?)), - @ptrCast(?*ThisApp.ListenSocket, socket), + @as(UserData, @ptrCast(@alignCast(data.?))), + @as(?*ThisApp.ListenSocket, @ptrCast(socket)), conf, }); } } }; - return uws_app_listen(ssl_flag, @ptrCast(*uws_app_t, app), port, Wrapper.handle, user_data); + return uws_app_listen(ssl_flag, @as(*uws_app_t, @ptrCast(app)), port, Wrapper.handle, user_data); } pub fn listenWithConfig( @@ -1583,56 +1583,56 @@ pub fn NewApp(comptime ssl: bool) type { const Wrapper = struct { pub fn handle(socket: ?*uws.ListenSocket, data: ?*anyopaque) callconv(.C) void { if (comptime UserData == void) { - @call(.always_inline, handler, .{ {}, @ptrCast(?*ThisApp.ListenSocket, socket) }); + @call(.always_inline, handler, .{ {}, @as(?*ThisApp.ListenSocket, @ptrCast(socket)) }); } else { @call(.always_inline, handler, .{ - @ptrCast(UserData, @alignCast(@alignOf(UserData), data.?)), - @ptrCast(?*ThisApp.ListenSocket, socket), + @as(UserData, @ptrCast(@alignCast(data.?))), + @as(?*ThisApp.ListenSocket, @ptrCast(socket)), }); } } }; - return uws_app_listen_with_config(ssl_flag, @ptrCast(*uws_app_t, app), config.host, @intCast(u16, config.port), config.options, Wrapper.handle, user_data); + return uws_app_listen_with_config(ssl_flag, @as(*uws_app_t, @ptrCast(app)), config.host, @as(u16, @intCast(config.port)), config.options, Wrapper.handle, user_data); } pub fn constructorFailed(app: *ThisApp) bool { return uws_constructor_failed(ssl_flag, app); } pub fn num_subscribers(app: *ThisApp, topic: []const u8) c_uint { - return uws_num_subscribers(ssl_flag, @ptrCast(*uws_app_t, app), topic.ptr, topic.len); + return uws_num_subscribers(ssl_flag, @as(*uws_app_t, @ptrCast(app)), topic.ptr, topic.len); } pub fn publish(app: *ThisApp, topic: []const u8, message: []const u8, opcode: Opcode, compress: bool) bool { - return uws_publish(ssl_flag, @ptrCast(*uws_app_t, app), topic.ptr, topic.len, message.ptr, message.len, opcode, compress); + return uws_publish(ssl_flag, @as(*uws_app_t, @ptrCast(app)), topic.ptr, topic.len, message.ptr, message.len, opcode, compress); } pub fn getNativeHandle(app: *ThisApp) ?*anyopaque { return uws_get_native_handle(ssl_flag, app); } pub fn removeServerName(app: *ThisApp, hostname_pattern: [*:0]const u8) void { - return uws_remove_server_name(ssl_flag, @ptrCast(*uws_app_t, app), hostname_pattern); + return uws_remove_server_name(ssl_flag, @as(*uws_app_t, @ptrCast(app)), hostname_pattern); } pub fn addServerName(app: *ThisApp, hostname_pattern: [*:0]const u8) void { - return uws_add_server_name(ssl_flag, @ptrCast(*uws_app_t, app), hostname_pattern); + return uws_add_server_name(ssl_flag, @as(*uws_app_t, @ptrCast(app)), hostname_pattern); } pub fn addServerNameWithOptions(app: *ThisApp, hostname_pattern: [:0]const u8, opts: us_bun_socket_context_options_t) void { - return uws_add_server_name_with_options(ssl_flag, @ptrCast(*uws_app_t, app), hostname_pattern, opts); + return uws_add_server_name_with_options(ssl_flag, @as(*uws_app_t, @ptrCast(app)), hostname_pattern, opts); } pub fn missingServerName(app: *ThisApp, handler: uws_missing_server_handler, user_data: ?*anyopaque) void { - return uws_missing_server_name(ssl_flag, @ptrCast(*uws_app_t, app), handler, user_data); + return uws_missing_server_name(ssl_flag, @as(*uws_app_t, @ptrCast(app)), handler, user_data); } pub fn filter(app: *ThisApp, handler: uws_filter_handler, user_data: ?*anyopaque) void { - return uws_filter(ssl_flag, @ptrCast(*uws_app_t, app), handler, user_data); + return uws_filter(ssl_flag, @as(*uws_app_t, @ptrCast(app)), handler, user_data); } pub fn ws(app: *ThisApp, pattern: []const u8, ctx: *anyopaque, id: usize, behavior_: WebSocketBehavior) void { var behavior = behavior_; - uws_ws(ssl_flag, @ptrCast(*uws_app_t, app), ctx, pattern.ptr, pattern.len, id, &behavior); + uws_ws(ssl_flag, @as(*uws_app_t, @ptrCast(app)), ctx, pattern.ptr, pattern.len, id, &behavior); } pub const Response = opaque { inline fn castRes(res: *uws_res) *Response { - return @ptrCast(*Response, @alignCast(@alignOf(*Response), res)); + return @as(*Response, @ptrCast(@alignCast(res))); } pub inline fn downcast(res: *Response) *uws_res { - return @ptrCast(*uws_res, @alignCast(@alignOf(*uws_res), res)); + return @as(*uws_res, @ptrCast(@alignCast(res))); } pub fn end(res: *Response, data: []const u8, close_connection: bool) void { @@ -1644,7 +1644,7 @@ pub fn NewApp(comptime ssl: bool) type { } pub fn state(res: *const Response) State { - return uws_res_state(ssl_flag, @ptrCast(*const uws_res, @alignCast(@alignOf(*const uws_res), res))); + return uws_res_state(ssl_flag, @as(*const uws_res, @ptrCast(@alignCast(res)))); } pub fn prepareForSendfile(res: *Response) void { @@ -1685,14 +1685,14 @@ pub fn NewApp(comptime ssl: bool) type { return uws_res_get_write_offset(ssl_flag, res.downcast()); } pub fn overrideWriteOffset(res: *Response, offset: anytype) void { - uws_res_override_write_offset(ssl_flag, res.downcast(), @intCast(uintmax_t, offset)); + uws_res_override_write_offset(ssl_flag, res.downcast(), @as(uintmax_t, @intCast(offset))); } pub fn hasResponded(res: *Response) bool { return uws_res_has_responded(ssl_flag, res.downcast()); } pub fn getNativeHandle(res: *Response) i32 { - return @intCast(i32, @intFromPtr(uws_res_get_native_handle(ssl_flag, res.downcast()))); + return @as(i32, @intCast(@intFromPtr(uws_res_get_native_handle(ssl_flag, res.downcast())))); } pub fn onWritable( res: *Response, @@ -1706,7 +1706,7 @@ pub fn NewApp(comptime ssl: bool) type { return @call(.always_inline, handler, .{ {}, amount, castRes(this) }); } else { return @call(.always_inline, handler, .{ - @ptrCast(UserDataType, @alignCast(@alignOf(UserDataType), data.?)), + @as(UserDataType, @ptrCast(@alignCast(data.?))), amount, castRes(this), }); @@ -1726,7 +1726,7 @@ pub fn NewApp(comptime ssl: bool) type { if (comptime UserDataType == void) { @call(.always_inline, handler, .{ {}, castRes(this), {} }); } else { - @call(.always_inline, handler, .{ @ptrCast(UserDataType, @alignCast(@alignOf(UserDataType), user_data.?)), castRes(this) }); + @call(.always_inline, handler, .{ @as(UserDataType, @ptrCast(@alignCast(user_data.?))), castRes(this) }); } } }; @@ -1758,7 +1758,7 @@ pub fn NewApp(comptime ssl: bool) type { }); } else { @call(.always_inline, handler, .{ - @ptrCast(UserDataType, @alignCast(@alignOf(UserDataType), user_data.?)), + @as(UserDataType, @ptrCast(@alignCast(user_data.?))), castRes(this), if (len > 0) chunk_ptr[0..len] else "", last, @@ -1808,7 +1808,7 @@ pub fn NewApp(comptime ssl: bool) type { }); } else { @call(.always_inline, handler, .{ - @ptrCast(UserDataType, @alignCast(@alignOf(UserDataType), user_data.?)), + @as(UserDataType, @ptrCast(@alignCast(user_data.?))), }); } } @@ -1834,7 +1834,7 @@ pub fn NewApp(comptime ssl: bool) type { // @call(.always_inline, handler, .{ // @ptrCast( // UserDataType, - // @alignCast(@alignOf(UserDataType), user_data.?), + // @alignCast( user_data.?), // ), // fd, // }); @@ -1853,7 +1853,7 @@ pub fn NewApp(comptime ssl: bool) type { // @call(.always_inline, handler, .{ // @ptrCast( // UserDataType, - // @alignCast(@alignOf(UserDataType), user_data.?), + // @alignCast( user_data.?), // ), // fd, // }); @@ -1903,11 +1903,11 @@ pub fn NewApp(comptime ssl: bool) type { pub const WebSocket = opaque { pub fn raw(this: *WebSocket) *RawWebSocket { - return @ptrCast(*RawWebSocket, this); + return @as(*RawWebSocket, @ptrCast(this)); } pub fn as(this: *WebSocket, comptime Type: type) ?*Type { @setRuntimeSafety(false); - return @ptrCast(?*Type, @alignCast(@alignOf(Type), uws_ws_get_user_data(ssl_flag, this.raw()))); + return @as(?*Type, @ptrCast(@alignCast(uws_ws_get_user_data(ssl_flag, this.raw())))); } pub fn close(this: *WebSocket) void { diff --git a/src/deps/zig-clap/clap.zig b/src/deps/zig-clap/clap.zig index 68cd2451c..37cc4814e 100644 --- a/src/deps/zig-clap/clap.zig +++ b/src/deps/zig-clap/clap.zig @@ -343,7 +343,7 @@ pub fn helpFull( var cs = io.countingWriter(io.null_writer); try printParam(cs.writer(), Id, param, Error, context, valueText); if (res < cs.bytes_written) - res = @intCast(usize, cs.bytes_written); + res = @as(usize, @intCast(cs.bytes_written)); } break :blk res; @@ -356,7 +356,7 @@ pub fn helpFull( var cs = io.countingWriter(stream); try stream.print("\t", .{}); try printParam(cs.writer(), Id, param, Error, context, valueText); - try stream.writeByteNTimes(' ', max_spacing - @intCast(usize, cs.bytes_written)); + try stream.writeByteNTimes(' ', max_spacing - @as(usize, @intCast(cs.bytes_written))); try stream.print("\t{s}\n", .{try helpText(context, param)}); } } @@ -482,7 +482,7 @@ pub fn usageFull( // Seems the zig compiler is being a little wierd. I doesn't allow me to write // @as(*const [1]u8, s) VVVVVVVVVVVVVVVVVVVVVVVVVVVVVV - const name = if (param.names.short) |*s| @ptrCast([*]const u8, s)[0..1] else param.names.long orelse { + const name = if (param.names.short) |*s| @as([*]const u8, @ptrCast(s))[0..1] else param.names.long orelse { positional = param; continue; }; diff --git a/src/deps/zig-datetime/src/datetime.zig b/src/deps/zig-datetime/src/datetime.zig index 1014863b8..89f57d583 100644 --- a/src/deps/zig-datetime/src/datetime.zig +++ b/src/deps/zig-datetime/src/datetime.zig @@ -47,7 +47,7 @@ pub const Month = enum(u4) { if (month.len == 3) { inline for (std.meta.fields(Month)) |f| { if (ascii.eqlIgnoreCase(f.name[0..3], month)) { - return @enumFromInt(Month, f.value); + return @as(Month, @enumFromInt(f.value)); } } } @@ -57,7 +57,7 @@ pub const Month = enum(u4) { pub fn parseName(month: []const u8) !Month { inline for (std.meta.fields(Month)) |f| { if (ascii.eqlIgnoreCase(f.name, month)) { - return @enumFromInt(Month, f.value); + return @as(Month, @enumFromInt(f.value)); } } return error.InvalidFormat; @@ -210,9 +210,9 @@ pub const Date = struct { if (day < 1 or day > daysInMonth(year, month)) return error.InvalidDate; // Since we just validated the ranges we can now savely cast return Date{ - .year = @intCast(u16, year), - .month = @intCast(u4, month), - .day = @intCast(u8, day), + .year = @as(u16, @intCast(year)), + .month = @as(u4, @intCast(month)), + .day = @as(u8, @intCast(day)), }; } @@ -313,30 +313,30 @@ pub const Date = struct { // Create a date from the number of seconds since 1 Jan 1970 pub fn fromSeconds(seconds: f64) Date { const r = math.modf(seconds); - const timestamp = @intFromFloat(i64, r.ipart); // Seconds + const timestamp = @as(i64, @intFromFloat(r.ipart)); // Seconds const days = @divFloor(timestamp, time.s_per_day) + @as(i64, EPOCH); assert(days >= 0 and days <= MAX_ORDINAL); - return Date.fromOrdinal(@intCast(u32, days)); + return Date.fromOrdinal(@as(u32, @intCast(days))); } // Return the number of seconds since 1 Jan 1970 pub fn toSeconds(self: Date) f64 { - const days = @intCast(i64, self.toOrdinal()) - @as(i64, EPOCH); - return @floatFromInt(f64, days * time.s_per_day); + const days = @as(i64, @intCast(self.toOrdinal())) - @as(i64, EPOCH); + return @as(f64, @floatFromInt(days * time.s_per_day)); } // Create a date from a UTC timestamp in milliseconds relative to Jan 1st 1970 pub fn fromTimestamp(timestamp: i64) Date { const days = @divFloor(timestamp, time.ms_per_day) + @as(i64, EPOCH); assert(days >= 0 and days <= MAX_ORDINAL); - return Date.fromOrdinal(@intCast(u32, days)); + return Date.fromOrdinal(@as(u32, @intCast(days))); } // Create a UTC timestamp in milliseconds relative to Jan 1st 1970 pub fn toTimestamp(self: Date) i64 { - const d = @intCast(i64, daysBeforeYear(self.year)); - const days = d - @as(i64, EPOCH) + @intCast(i64, self.dayOfYear()); - return @intCast(i64, days) * time.ms_per_day; + const d = @as(i64, @intCast(daysBeforeYear(self.year))); + const days = d - @as(i64, EPOCH) + @as(i64, @intCast(self.dayOfYear())); + return @as(i64, @intCast(days)) * time.ms_per_day; } // Convert to an ISOCalendar date contain the year, week number, and @@ -359,7 +359,7 @@ pub const Date = struct { } assert(week >= 0 and week < 53); assert(day >= 0 and day < 8); - return ISOCalendar{ .year = y, .week = @intCast(u6, week + 1), .weekday = @intCast(u3, day + 1) }; + return ISOCalendar{ .year = y, .week = @as(u6, @intCast(week + 1)), .weekday = @as(u3, @intCast(day + 1)) }; } // ------------------------------------------------------------------------ @@ -439,13 +439,13 @@ pub const Date = struct { pub fn dayOfYear(self: Date) u16 { var d = self.toOrdinal() - daysBeforeYear(self.year); assert(d >= 1 and d <= 366); - return @intCast(u16, d); + return @as(u16, @intCast(d)); } // Return day of week starting with Monday = 1 and Sunday = 7 pub fn dayOfWeek(self: Date) Weekday { - const dow = @intCast(u3, self.toOrdinal() % 7); - return @enumFromInt(Weekday, if (dow == 0) 7 else dow); + const dow = @as(u3, @intCast(self.toOrdinal() % 7)); + return @as(Weekday, @enumFromInt(if (dow == 0) 7 else dow)); } // Return the ISO calendar based week of year. With 1 being the first week. @@ -471,7 +471,7 @@ pub const Date = struct { // Return the name of the day of the month, eg "January" pub fn monthName(self: Date) []const u8 { assert(self.month >= 1 and self.month <= 12); - return @tagName(@enumFromInt(Month, self.month)); + return @tagName(@as(Month, @enumFromInt(self.month))); } // ------------------------------------------------------------------------ @@ -502,9 +502,9 @@ pub const Date = struct { // Shift year var year = self.year; if (delta.years < 0) { - year -= @intCast(u16, -delta.years); + year -= @as(u16, @intCast(-delta.years)); } else { - year += @intCast(u16, delta.years); + year += @as(u16, @intCast(delta.years)); } var ord = daysBeforeYear(year); var days = self.dayOfYear(); @@ -527,9 +527,9 @@ pub const Date = struct { // Shift days if (delta.days < 0) { - ord -= @intCast(u32, -delta.days); + ord -= @as(u32, @intCast(-delta.days)); } else { - ord += @intCast(u32, delta.days); + ord += @as(u32, @intCast(delta.days)); } return Date.fromOrdinal(ord); } @@ -827,9 +827,9 @@ pub const Time = struct { return error.InvalidTime; } return Time{ - .hour = @intCast(u8, hour), - .minute = @intCast(u8, minute), - .second = @intCast(u8, second), + .hour = @as(u8, @intCast(hour)), + .minute = @as(u8, @intCast(minute)), + .second = @as(u8, @intCast(second)), .nanosecond = nanosecond, }; } @@ -842,15 +842,15 @@ pub const Time = struct { // Create Time from a UTC Timestamp in milliseconds pub fn fromTimestamp(timestamp: i64) Time { const remainder = @mod(timestamp, time.ms_per_day); - var t = @intCast(u64, math.absInt(remainder) catch unreachable); + var t = @as(u64, @intCast(math.absInt(remainder) catch unreachable)); // t is now only the time part of the day - const h = @intCast(u32, @divFloor(t, time.ms_per_hour)); + const h = @as(u32, @intCast(@divFloor(t, time.ms_per_hour))); t -= h * time.ms_per_hour; - const m = @intCast(u32, @divFloor(t, time.ms_per_min)); + const m = @as(u32, @intCast(@divFloor(t, time.ms_per_min))); t -= m * time.ms_per_min; - const s = @intCast(u32, @divFloor(t, time.ms_per_s)); + const s = @as(u32, @intCast(@divFloor(t, time.ms_per_s))); t -= s * time.ms_per_s; - const ns = @intCast(u32, t * time.ns_per_ms); + const ns = @as(u32, @intCast(t * time.ns_per_ms)); return Time.create(h, m, s, ns) catch unreachable; } @@ -859,7 +859,7 @@ pub const Time = struct { assert(seconds >= 0); // Convert to s and us const r = math.modf(seconds); - var s = @intFromFloat(u32, @mod(r.ipart, time.s_per_day)); // s + var s = @as(u32, @intFromFloat(@mod(r.ipart, time.s_per_day))); // s const h = @divFloor(s, time.s_per_hour); s -= h * time.s_per_hour; const m = @divFloor(s, time.s_per_min); @@ -875,32 +875,32 @@ pub const Time = struct { s -= 1; frac += time.ns_per_s; } - const ns = @intFromFloat(u32, frac); + const ns = @as(u32, @intFromFloat(frac)); return Time.create(h, m, s, ns) catch unreachable; // If this fails it's a bug } // Convert to a time in seconds relative to the UTC timezones // including the nanosecond component pub fn toSeconds(self: Time) f64 { - const s = @floatFromInt(f64, self.totalSeconds()); - const ns = @floatFromInt(f64, self.nanosecond) / time.ns_per_s; + const s = @as(f64, @floatFromInt(self.totalSeconds())); + const ns = @as(f64, @floatFromInt(self.nanosecond)) / time.ns_per_s; return s + ns; } // Convert to a timestamp in milliseconds from UTC pub fn toTimestamp(self: Time) i64 { - const h = @intCast(i64, self.hour) * time.ms_per_hour; - const m = @intCast(i64, self.minute) * time.ms_per_min; - const s = @intCast(i64, self.second) * time.ms_per_s; - const ms = @intCast(i64, self.nanosecond / time.ns_per_ms); + const h = @as(i64, @intCast(self.hour)) * time.ms_per_hour; + const m = @as(i64, @intCast(self.minute)) * time.ms_per_min; + const s = @as(i64, @intCast(self.second)) * time.ms_per_s; + const ms = @as(i64, @intCast(self.nanosecond / time.ns_per_ms)); return h + m + s + ms; } // Total seconds from the start of day pub fn totalSeconds(self: Time) i32 { - const h = @intCast(i32, self.hour) * time.s_per_hour; - const m = @intCast(i32, self.minute) * time.s_per_min; - const s = @intCast(i32, self.second); + const h = @as(i32, @intCast(self.hour)) * time.s_per_hour; + const m = @as(i32, @intCast(self.minute)) * time.s_per_min; + const s = @as(i32, @intCast(self.second)); return h + m + s; } @@ -1097,14 +1097,14 @@ pub const Datetime = struct { const a = daysBeforeYear(dt.date.year); // Must always subtract greater of the two if (self.years > 0) { - const y = @intCast(u32, self.years); + const y = @as(u32, @intCast(self.years)); const b = daysBeforeYear(dt.date.year + y); - days += @intCast(i32, b - a); + days += @as(i32, @intCast(b - a)); } else { - const y = @intCast(u32, -self.years); + const y = @as(u32, @intCast(-self.years)); assert(y < dt.date.year); // Does not work below year 1 const b = daysBeforeYear(dt.date.year - y); - days -= @intCast(i32, a - b); + days -= @as(i32, @intCast(a - b)); } } } else { @@ -1176,19 +1176,19 @@ pub const Datetime = struct { // From POSIX timestamp in milliseconds relative to 1 Jan 1970 pub fn fromTimestamp(timestamp: i64) Datetime { const t = @divFloor(timestamp, time.ms_per_day); - const d = @intCast(u64, math.absInt(t) catch unreachable); + const d = @as(u64, @intCast(math.absInt(t) catch unreachable)); const days = if (timestamp >= 0) d + EPOCH else EPOCH - d; assert(days >= 0 and days <= MAX_ORDINAL); return Datetime{ - .date = Date.fromOrdinal(@intCast(u32, days)), - .time = Time.fromTimestamp(timestamp - @intCast(i64, d) * time.ns_per_day), + .date = Date.fromOrdinal(@as(u32, @intCast(days))), + .time = Time.fromTimestamp(timestamp - @as(i64, @intCast(d)) * time.ns_per_day), .zone = &timezones.UTC, }; } // From a file modified time in ns pub fn fromModifiedTime(mtime: i128) Datetime { - const ts = @intCast(i64, @divFloor(mtime, time.ns_per_ms)); + const ts = @as(i64, @intCast(@divFloor(mtime, time.ns_per_ms))); return Datetime.fromTimestamp(ts); } @@ -1248,13 +1248,13 @@ pub const Datetime = struct { // Return a Datetime.Delta relative to this date pub fn sub(self: Datetime, other: Datetime) Delta { - const days = @intCast(i32, self.date.toOrdinal()) - @intCast(i32, other.date.toOrdinal()); + const days = @as(i32, @intCast(self.date.toOrdinal())) - @as(i32, @intCast(other.date.toOrdinal())); var seconds = self.time.totalSeconds() - other.time.totalSeconds(); if (self.zone.offset != other.zone.offset) { const mins = (self.zone.offset - other.zone.offset); seconds += mins * time.s_per_min; } - const ns = @intCast(i32, self.time.nanosecond) - @intCast(i32, other.time.nanosecond); + const ns = @as(i32, @intCast(self.time.nanosecond)) - @as(i32, @intCast(other.time.nanosecond)); return Delta{ .days = days, .seconds = seconds, .nanoseconds = ns }; } @@ -1300,7 +1300,7 @@ pub const Datetime = struct { var s = delta.seconds + self.time.totalSeconds(); // Rollover ns to s - var ns = delta.nanoseconds + @intCast(i32, self.time.nanosecond); + var ns = delta.nanoseconds + @as(i32, @intCast(self.time.nanosecond)); if (ns >= time.ns_per_s) { s += 1; ns -= time.ns_per_s; @@ -1309,17 +1309,17 @@ pub const Datetime = struct { ns += time.ns_per_s; } assert(ns >= 0 and ns < time.ns_per_s); - const nanosecond = @intCast(u32, ns); + const nanosecond = @as(u32, @intCast(ns)); // Rollover s to days if (s >= time.s_per_day) { const d = @divFloor(s, time.s_per_day); - days += @intCast(i32, d); + days += @as(i32, @intCast(d)); s -= d * time.s_per_day; } else if (s < 0) { if (s < -time.s_per_day) { // Wrap multiple const d = @divFloor(s, -time.s_per_day); - days -= @intCast(i32, d); + days -= @as(i32, @intCast(d)); s += d * time.s_per_day; } days -= 1; @@ -1327,7 +1327,7 @@ pub const Datetime = struct { } assert(s >= 0 and s < time.s_per_day); - var second = @intCast(u32, s); + var second = @as(u32, @intCast(s)); const hour = @divFloor(second, time.s_per_hour); second -= hour * time.s_per_hour; const minute = @divFloor(second, time.s_per_min); @@ -1378,7 +1378,7 @@ pub const Datetime = struct { // From time in nanoseconds pub fn formatHttpFromModifiedDate(buf: []u8, mtime: i128) ![]const u8 { - const ts = @intCast(i64, @divFloor(mtime, time.ns_per_ms)); + const ts = @as(i64, @intCast(@divFloor(mtime, time.ns_per_ms))); return Datetime.formatHttpFromTimestamp(buf, ts); } diff --git a/src/env_loader.zig b/src/env_loader.zig index 74577e3f2..406002731 100644 --- a/src/env_loader.zig +++ b/src/env_loader.zig @@ -238,7 +238,7 @@ pub const Loader = struct { e_strings[0] = js_ast.E.String{ .data = if (value.len > 0) - @ptrFromInt([*]u8, @intFromPtr(value.ptr))[0..value.len] + @as([*]u8, @ptrFromInt(@intFromPtr(value.ptr)))[0..value.len] else &[_]u8{}, }; @@ -261,7 +261,7 @@ pub const Loader = struct { if (std.mem.indexOfScalar(u64, string_map_hashes, hash)) |key_i| { e_strings[0] = js_ast.E.String{ .data = if (value.len > 0) - @ptrFromInt([*]u8, @intFromPtr(value.ptr))[0..value.len] + @as([*]u8, @ptrFromInt(@intFromPtr(value.ptr)))[0..value.len] else &[_]u8{}, }; @@ -287,7 +287,7 @@ pub const Loader = struct { e_strings[0] = js_ast.E.String{ .data = if (entry.value_ptr.*.len > 0) - @ptrFromInt([*]u8, @intFromPtr(entry.value_ptr.*.ptr))[0..value.len] + @as([*]u8, @ptrFromInt(@intFromPtr(entry.value_ptr.*.ptr)))[0..value.len] else &[_]u8{}, }; @@ -425,17 +425,17 @@ pub const Loader = struct { pub fn printLoaded(this: *Loader, start: i128) void { const count = - @intCast(u8, @intFromBool(this.@".env.development.local" != null)) + - @intCast(u8, @intFromBool(this.@".env.production.local" != null)) + - @intCast(u8, @intFromBool(this.@".env.test.local" != null)) + - @intCast(u8, @intFromBool(this.@".env.local" != null)) + - @intCast(u8, @intFromBool(this.@".env.development" != null)) + - @intCast(u8, @intFromBool(this.@".env.production" != null)) + - @intCast(u8, @intFromBool(this.@".env.test" != null)) + - @intCast(u8, @intFromBool(this.@".env" != null)); + @as(u8, @intCast(@intFromBool(this.@".env.development.local" != null))) + + @as(u8, @intCast(@intFromBool(this.@".env.production.local" != null))) + + @as(u8, @intCast(@intFromBool(this.@".env.test.local" != null))) + + @as(u8, @intCast(@intFromBool(this.@".env.local" != null))) + + @as(u8, @intCast(@intFromBool(this.@".env.development" != null))) + + @as(u8, @intCast(@intFromBool(this.@".env.production" != null))) + + @as(u8, @intCast(@intFromBool(this.@".env.test" != null))) + + @as(u8, @intCast(@intFromBool(this.@".env" != null))); if (count == 0) return; - const elapsed = @floatFromInt(f64, (std.time.nanoTimestamp() - start)) / std.time.ns_per_ms; + const elapsed = @as(f64, @floatFromInt((std.time.nanoTimestamp() - start))) / std.time.ns_per_ms; const all = [_]string{ ".env.development.local", diff --git a/src/fs.zig b/src/fs.zig index 98174fac3..df950fc5e 100644 --- a/src/fs.zig +++ b/src/fs.zig @@ -72,7 +72,7 @@ pub const FileSystem = struct { pub fn tmpname(_: *const FileSystem, extname: string, buf: []u8, hash: u64) ![*:0]u8 { // PRNG was...not so random - const hex_value = @truncate(u64, @intCast(u128, hash) * @intCast(u128, std.time.nanoTimestamp())); + const hex_value = @as(u64, @truncate(@as(u128, @intCast(hash)) * @as(u128, @intCast(std.time.nanoTimestamp())))); return try std.fmt.bufPrintZ(buf, ".{any}{s}", .{ bun.fmt.hexIntLower(hex_value), extname }); } @@ -767,7 +767,7 @@ pub const FileSystem = struct { std.mem.writeIntNative(@TypeOf(this.mtime), hash_bytes_remain[0..@sizeOf(@TypeOf(this.mtime))], this.mtime); hash_bytes_remain = hash_bytes_remain[@sizeOf(@TypeOf(this.mtime))..]; std.debug.assert(hash_bytes_remain.len == 8); - hash_bytes_remain[0..8].* = @bitCast([8]u8, @as(u64, 0)); + hash_bytes_remain[0..8].* = @as([8]u8, @bitCast(@as(u64, 0))); return bun.hash(&hash_bytes); } @@ -1370,11 +1370,11 @@ pub const PathName = struct { // so if dir does not have a trailing slash, but is spaced one apart from the basename // we can assume there is a trailing slash there // so we extend the original slice's length by one - return if (this.dir.len == 0) "./" else this.dir.ptr[0 .. this.dir.len + @intCast( + return if (this.dir.len == 0) "./" else this.dir.ptr[0 .. this.dir.len + @as( usize, - @intFromBool( + @intCast(@intFromBool( this.dir[this.dir.len - 1] != std.fs.path.sep_posix and (@intFromPtr(this.dir.ptr) + this.dir.len + 1) == @intFromPtr(this.base.ptr), - ), + )), )]; } diff --git a/src/futex.zig b/src/futex.zig index 9741032d2..06b0e49dc 100644 --- a/src/futex.zig +++ b/src/futex.zig @@ -105,12 +105,12 @@ const WindowsFutex = struct { // Positive values for timeouts are absolute time while negative is relative. if (timeout) |timeout_ns| { timeout_ptr = &timeout_value; - timeout_value = -@intCast(windows.LARGE_INTEGER, timeout_ns / 100); + timeout_value = -@as(windows.LARGE_INTEGER, @intCast(timeout_ns / 100)); } switch (windows.ntdll.RtlWaitOnAddress( - @ptrCast(?*const anyopaque, ptr), - @ptrCast(?*const anyopaque, &expect), + @as(?*const anyopaque, @ptrCast(ptr)), + @as(?*const anyopaque, @ptrCast(&expect)), @sizeOf(@TypeOf(expect)), timeout_ptr, )) { @@ -121,7 +121,7 @@ const WindowsFutex = struct { } fn wake(ptr: *const Atomic(u32), num_waiters: u32) void { - const address = @ptrCast(?*const anyopaque, ptr); + const address = @as(?*const anyopaque, @ptrCast(ptr)); switch (num_waiters) { 1 => windows.ntdll.RtlWakeAddressSingle(address), else => windows.ntdll.RtlWakeAddressAll(address), @@ -139,14 +139,14 @@ const LinuxFutex = struct { // Futex timespec timeout is already in relative time. if (timeout) |timeout_ns| { ts_ptr = &ts; - ts.tv_sec = @intCast(@TypeOf(ts.tv_sec), timeout_ns / std.time.ns_per_s); - ts.tv_nsec = @intCast(@TypeOf(ts.tv_nsec), timeout_ns % std.time.ns_per_s); + ts.tv_sec = @as(@TypeOf(ts.tv_sec), @intCast(timeout_ns / std.time.ns_per_s)); + ts.tv_nsec = @as(@TypeOf(ts.tv_nsec), @intCast(timeout_ns % std.time.ns_per_s)); } switch (linux.getErrno(linux.futex_wait( - @ptrCast(*const i32, ptr), + @as(*const i32, @ptrCast(ptr)), linux.FUTEX.PRIVATE_FLAG | linux.FUTEX.WAIT, - @bitCast(i32, expect), + @as(i32, @bitCast(expect)), ts_ptr, ))) { .SUCCESS => {}, // notified by `wake()` @@ -161,7 +161,7 @@ const LinuxFutex = struct { fn wake(ptr: *const Atomic(u32), num_waiters: u32) void { switch (linux.getErrno(linux.futex_wake( - @ptrCast(*const i32, ptr), + @as(*const i32, @ptrCast(ptr)), linux.FUTEX.PRIVATE_FLAG | linux.FUTEX.WAKE, std.math.cast(i32, num_waiters) orelse std.math.maxInt(i32), ))) { @@ -191,7 +191,7 @@ const DarwinFutex = struct { assert(timeout_value != 0); timeout_ns = timeout_value; } - const addr = @ptrCast(*const anyopaque, ptr); + const addr = @as(*const anyopaque, @ptrCast(ptr)); const flags = darwin.UL_COMPARE_AND_WAIT | darwin.ULF_NO_ERRNO; // If we're using `__ulock_wait` and `timeout` is too big to fit inside a `u32` count of // micro-seconds (around 70min), we'll request a shorter timeout. This is fine (users @@ -209,7 +209,7 @@ const DarwinFutex = struct { }; if (status >= 0) return; - switch (@enumFromInt(std.os.E, -status)) { + switch (@as(std.os.E, @enumFromInt(-status))) { .INTR => {}, // Address of the futex is paged out. This is unlikely, but possible in theory, and // pthread/libdispatch on darwin bother to handle it. In this case we'll return @@ -227,11 +227,11 @@ const DarwinFutex = struct { } while (true) { - const addr = @ptrCast(*const anyopaque, ptr); + const addr = @as(*const anyopaque, @ptrCast(ptr)); const status = darwin.__ulock_wake(flags, addr, 0); if (status >= 0) return; - switch (@enumFromInt(std.os.E, -status)) { + switch (@as(std.os.E, @enumFromInt(-status))) { .INTR => continue, // spurious wake() .FAULT => continue, // address of the lock was paged out .NOENT => return, // nothing was woken up @@ -353,8 +353,8 @@ const PosixFutex = struct { if (timeout) |timeout_ns| { ts_ptr = &ts; std.os.clock_gettime(std.os.CLOCK_REALTIME, &ts) catch unreachable; - ts.tv_sec += @intCast(@TypeOf(ts.tv_sec), timeout_ns / std.time.ns_per_s); - ts.tv_nsec += @intCast(@TypeOf(ts.tv_nsec), timeout_ns % std.time.ns_per_s); + ts.tv_sec += @as(@TypeOf(ts.tv_sec), @intCast(timeout_ns / std.time.ns_per_s)); + ts.tv_nsec += @as(@TypeOf(ts.tv_nsec), @intCast(timeout_ns % std.time.ns_per_s)); if (ts.tv_nsec >= std.time.ns_per_s) { ts.tv_sec += 1; ts.tv_nsec -= std.time.ns_per_s; @@ -473,7 +473,7 @@ test "Futex - Broadcast" { fn runSender(self: *@This()) !void { self.broadcast.store(BROADCAST_SENT, .Monotonic); - Futex.wake(&self.broadcast, @intCast(u32, self.threads.len)); + Futex.wake(&self.broadcast, @as(u32, @intCast(self.threads.len))); while (true) { const broadcast = self.broadcast.load(.Acquire); diff --git a/src/hive_array.zig b/src/hive_array.zig index 0213156fd..fd6835396 100644 --- a/src/hive_array.zig +++ b/src/hive_array.zig @@ -36,7 +36,7 @@ pub fn HiveArray(comptime T: type, comptime capacity: u16) type { pub fn indexOf(self: *const Self, value: *const T) ?u32 { const start = &self.buffer; - const end = @ptrCast([*]const T, start) + capacity; + const end = @as([*]const T, @ptrCast(start)) + capacity; if (!(@intFromPtr(value) >= @intFromPtr(start) and @intFromPtr(value) < @intFromPtr(end))) return null; @@ -44,12 +44,12 @@ pub fn HiveArray(comptime T: type, comptime capacity: u16) type { const index = (@intFromPtr(value) - @intFromPtr(start)) / @sizeOf(T); assert(index < capacity); assert(&self.buffer[index] == value); - return @intCast(u32, index); + return @as(u32, @intCast(index)); } pub fn in(self: *const Self, value: *const T) bool { const start = &self.buffer; - const end = @ptrCast([*]const T, start) + capacity; + const end = @as([*]const T, @ptrCast(start)) + capacity; return (@intFromPtr(value) >= @intFromPtr(start) and @intFromPtr(value) < @intFromPtr(end)); } diff --git a/src/http.zig b/src/http.zig index ff67d8ce5..c206fbf66 100644 --- a/src/http.zig +++ b/src/http.zig @@ -394,7 +394,7 @@ pub const RequestContext = struct { } if (this.bundler.router.?.routeIndexByHash(match.hash)) |ind| { - route_index = @intCast(i32, ind); + route_index = @as(i32, @intCast(ind)); } module_preload: { @@ -437,7 +437,7 @@ pub const RequestContext = struct { .reason = step, .cwd = this.bundler.fs.top_level_dir, .problems = Api.Problems{ - .code = @truncate(u16, @intFromError(err)), + .code = @as(u16, @truncate(@intFromError(err))), .name = @errorName(err), .exceptions = exceptions, .build = try log.toAPI(allocator), @@ -730,7 +730,7 @@ pub const RequestContext = struct { SOCKET_FLAGS, ); - ctx.status = @truncate(HTTPStatusCode, code); + ctx.status = @as(HTTPStatusCode, @truncate(code)); } pub fn init( @@ -1079,7 +1079,7 @@ pub const RequestContext = struct { .from_timestamp = from_timestamp, .loader = parse_result.loader.toAPI(), .module_path = this.bundler.fs.relativeTo(file_path_str), - .blob_length = @truncate(u32, written), + .blob_length = @as(u32, @truncate(written)), }, }, .id = id, @@ -1166,7 +1166,7 @@ pub const RequestContext = struct { .from_timestamp = from_timestamp, .loader = .css, .module_path = this.bundler.fs.relativeTo(file_path_str), - .blob_length = @truncate(u32, count.written), + .blob_length = @as(u32, @truncate(count.written)), // .log = std.mem.zeroes(Api.Log), }, }, @@ -1432,7 +1432,7 @@ pub const RequestContext = struct { JavaScript.API.Bun.flushCSSImports(); vm.flush(); - Output.printElapsed(@floatFromInt(f64, (handler.start_timer.read())) / std.time.ns_per_ms); + Output.printElapsed(@as(f64, @floatFromInt((handler.start_timer.read()))) / std.time.ns_per_ms); if (vm.bundler.options.framework.?.display_name.len > 0) { Output.prettyError( @@ -1716,11 +1716,11 @@ pub const RequestContext = struct { pub var to_close: []*WebsocketHandler = &[_]*WebsocketHandler{}; pub fn generateTimestamp(handler: *WebsocketHandler) u32 { - return @truncate(u32, handler.ctx.timer.read() / std.time.ns_per_ms); + return @as(u32, @truncate(handler.ctx.timer.read() / std.time.ns_per_ms)); } pub fn toTimestamp(timestamp: u64) u32 { - return @truncate(u32, timestamp / std.time.ns_per_ms); + return @as(u32, @truncate(timestamp / std.time.ns_per_ms)); } pub fn broadcast(message: []const u8) !void { @@ -1897,7 +1897,7 @@ pub const RequestContext = struct { const welcome_message = Api.WebsocketMessageWelcome{ .asset_prefix = handler.ctx.bundler.options.routes.asset_prefix_path, .epoch = WebsocketHandler.toTimestamp( - @intCast(u64, (handler.ctx.timer.started.timestamp.tv_sec * std.time.ns_per_s)) + @intCast(u64, handler.ctx.timer.started.timestamp.tv_nsec), + @as(u64, @intCast((handler.ctx.timer.started.timestamp.tv_sec * std.time.ns_per_s))) + @as(u64, @intCast(handler.ctx.timer.started.timestamp.tv_nsec)), ), .javascript_reloader = reloader, .cwd = handler.ctx.bundler.fs.top_level_dir, @@ -2085,7 +2085,7 @@ pub const RequestContext = struct { socket_buffers[2] = iovec(build_result.bytes); // we reuse the accept key buffer // so we have a pointer that is not stack memory - handler.accept_key[0..@sizeOf(usize)].* = @bitCast([@sizeOf(usize)]u8, bun.hash(build_result.bytes)); + handler.accept_key[0..@sizeOf(usize)].* = @as([@sizeOf(usize)]u8, @bitCast(bun.hash(build_result.bytes))); socket_buffers[3] = iovec(handler.accept_key[0..4]); socket_buffer_count = 4; } @@ -2271,7 +2271,7 @@ pub const RequestContext = struct { pub fn reserveNext(this: *SocketPrinterInternal, count: u32) anyerror![*]u8 { try this.buffer.growIfNeeded(count); - return @ptrCast([*]u8, &this.buffer.list.items.ptr[this.buffer.list.items.len]); + return @as([*]u8, @ptrCast(&this.buffer.list.items.ptr[this.buffer.list.items.len])); } pub fn advanceBy(this: *SocketPrinterInternal, count: u32) void { @@ -3491,8 +3491,8 @@ pub const Server = struct { } if (attempts >= 10) { - var random_number = std.rand.DefaultPrng.init(@intCast(u64, std.time.milliTimestamp())); - const default_port = @intCast(u16, server.bundler.options.origin.getPort() orelse 3000); + var random_number = std.rand.DefaultPrng.init(@as(u64, @intCast(std.time.milliTimestamp()))); + const default_port = @as(u16, @intCast(server.bundler.options.origin.getPort() orelse 3000)); Output.prettyErrorln( "<r><red>error<r>: bun can't start because <b>port {d} is already in use<r>. Tried {d} - {d}. Try closing the other apps or manually passing bun a port\n\n <r><cyan><b>bun --origin http://localhost:{d}/<r>\n", .{ @@ -3715,7 +3715,7 @@ pub const Server = struct { req_ctx.sendInternalError(error.InternalError) catch {}; } - const status = req_ctx.status orelse @intCast(HTTPStatusCode, 500); + const status = req_ctx.status orelse @as(HTTPStatusCode, @intCast(500)); if (log.msgs.items.len == 0) { if (!did_print) { diff --git a/src/http/header_builder.zig b/src/http/header_builder.zig index 82e0868d9..540484655 100644 --- a/src/http/header_builder.zig +++ b/src/http/header_builder.zig @@ -22,15 +22,15 @@ pub fn allocate(this: *HeaderBuilder, allocator: std.mem.Allocator) !void { } pub fn append(this: *HeaderBuilder, name: string, value: string) void { const name_ptr = Api.StringPointer{ - .offset = @truncate(u32, this.content.len), - .length = @truncate(u32, name.len), + .offset = @as(u32, @truncate(this.content.len)), + .length = @as(u32, @truncate(name.len)), }; _ = this.content.append(name); const value_ptr = Api.StringPointer{ - .offset = @truncate(u32, this.content.len), - .length = @truncate(u32, value.len), + .offset = @as(u32, @truncate(this.content.len)), + .length = @as(u32, @truncate(value.len)), }; _ = this.content.append(value); this.entries.appendAssumeCapacity(Headers.Kv{ .name = name_ptr, .value = value_ptr }); @@ -38,8 +38,8 @@ pub fn append(this: *HeaderBuilder, name: string, value: string) void { pub fn appendFmt(this: *HeaderBuilder, name: string, comptime fmt: string, args: anytype) void { const name_ptr = Api.StringPointer{ - .offset = @truncate(u32, this.content.len), - .length = @truncate(u32, name.len), + .offset = @as(u32, @truncate(this.content.len)), + .length = @as(u32, @truncate(name.len)), }; _ = this.content.append(name); @@ -47,8 +47,8 @@ pub fn appendFmt(this: *HeaderBuilder, name: string, comptime fmt: string, args: const value = this.content.fmt(fmt, args); const value_ptr = Api.StringPointer{ - .offset = @truncate(u32, this.content.len - value.len), - .length = @truncate(u32, value.len), + .offset = @as(u32, @truncate(this.content.len - value.len)), + .length = @as(u32, @truncate(value.len)), }; this.entries.appendAssumeCapacity(Headers.Kv{ .name = name_ptr, .value = value_ptr }); diff --git a/src/http/mime_type.zig b/src/http/mime_type.zig index 3d3d9a9a9..17f6821b3 100644 --- a/src/http/mime_type.zig +++ b/src/http/mime_type.zig @@ -26,7 +26,7 @@ pub fn createHashTable(allocator: std.mem.Allocator) !Map { const decls = comptime std.meta.declarations(all); var map = Map.init(allocator); - try map.ensureTotalCapacity(@truncate(u32, decls.len)); + try map.ensureTotalCapacity(@as(u32, @truncate(decls.len))); @setEvalBranchQuota(4000); inline for (decls) |decl| { map.putAssumeCapacityNoClobber(decl.name, @field(all, decl.name)); diff --git a/src/http/url_path.zig b/src/http/url_path.zig index ac31c740d..a48700671 100644 --- a/src/http/url_path.zig +++ b/src/http/url_path.zig @@ -91,10 +91,10 @@ pub fn parse(possibly_encoded_pathname_: string) !URLPath { var first_segment_end: i16 = std.math.maxInt(i16); var last_slash: i16 = -1; - var i: i16 = @intCast(i16, decoded_pathname.len) - 1; + var i: i16 = @as(i16, @intCast(decoded_pathname.len)) - 1; while (i >= 0) : (i -= 1) { - const c = decoded_pathname[@intCast(usize, i)]; + const c = decoded_pathname[@as(usize, @intCast(i))]; switch (c) { '?' => { @@ -130,18 +130,18 @@ pub fn parse(possibly_encoded_pathname_: string) !URLPath { const extname = brk: { if (question_mark_i > -1 and period_i > -1) { period_i += 1; - break :brk decoded_pathname[@intCast(usize, period_i)..@intCast(usize, question_mark_i)]; + break :brk decoded_pathname[@as(usize, @intCast(period_i))..@as(usize, @intCast(question_mark_i))]; } else if (period_i > -1) { period_i += 1; - break :brk decoded_pathname[@intCast(usize, period_i)..]; + break :brk decoded_pathname[@as(usize, @intCast(period_i))..]; } else { break :brk &([_]u8{}); } }; - var path = if (question_mark_i < 0) decoded_pathname[1..] else decoded_pathname[1..@intCast(usize, question_mark_i)]; + var path = if (question_mark_i < 0) decoded_pathname[1..] else decoded_pathname[1..@as(usize, @intCast(question_mark_i))]; - const first_segment = decoded_pathname[1..@min(@intCast(usize, first_segment_end), decoded_pathname.len)]; + const first_segment = decoded_pathname[1..@min(@as(usize, @intCast(first_segment_end)), decoded_pathname.len)]; const is_source_map = strings.eqlComptime(extname, "map"); var backup_extname: string = extname; if (is_source_map and path.len > ".map".len) { @@ -158,7 +158,7 @@ pub fn parse(possibly_encoded_pathname_: string) !URLPath { .pathname = decoded_pathname, .first_segment = first_segment, .path = if (decoded_pathname.len == 1) "." else path, - .query_string = if (question_mark_i > -1) decoded_pathname[@intCast(usize, question_mark_i)..@intCast(usize, decoded_pathname.len)] else "", + .query_string = if (question_mark_i > -1) decoded_pathname[@as(usize, @intCast(question_mark_i))..@as(usize, @intCast(decoded_pathname.len))] else "", .needs_redirect = needs_redirect, }; } diff --git a/src/http/websocket.zig b/src/http/websocket.zig index 48a4cebf5..2fdd28451 100644 --- a/src/http/websocket.zig +++ b/src/http/websocket.zig @@ -53,20 +53,20 @@ pub const WebsocketHeader = packed struct { if (comptime Environment.allow_assert) { var buf_ = [2]u8{ 0, 0 }; var stream = std.io.fixedBufferStream(&buf_); - stream.writer().writeIntBig(u16, @bitCast(u16, header)) catch unreachable; + stream.writer().writeIntBig(u16, @as(u16, @bitCast(header))) catch unreachable; stream.pos = 0; const casted = stream.reader().readIntBig(u16) catch unreachable; - std.debug.assert(casted == @bitCast(u16, header)); - std.debug.assert(std.meta.eql(@bitCast(WebsocketHeader, casted), header)); + std.debug.assert(casted == @as(u16, @bitCast(header))); + std.debug.assert(std.meta.eql(@as(WebsocketHeader, @bitCast(casted)), header)); } - try writer.writeIntBig(u16, @bitCast(u16, header)); + try writer.writeIntBig(u16, @as(u16, @bitCast(header))); std.debug.assert(header.len == packLength(n)); } pub fn packLength(length: usize) u7 { return switch (length) { - 0...125 => @truncate(u7, length), + 0...125 => @as(u7, @truncate(length)), 126...0xFFFF => 126, else => 127, }; @@ -156,7 +156,7 @@ pub const Websocket = struct { var socket = Websocket{ .read_stream = undefined, .reader = undefined, - .stream = std.net.Stream{ .handle = @intCast(std.os.socket_t, fd) }, + .stream = std.net.Stream{ .handle = @as(std.os.socket_t, @intCast(fd)) }, .flags = flags, }; @@ -185,7 +185,7 @@ pub const Websocket = struct { // Close and send the status pub fn close(self: *Websocket, code: u16) !void { const c = if (native_endian == .Big) code else @byteSwap(code); - const data = @bitCast([2]u8, c); + const data = @as([2]u8, @bitCast(c)); _ = try self.writeMessage(.Close, &data); } @@ -230,13 +230,13 @@ pub const Websocket = struct { if (!dataframe.isValid()) return error.InvalidMessage; - try stream.writeIntBig(u16, @bitCast(u16, dataframe.header)); + try stream.writeIntBig(u16, @as(u16, @bitCast(dataframe.header))); // Write extended length if needed const n = dataframe.data.len; switch (n) { 0...126 => {}, // Included in header - 127...0xFFFF => try stream.writeIntBig(u16, @truncate(u16, n)), + 127...0xFFFF => try stream.writeIntBig(u16, @as(u16, @truncate(n))), else => try stream.writeIntBig(u64, n), } @@ -292,9 +292,9 @@ pub const Websocket = struct { // header.rsv1 = header_bytes[0] & 0x40 == 0x40; // header.rsv2 = header_bytes[0] & 0x20; // header.rsv3 = header_bytes[0] & 0x10; - header.opcode = @enumFromInt(Opcode, @truncate(u4, header_bytes[0])); + header.opcode = @as(Opcode, @enumFromInt(@as(u4, @truncate(header_bytes[0])))); header.mask = header_bytes[1] & 0x80 == 0x80; - header.len = @truncate(u7, header_bytes[1]); + header.len = @as(u7, @truncate(header_bytes[1])); // Decode length var length: u64 = header.len; diff --git a/src/http/websocket_http_client.zig b/src/http/websocket_http_client.zig index 80f29525c..5bbc0a5fd 100644 --- a/src/http/websocket_http_client.zig +++ b/src/http/websocket_http_client.zig @@ -194,8 +194,8 @@ pub fn NewHTTPUpgradeClient(comptime ssl: bool) type { pub fn register(global: *JSC.JSGlobalObject, loop_: *anyopaque, ctx_: *anyopaque) callconv(.C) void { var vm = global.bunVM(); - var loop = @ptrCast(*uws.Loop, @alignCast(@alignOf(uws.Loop), loop_)); - var ctx: *uws.SocketContext = @ptrCast(*uws.SocketContext, ctx_); + var loop = @as(*uws.Loop, @ptrCast(@alignCast(loop_))); + var ctx: *uws.SocketContext = @as(*uws.SocketContext, @ptrCast(ctx_)); if (vm.uws_event_loop) |other| { std.debug.assert(other == loop); @@ -268,7 +268,7 @@ pub fn NewHTTPUpgradeClient(comptime ssl: bool) type { if (Socket.connect( display_host, port, - @ptrCast(*uws.SocketContext, socket_ctx), + @as(*uws.SocketContext, @ptrCast(socket_ctx)), HTTPClient, client, "tcp", @@ -366,7 +366,7 @@ pub fn NewHTTPUpgradeClient(comptime ssl: bool) type { return; } - this.to_send = this.input_body_buf[@intCast(usize, wrote)..]; + this.to_send = this.input_body_buf[@as(usize, @intCast(wrote))..]; } pub fn handleData(this: *HTTPClient, socket: Socket, data: []const u8) void { @@ -410,7 +410,7 @@ pub fn NewHTTPUpgradeClient(comptime ssl: bool) type { } }; - this.processResponse(response, body[@intCast(usize, response.bytes_read)..]); + this.processResponse(response, body[@as(usize, @intCast(response.bytes_read))..]); } pub fn handleEnd(this: *HTTPClient, socket: Socket) void { @@ -547,7 +547,7 @@ pub fn NewHTTPUpgradeClient(comptime ssl: bool) type { this.terminate(ErrorCode.failed_to_write); return; } - this.to_send = this.to_send[@min(@intCast(usize, wrote), this.to_send.len)..]; + this.to_send = this.to_send[@min(@as(usize, @intCast(wrote)), this.to_send.len)..]; } pub fn handleTimeout( this: *HTTPClient, @@ -586,7 +586,7 @@ pub const Mask = struct { mask_buf.* = globalThis.bunVM().rareData().entropySlice(4)[0..4].*; const mask = mask_buf.*; - const skip_mask = @bitCast(u32, mask) == 0; + const skip_mask = @as(u32, @bitCast(mask)) == 0; if (!skip_mask) { fillWithSkipMask(mask, output_, input_, false); } else { @@ -711,7 +711,7 @@ fn parseWebSocketHeader( // + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // | Payload Data continued ... | // +---------------------------------------------------------------+ - const header = @bitCast(WebsocketHeader, @byteSwap(@bitCast(u16, bytes))); + const header = @as(WebsocketHeader, @bitCast(@byteSwap(@as(u16, @bitCast(bytes))))); const payload = @as(usize, header.len); payload_length.* = payload; receiving_type.* = header.opcode; @@ -787,13 +787,13 @@ const Copy = union(enum) { // 0, 2, 8 byte length var to_mask = buf[content_offset..]; - var header = @bitCast(WebsocketHeader, @as(u16, 0)); + var header = @as(WebsocketHeader, @bitCast(@as(u16, 0))); // Write extended length if needed switch (how_big_is_the_length_integer) { 0 => {}, - 2 => std.mem.writeIntBig(u16, buf[2..][0..2], @truncate(u16, content_byte_len)), - 8 => std.mem.writeIntBig(u64, buf[2..][0..8], @truncate(u64, content_byte_len)), + 2 => std.mem.writeIntBig(u16, buf[2..][0..2], @as(u16, @truncate(content_byte_len))), + 8 => std.mem.writeIntBig(u64, buf[2..][0..8], @as(u64, @truncate(content_byte_len))), else => unreachable, } @@ -846,7 +846,7 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { outgoing_websocket: ?*CppWebSocket = null, receive_state: ReceiveState = ReceiveState.need_header, - receive_header: WebsocketHeader = @bitCast(WebsocketHeader, @as(u16, 0)), + receive_header: WebsocketHeader = @as(WebsocketHeader, @bitCast(@as(u16, 0))), receiving_type: Opcode = Opcode.ResB, ping_frame_bytes: [128 + 6]u8 = [_]u8{0} ** (128 + 6), @@ -874,9 +874,9 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { pub fn register(global: *JSC.JSGlobalObject, loop_: *anyopaque, ctx_: *anyopaque) callconv(.C) void { var vm = global.bunVM(); - var loop = @ptrCast(*uws.Loop, @alignCast(@alignOf(uws.Loop), loop_)); + var loop = @as(*uws.Loop, @ptrCast(@alignCast(loop_))); - var ctx: *uws.SocketContext = @ptrCast(*uws.SocketContext, ctx_); + var ctx: *uws.SocketContext = @as(*uws.SocketContext, @ptrCast(ctx_)); if (vm.uws_event_loop) |other| { std.debug.assert(other == loop); @@ -1312,7 +1312,7 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { // fast path: no backpressure, no queue, just send the bytes. if (!this.hasBackpressure()) { const wrote = socket.write(bytes, !is_closing); - const expected = @intCast(c_int, bytes.len); + const expected = @as(c_int, @intCast(bytes.len)); if (wrote == expected) { return true; } @@ -1322,7 +1322,7 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { return false; } - _ = this.copyToSendBuffer(bytes[@intCast(usize, wrote)..], false, is_closing); + _ = this.copyToSendBuffer(bytes[@as(usize, @intCast(wrote))..], false, is_closing); return true; } @@ -1369,7 +1369,7 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { this.terminate(ErrorCode.failed_to_write); return false; } - const expected = @intCast(usize, wrote); + const expected = @as(usize, @intCast(wrote)); var readable = this.send_buffer.readableSlice(0); if (readable.ptr == out_buf.ptr) { this.send_buffer.discard(expected); @@ -1388,15 +1388,15 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { return false; } - var header = @bitCast(WebsocketHeader, @as(u16, 0)); + var header = @as(WebsocketHeader, @bitCast(@as(u16, 0))); header.final = true; header.opcode = .Pong; var to_mask = this.ping_frame_bytes[6..][0..this.ping_len]; header.mask = to_mask.len > 0; - header.len = @truncate(u7, this.ping_len); - this.ping_frame_bytes[0..2].* = @bitCast([2]u8, header); + header.len = @as(u7, @truncate(this.ping_len)); + this.ping_frame_bytes[0..2].* = @as([2]u8, @bitCast(header)); if (to_mask.len > 0) { Mask.fill(this.globalThis, this.ping_frame_bytes[2..6], to_mask, to_mask); @@ -1422,12 +1422,12 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { socket.shutdownRead(); var final_body_bytes: [128 + 8]u8 = undefined; - var header = @bitCast(WebsocketHeader, @as(u16, 0)); + var header = @as(WebsocketHeader, @bitCast(@as(u16, 0))); header.final = true; header.opcode = .Close; header.mask = true; - header.len = @truncate(u7, body_len + 2); - final_body_bytes[0..2].* = @bitCast([2]u8, @bitCast(u16, header)); + header.len = @as(u7, @truncate(body_len + 2)); + final_body_bytes[0..2].* = @as([2]u8, @bitCast(@as(u16, @bitCast(header)))); var mask_buf: *[4]u8 = final_body_bytes[2..6]; std.mem.writeIntSliceBig(u16, final_body_bytes[6..8], code); @@ -1489,7 +1489,7 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { return; } - const opcode = @enumFromInt(Opcode, @truncate(u4, op)); + const opcode = @as(Opcode, @enumFromInt(@as(u4, @truncate(op)))); const slice = ptr[0..len]; const bytes = Copy{ .bytes = slice }; // fast path: small frame, no backpressure, attempt to send without allocating @@ -1516,7 +1516,7 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { // Note: 0 is valid - const opcode = @enumFromInt(Opcode, @truncate(u4, op)); + const opcode = @as(Opcode, @enumFromInt(@as(u4, @truncate(op)))); { var inline_buf: [stack_frame_size]u8 = undefined; @@ -1622,8 +1622,8 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { buffered_data: [*]u8, buffered_data_len: usize, ) callconv(.C) ?*anyopaque { - var tcp = @ptrCast(*uws.Socket, input_socket); - var ctx = @ptrCast(*uws.SocketContext, socket_ctx); + var tcp = @as(*uws.Socket, @ptrCast(input_socket)); + var ctx = @as(*uws.SocketContext, @ptrCast(socket_ctx)); var adopted = Socket.adopt( tcp, ctx, @@ -1657,9 +1657,9 @@ pub fn NewWebSocketClient(comptime ssl: bool) type { // before the initial data handler is called outgoing.ref(); } - return @ptrCast( + return @as( *anyopaque, - adopted, + @ptrCast(adopted), ); } diff --git a/src/http_client_async.zig b/src/http_client_async.zig index 2cb534ed2..441c8ae47 100644 --- a/src/http_client_async.zig +++ b/src/http_client_async.zig @@ -42,7 +42,7 @@ const HiveArray = @import("./hive_array.zig").HiveArray; const Batch = NetworkThread.Batch; const TaggedPointerUnion = @import("./tagged_pointer.zig").TaggedPointerUnion; const DeadSocket = opaque {}; -var dead_socket = @ptrFromInt(*DeadSocket, 1); +var dead_socket = @as(*DeadSocket, @ptrFromInt(1)); //TODO: this needs to be freed when Worker Threads are implemented var socket_async_http_abort_tracker = std.AutoArrayHashMap(u32, *uws.Socket).init(bun.default_allocator); var async_http_id: std.atomic.Atomic(u32) = std.atomic.Atomic(u32).init(0); @@ -99,19 +99,19 @@ pub const Sendfile = struct { ) Status { const adjusted_count_temporary = @min(@as(u64, this.remain), @as(u63, std.math.maxInt(u63))); // TODO we should not need this int cast; improve the return type of `@min` - const adjusted_count = @intCast(u63, adjusted_count_temporary); + const adjusted_count = @as(u63, @intCast(adjusted_count_temporary)); if (Environment.isLinux) { - var signed_offset = @intCast(i64, this.offset); + var signed_offset = @as(i64, @intCast(this.offset)); const begin = this.offset; const val = // this does the syscall directly, without libc std.os.linux.sendfile(socket.fd(), this.fd, &signed_offset, this.remain); - this.offset = @intCast(u64, signed_offset); + this.offset = @as(u64, @intCast(signed_offset)); const errcode = std.os.linux.getErrno(val); - this.remain -|= @intCast(u64, this.offset -| begin); + this.remain -|= @as(u64, @intCast(this.offset -| begin)); if (errcode != .SUCCESS or this.remain == 0 or val == 0) { if (errcode == .SUCCESS) { @@ -122,7 +122,7 @@ pub const Sendfile = struct { } } else { var sbytes: std.os.off_t = adjusted_count; - const signed_offset = @bitCast(i64, @as(u64, this.offset)); + const signed_offset = @as(i64, @bitCast(@as(u64, this.offset))); const errcode = std.c.getErrno(std.c.sendfile( this.fd, socket.fd(), @@ -132,7 +132,7 @@ pub const Sendfile = struct { null, 0, )); - const wrote = @intCast(u64, sbytes); + const wrote = @as(u64, @intCast(sbytes)); this.offset +|= wrote; this.remain -|= wrote; if (errcode != .AGAIN or this.remain == 0 or sbytes == 0) { @@ -200,7 +200,7 @@ const ProxyTunnel = struct { var out_bio: *BoringSSL.BIO = undefined; if (comptime is_ssl) { //TLS -> TLS - var proxy_ssl: *BoringSSL.SSL = @ptrCast(*BoringSSL.SSL, socket.getNativeHandle()); + var proxy_ssl: *BoringSSL.SSL = @as(*BoringSSL.SSL, @ptrCast(socket.getNativeHandle())); //create new SSL BIO out_bio = BoringSSL.BIO_new(BoringSSL.BIO_f_ssl()) orelse unreachable; //chain SSL bio with proxy BIO @@ -208,7 +208,7 @@ const ProxyTunnel = struct { _ = BoringSSL.BIO_push(out_bio, proxy_bio); } else { // socket output bio for non-TLS -> TLS - var fd = @intCast(c_int, @intFromPtr(socket.getNativeHandle())); + var fd = @as(c_int, @intCast(@intFromPtr(socket.getNativeHandle()))); out_bio = BoringSSL.BIO_new_fd(fd, BoringSSL.BIO_NOCLOSE); } @@ -315,13 +315,13 @@ fn NewHTTPContext(comptime ssl: bool) type { unreachable; } - return @ptrCast(*BoringSSL.SSL_CTX, this.us_socket_context.getNativeHandle(true)); + return @as(*BoringSSL.SSL_CTX, @ptrCast(this.us_socket_context.getNativeHandle(true))); } pub fn init(this: *@This()) !void { var opts: uws.us_socket_context_options_t = undefined; const size = @sizeOf(uws.us_socket_context_options_t); - @memset(@ptrCast([*]u8, &opts)[0..size], 0); + @memset(@as([*]u8, @ptrCast(&opts))[0..size], 0); this.us_socket_context = uws.us_create_socket_context(ssl_int, http_thread.loop, @sizeOf(usize), opts).?; if (comptime ssl) { this.sslCtx().setup(); @@ -356,7 +356,7 @@ fn NewHTTPContext(comptime ssl: bool) type { pending.http_socket = socket; @memcpy(pending.hostname_buf[0..hostname.len], hostname); - pending.hostname_len = @truncate(u8, hostname.len); + pending.hostname_len = @as(u8, @truncate(hostname.len)); pending.port = port; log("Keep-Alive release {s}:{d} (0x{})", .{ hostname, port, @intFromPtr(socket.socket) }); @@ -484,10 +484,10 @@ fn NewHTTPContext(comptime ssl: bool) type { ptr: *anyopaque, socket: HTTPSocket, ) void { - var tagged = ActiveSocket.from(@ptrCast(**anyopaque, @alignCast(@alignOf(**anyopaque), ptr)).*); + var tagged = ActiveSocket.from(@as(**anyopaque, @ptrCast(@alignCast(ptr))).*); { @setRuntimeSafety(false); - socket.ext(**anyopaque).?.* = @ptrCast(**anyopaque, @alignCast(@alignOf(**anyopaque), ActiveSocket.init(dead_socket).ptrUnsafe())); + socket.ext(**anyopaque).?.* = @as(**anyopaque, @ptrCast(@alignCast(ActiveSocket.init(dead_socket).ptrUnsafe()))); } if (tagged.get(HTTPClient)) |client| { @@ -512,7 +512,7 @@ fn NewHTTPContext(comptime ssl: bool) type { var iter = this.pending_sockets.available.iterator(.{ .kind = .unset }); while (iter.next()) |pending_socket_index| { - var socket = this.pending_sockets.at(@intCast(u16, pending_socket_index)); + var socket = this.pending_sockets.at(@as(u16, @intCast(pending_socket_index))); if (socket.port != port) { continue; } @@ -708,7 +708,7 @@ pub const HTTPThread = struct { this.loop.run(); if (comptime Environment.isDebug) { var end = std.time.nanoTimestamp(); - threadlog("Waited {any}\n", .{std.fmt.fmtDurationSigned(@truncate(i64, end - start_time))}); + threadlog("Waited {any}\n", .{std.fmt.fmtDurationSigned(@as(i64, @truncate(end - start_time)))}); Output.flush(); } } @@ -768,7 +768,7 @@ pub fn onOpen( } if (comptime is_ssl) { - var ssl: *BoringSSL.SSL = @ptrCast(*BoringSSL.SSL, socket.getNativeHandle()); + var ssl: *BoringSSL.SSL = @as(*BoringSSL.SSL, @ptrCast(socket.getNativeHandle())); if (!ssl.isInitFinished()) { var _hostname = client.hostname orelse client.url.hostname; if (client.http_proxy) |proxy| { @@ -1095,7 +1095,7 @@ pub const InternalState = struct { this.content_encoding_i = std.math.maxInt(@TypeOf(this.content_encoding_i)); } - this.body_size = @truncate(usize, body_out_str.list.items.len); + this.body_size = @as(usize, @truncate(body_out_str.list.items.len)); } }; @@ -1897,7 +1897,7 @@ pub fn onWritable(this: *HTTPClient, comptime is_first_call: bool, comptime is_s return; } - this.state.request_sent_len += @intCast(usize, amount); + this.state.request_sent_len += @as(usize, @intCast(amount)); const has_sent_headers = this.state.request_sent_len >= headers_len; if (has_sent_headers and this.state.request_body.len > 0) { @@ -1923,7 +1923,7 @@ pub fn onWritable(this: *HTTPClient, comptime is_first_call: bool, comptime is_s ); // we sent everything, but there's some body leftover - if (amount == @intCast(c_int, to_send.len)) { + if (amount == @as(c_int, @intCast(to_send.len))) { this.onWritable(false, is_ssl, socket); } } else { @@ -1942,8 +1942,8 @@ pub fn onWritable(this: *HTTPClient, comptime is_first_call: bool, comptime is_s return; } - this.state.request_sent_len += @intCast(usize, amount); - this.state.request_body = this.state.request_body[@intCast(usize, amount)..]; + this.state.request_sent_len += @as(usize, @intCast(amount)); + this.state.request_body = this.state.request_body[@as(usize, @intCast(amount))..]; if (this.state.request_body.len == 0) { this.state.request_stage = .done; @@ -1985,8 +1985,8 @@ pub fn onWritable(this: *HTTPClient, comptime is_first_call: bool, comptime is_s return; }; - this.state.request_sent_len += @intCast(usize, amount); - this.state.request_body = this.state.request_body[@intCast(usize, amount)..]; + this.state.request_sent_len += @as(usize, @intCast(amount)); + this.state.request_body = this.state.request_body[@as(usize, @intCast(amount))..]; if (this.state.request_body.len == 0) { this.state.request_stage = .done; @@ -2046,7 +2046,7 @@ pub fn onWritable(this: *HTTPClient, comptime is_first_call: bool, comptime is_s } } - this.state.request_sent_len += @intCast(usize, amount); + this.state.request_sent_len += @as(usize, @intCast(amount)); const has_sent_headers = this.state.request_sent_len >= headers_len; if (has_sent_headers and this.state.request_body.len > 0) { @@ -2065,7 +2065,7 @@ pub fn onWritable(this: *HTTPClient, comptime is_first_call: bool, comptime is_s std.debug.assert(this.state.request_body.len > 0); // we sent everything, but there's some body leftover - if (amount == @intCast(c_int, to_send.len)) { + if (amount == @as(c_int, @intCast(to_send.len))) { this.onWritable(false, is_ssl, socket); } } else { @@ -2200,7 +2200,7 @@ pub fn onData(this: *HTTPClient, comptime is_ssl: bool, incoming_data: []const u this.state.pending_response = response; - var body_buf = to_read[@min(@intCast(usize, response.bytes_read), to_read.len)..]; + var body_buf = to_read[@min(@as(usize, @intCast(response.bytes_read)), to_read.len)..]; var deferred_redirect: ?*URLBufferPool.Node = null; const can_continue = this.handleResponseMetadata( @@ -2540,7 +2540,7 @@ pub const HTTPClientResult = struct { } pub fn wrapped_callback(ptr: *anyopaque, result: HTTPClientResult) void { - var casted = @ptrCast(Type, @alignCast(std.meta.alignment(Type), ptr)); + var casted = @as(Type, @ptrCast(@alignCast(ptr))); @call(.always_inline, callback, .{ casted, result }); } }; @@ -2582,8 +2582,8 @@ fn handleResponseBodyFromSinglePacket(this: *HTTPClient, incoming_data: []const if (this.state.encoding.isCompressed()) { var body_buffer = this.state.body_out_str.?; if (body_buffer.list.capacity == 0) { - const min = @min(@ceil(@floatFromInt(f64, incoming_data.len) * 1.5), @as(f64, 1024 * 1024 * 2)); - try body_buffer.growBy(@max(@intFromFloat(usize, min), 32)); + const min = @min(@ceil(@as(f64, @floatFromInt(incoming_data.len)) * 1.5), @as(f64, 1024 * 1024 * 2)); + try body_buffer.growBy(@max(@as(usize, @intFromFloat(min)), 32)); } try ZlibPool.decompress(incoming_data, body_buffer, default_allocator); @@ -2798,10 +2798,10 @@ pub fn handleResponseMetadata( hashHeaderConst("Content-Encoding") => { if (strings.eqlComptime(header.value, "gzip")) { this.state.encoding = Encoding.gzip; - this.state.content_encoding_i = @truncate(u8, header_i); + this.state.content_encoding_i = @as(u8, @truncate(header_i)); } else if (strings.eqlComptime(header.value, "deflate")) { this.state.encoding = Encoding.deflate; - this.state.content_encoding_i = @truncate(u8, header_i); + this.state.content_encoding_i = @as(u8, @truncate(header_i)); } else if (!strings.eqlComptime(header.value, "identity")) { return error.UnsupportedContentEncoding; } diff --git a/src/install/bin.zig b/src/install/bin.zig index f8117c1e8..adbd5f4d3 100644 --- a/src/install/bin.zig +++ b/src/install/bin.zig @@ -56,7 +56,7 @@ pub const Bin = extern struct { for (list) |*extern_string| { builder.count(extern_string.slice(buf)); } - return @truncate(u32, list.len); + return @as(u32, @truncate(list.len)); }, else => {}, } @@ -461,7 +461,7 @@ pub const Bin = extern struct { var dir = std.fs.Dir{ .fd = this.package_installed_node_modules }; var joined = Path.joinStringBuf(&target_buf, &parts, .auto); - @ptrFromInt([*]u8, @intFromPtr(joined.ptr))[joined.len] = 0; + @as([*]u8, @ptrFromInt(@intFromPtr(joined.ptr)))[joined.len] = 0; var joined_: [:0]const u8 = joined.ptr[0..joined.len :0]; var child_dir = bun.openDir(dir, joined_) catch |err| { this.err = err; @@ -613,7 +613,7 @@ pub const Bin = extern struct { var dir = std.fs.Dir{ .fd = this.package_installed_node_modules }; var joined = Path.joinStringBuf(&target_buf, &parts, .auto); - @ptrFromInt([*]u8, @intFromPtr(joined.ptr))[joined.len] = 0; + @as([*]u8, @ptrFromInt(@intFromPtr(joined.ptr)))[joined.len] = 0; var joined_: [:0]const u8 = joined.ptr[0..joined.len :0]; var child_dir = bun.openDir(dir, joined_) catch |err| { this.err = err; diff --git a/src/install/dependency.zig b/src/install/dependency.zig index 6ef02bbfc..8578e998a 100644 --- a/src/install/dependency.zig +++ b/src/install/dependency.zig @@ -146,8 +146,8 @@ pub fn toDependency( }; return Dependency{ .name = name, - .name_hash = @bitCast(u64, this[8..16].*), - .behavior = @enumFromInt(Dependency.Behavior, this[16]), + .name_hash = @as(u64, @bitCast(this[8..16].*)), + .behavior = @as(Dependency.Behavior, @enumFromInt(this[16])), .version = Dependency.Version.toVersion(name, this[17..this.len].*, ctx), }; } @@ -155,7 +155,7 @@ pub fn toDependency( pub fn toExternal(this: Dependency) External { var bytes: External = undefined; bytes[0..this.name.bytes.len].* = this.name.bytes; - bytes[8..16].* = @bitCast([8]u8, this.name_hash); + bytes[8..16].* = @as([8]u8, @bitCast(this.name_hash)); bytes[16] = @intFromEnum(this.behavior); bytes[17..bytes.len].* = this.version.toExternal(); return bytes; @@ -265,7 +265,7 @@ pub const Version = struct { ctx: Dependency.Context, ) Dependency.Version { const slice = String{ .bytes = bytes[1..9].* }; - const tag = @enumFromInt(Dependency.Version.Tag, bytes[0]); + const tag = @as(Dependency.Version.Tag, @enumFromInt(bytes[0])); const sliced = &slice.sliced(ctx.buffer); return Dependency.parseWithTag( ctx.allocator, @@ -920,41 +920,41 @@ pub const Behavior = enum(u8) { pub inline fn setNormal(this: Behavior, value: bool) Behavior { if (value) { - return @enumFromInt(Behavior, @intFromEnum(this) | Behavior.normal); + return @as(Behavior, @enumFromInt(@intFromEnum(this) | Behavior.normal)); } else { - return @enumFromInt(Behavior, @intFromEnum(this) & ~Behavior.normal); + return @as(Behavior, @enumFromInt(@intFromEnum(this) & ~Behavior.normal)); } } pub inline fn setOptional(this: Behavior, value: bool) Behavior { if (value) { - return @enumFromInt(Behavior, @intFromEnum(this) | Behavior.optional); + return @as(Behavior, @enumFromInt(@intFromEnum(this) | Behavior.optional)); } else { - return @enumFromInt(Behavior, @intFromEnum(this) & ~Behavior.optional); + return @as(Behavior, @enumFromInt(@intFromEnum(this) & ~Behavior.optional)); } } pub inline fn setDev(this: Behavior, value: bool) Behavior { if (value) { - return @enumFromInt(Behavior, @intFromEnum(this) | Behavior.dev); + return @as(Behavior, @enumFromInt(@intFromEnum(this) | Behavior.dev)); } else { - return @enumFromInt(Behavior, @intFromEnum(this) & ~Behavior.dev); + return @as(Behavior, @enumFromInt(@intFromEnum(this) & ~Behavior.dev)); } } pub inline fn setPeer(this: Behavior, value: bool) Behavior { if (value) { - return @enumFromInt(Behavior, @intFromEnum(this) | Behavior.peer); + return @as(Behavior, @enumFromInt(@intFromEnum(this) | Behavior.peer)); } else { - return @enumFromInt(Behavior, @intFromEnum(this) & ~Behavior.peer); + return @as(Behavior, @enumFromInt(@intFromEnum(this) & ~Behavior.peer)); } } pub inline fn setWorkspace(this: Behavior, value: bool) Behavior { if (value) { - return @enumFromInt(Behavior, @intFromEnum(this) | Behavior.workspace); + return @as(Behavior, @enumFromInt(@intFromEnum(this) | Behavior.workspace)); } else { - return @enumFromInt(Behavior, @intFromEnum(this) & ~Behavior.workspace); + return @as(Behavior, @enumFromInt(@intFromEnum(this) & ~Behavior.workspace)); } } diff --git a/src/install/extract_tarball.zig b/src/install/extract_tarball.zig index 3be00853f..a533a92a7 100644 --- a/src/install/extract_tarball.zig +++ b/src/install/extract_tarball.zig @@ -341,7 +341,7 @@ fn extract(this: *const ExtractTarball, tgz_bytes: []const u8) !Install.ExtractD if (switch (this.resolution.tag) { // TODO remove extracted files not matching any globs under "files" .github, .local_tarball, .remote_tarball => true, - else => this.package_manager.lockfile.trusted_dependencies.contains(@truncate(u32, Semver.String.Builder.stringHash(name))), + else => this.package_manager.lockfile.trusted_dependencies.contains(@as(u32, @truncate(Semver.String.Builder.stringHash(name)))), }) { const json_file = final_dir.openFileZ("package.json", .{ .mode = .read_only }) catch |err| { this.package_manager.log.addErrorFmt( diff --git a/src/install/install.zig b/src/install/install.zig index 65f4a35e9..a71ad6a5a 100644 --- a/src/install/install.zig +++ b/src/install/install.zig @@ -151,8 +151,8 @@ pub fn ExternalSliceAligned(comptime Type: type, comptime alignment_: ?u29) type // } return Slice{ - .off = @truncate(u32, (@intFromPtr(in.ptr) - @intFromPtr(buf.ptr)) / @sizeOf(Type)), - .len = @truncate(u32, in.len), + .off = @as(u32, @truncate((@intFromPtr(in.ptr) - @intFromPtr(buf.ptr)) / @sizeOf(Type))), + .len = @as(u32, @truncate(in.len)), }; } }; @@ -346,12 +346,12 @@ const NetworkTask = struct { try header_builder.entries.append( allocator, .{ - .name = .{ .offset = 0, .length = @truncate(u32, "Accept".len) }, - .value = .{ .offset = "Accept".len, .length = @truncate(u32, default_headers_buf.len - "Accept".len) }, + .name = .{ .offset = 0, .length = @as(u32, @truncate("Accept".len)) }, + .value = .{ .offset = "Accept".len, .length = @as(u32, @truncate(default_headers_buf.len - "Accept".len)) }, }, ); header_builder.header_count = 1; - header_builder.content = GlobalStringBuilder{ .ptr = @ptrFromInt([*]u8, @intFromPtr(bun.span(default_headers_buf).ptr)), .len = default_headers_buf.len, .cap = default_headers_buf.len }; + header_builder.content = GlobalStringBuilder{ .ptr = @as([*]u8, @ptrFromInt(@intFromPtr(bun.span(default_headers_buf).ptr))), .len = default_headers_buf.len, .cap = default_headers_buf.len }; } this.response_buffer = try MutableString.init(allocator, 0); @@ -479,7 +479,7 @@ pub const Features = struct { out |= @as(u8, @intFromBool(this.dev_dependencies)) << 3; out |= @as(u8, @intFromBool(this.peer_dependencies)) << 4; out |= @as(u8, @intFromBool(this.workspaces)) << 5; - return @enumFromInt(Behavior, out); + return @as(Behavior, @enumFromInt(out)); } pub const main = Features{ @@ -545,28 +545,28 @@ const Task = struct { hasher.update(package_name); hasher.update("@"); hasher.update(std.mem.asBytes(&package_version)); - return @as(u64, 0 << 61) | @as(u64, @truncate(u61, hasher.final())); + return @as(u64, 0 << 61) | @as(u64, @as(u61, @truncate(hasher.final()))); } pub fn forBinLink(package_id: PackageID) u64 { const hash = bun.Wyhash.hash(0, std.mem.asBytes(&package_id)); - return @as(u64, 1 << 61) | @as(u64, @truncate(u61, hash)); + return @as(u64, 1 << 61) | @as(u64, @as(u61, @truncate(hash))); } pub fn forManifest(name: string) u64 { - return @as(u64, 2 << 61) | @as(u64, @truncate(u61, bun.Wyhash.hash(0, name))); + return @as(u64, 2 << 61) | @as(u64, @as(u61, @truncate(bun.Wyhash.hash(0, name)))); } pub fn forTarball(url: string) u64 { var hasher = bun.Wyhash.init(0); hasher.update(url); - return @as(u64, 3 << 61) | @as(u64, @truncate(u61, hasher.final())); + return @as(u64, 3 << 61) | @as(u64, @as(u61, @truncate(hasher.final()))); } pub fn forGitClone(url: string) u64 { var hasher = bun.Wyhash.init(0); hasher.update(url); - return @as(u64, 4 << 61) | @as(u64, @truncate(u61, hasher.final())); + return @as(u64, 4 << 61) | @as(u64, @as(u61, @truncate(hasher.final()))); } pub fn forGitCheckout(url: string, resolved: string) u64 { @@ -574,7 +574,7 @@ const Task = struct { hasher.update(url); hasher.update("@"); hasher.update(resolved); - return @as(u64, 5 << 61) | @as(u64, @truncate(u61, hasher.final())); + return @as(u64, 5 << 61) | @as(u64, @as(u61, @truncate(hasher.final()))); } }; @@ -1408,7 +1408,7 @@ const PackageInstall = struct { const rc = Syscall.system.open(path, @as(u32, std.os.O.PATH | 0), @as(u32, 0)); switch (Syscall.getErrno(rc)) { .SUCCESS => { - const fd = @intCast(std.os.fd_t, rc); + const fd = @as(std.os.fd_t, @intCast(rc)); _ = Syscall.system.close(fd); return false; }, @@ -1746,7 +1746,7 @@ pub const PackageManager = struct { version_buf: []const u8, behavior: Dependency.Behavior, ) DependencyToEnqueue { - const dep_id = @truncate(DependencyID, brk: { + const dep_id = @as(DependencyID, @truncate(brk: { const str_buf = this.lockfile.buffers.string_bytes.items; for (this.lockfile.buffers.dependencies.items, 0..) |dep, id| { if (!strings.eqlLong(dep.name.slice(str_buf), name, true)) continue; @@ -1772,7 +1772,7 @@ pub const PackageManager = struct { this.lockfile.buffers.resolutions.append(this.allocator, invalid_package_id) catch unreachable; if (comptime Environment.allow_assert) std.debug.assert(this.lockfile.buffers.dependencies.items.len == this.lockfile.buffers.resolutions.items.len); break :brk index; - }); + })); if (this.lockfile.buffers.resolutions.items[dep_id] == invalid_package_id) { this.enqueueDependencyWithMainAndSuccessFn( @@ -2806,7 +2806,7 @@ pub const PackageManager = struct { tmpname_buf[0..8].* = "tmplock-".*; var tmpfile = FileSystem.RealFS.Tmpfile{}; var secret: [32]u8 = undefined; - std.mem.writeIntNative(u64, secret[0..8], @intCast(u64, std.time.milliTimestamp())); + std.mem.writeIntNative(u64, secret[0..8], @as(u64, @intCast(std.time.milliTimestamp()))); var base64_bytes: [64]u8 = undefined; std.crypto.random.bytes(&base64_bytes); @@ -3340,8 +3340,8 @@ pub const PackageManager = struct { pub fn scheduleTasks(manager: *PackageManager) usize { const count = manager.task_batch.len + manager.network_resolve_batch.len + manager.network_tarball_batch.len; - manager.pending_tasks += @truncate(u32, count); - manager.total_tasks += @truncate(u32, count); + manager.pending_tasks += @as(u32, @truncate(count)); + manager.total_tasks += @as(u32, @truncate(count)); manager.thread_pool.schedule(manager.task_batch); manager.network_resolve_batch.push(manager.network_tarball_batch); HTTP.http_thread.schedule(manager.network_resolve_batch); @@ -3799,7 +3799,7 @@ pub const PackageManager = struct { if (comptime log_level.isVerbose()) { Output.prettyError(" ", .{}); - Output.printElapsed(@floatFromInt(f64, task.http.elapsed) / std.time.ns_per_ms); + Output.printElapsed(@as(f64, @floatFromInt(task.http.elapsed)) / std.time.ns_per_ms); Output.prettyError("\n <d>Downloaded <r><green>{s}<r> versions\n", .{name.slice()}); Output.flush(); } @@ -3811,7 +3811,7 @@ pub const PackageManager = struct { entry.value_ptr.* = manifest; if (timestamp_this_tick == null) { - timestamp_this_tick = @truncate(u32, @intCast(u64, @max(0, std.time.timestamp()))) +| 300; + timestamp_this_tick = @as(u32, @truncate(@as(u64, @intCast(@max(0, std.time.timestamp()))))) +| 300; } entry.value_ptr.*.pkg.public_max_age = timestamp_this_tick.?; @@ -3933,7 +3933,7 @@ pub const PackageManager = struct { if (comptime log_level.isVerbose()) { Output.prettyError(" ", .{}); - Output.printElapsed(@floatCast(f64, @floatFromInt(f64, task.http.elapsed) / std.time.ns_per_ms)); + Output.printElapsed(@as(f64, @floatCast(@as(f64, @floatFromInt(task.http.elapsed)) / std.time.ns_per_ms))); Output.prettyError(" <d>Downloaded <r><green>{s}<r> tarball\n", .{extract.name.slice()}); Output.flush(); } @@ -5219,7 +5219,7 @@ pub const PackageManager = struct { Output.flush(); } - var cpu_count = @truncate(u32, ((try std.Thread.getCpuCount()) + 1)); + var cpu_count = @as(u32, @truncate(((try std.Thread.getCpuCount()) + 1))); if (env.map.get("GOMAXPROCS")) |max_procs| { if (std.fmt.parseInt(u32, max_procs, 10)) |cpu_count_| { @@ -5275,7 +5275,7 @@ pub const PackageManager = struct { ctx.install, ); - manager.timestamp_for_manifest_cache_control = @truncate(u32, @intCast(u64, @max(std.time.timestamp(), 0))); + manager.timestamp_for_manifest_cache_control = @as(u32, @truncate(@as(u64, @intCast(@max(std.time.timestamp(), 0))))); return manager; } @@ -5290,7 +5290,7 @@ pub const PackageManager = struct { PackageManager.verbose_install = true; } - var cpu_count = @truncate(u32, ((try std.Thread.getCpuCount()) + 1)); + var cpu_count = @as(u32, @truncate(((try std.Thread.getCpuCount()) + 1))); if (env.map.get("GOMAXPROCS")) |max_procs| { if (std.fmt.parseInt(u32, max_procs, 10)) |cpu_count_| { @@ -5360,15 +5360,15 @@ pub const PackageManager = struct { bun_install, ); - manager.timestamp_for_manifest_cache_control = @truncate( + manager.timestamp_for_manifest_cache_control = @as( u32, - @intCast( + @truncate(@as( u64, - @max( + @intCast(@max( std.time.timestamp(), 0, - ), - ), + )), + )), // When using "bun install", we check for updates with a 300 second cache. // When using bun, we only do staleness checks once per day ) -| std.time.s_per_day; @@ -6101,15 +6101,15 @@ pub const PackageManager = struct { if (manager.options.positionals.len == 1) { var examples_to_print: [3]string = undefined; - const off = @intCast(u64, std.time.milliTimestamp()); + const off = @as(u64, @intCast(std.time.milliTimestamp())); switch (op) { .update, .add => { const filler = @import("../cli.zig").HelpCommand.packages_to_add_filler; - examples_to_print[0] = filler[@intCast(usize, (off) % filler.len)]; - examples_to_print[1] = filler[@intCast(usize, (off + 1) % filler.len)]; - examples_to_print[2] = filler[@intCast(usize, (off + 2) % filler.len)]; + examples_to_print[0] = filler[@as(usize, @intCast((off) % filler.len))]; + examples_to_print[1] = filler[@as(usize, @intCast((off + 1) % filler.len))]; + examples_to_print[2] = filler[@as(usize, @intCast((off + 2) % filler.len))]; Output.prettyErrorln( \\ @@ -6145,9 +6145,9 @@ pub const PackageManager = struct { .remove => { const filler = @import("../cli.zig").HelpCommand.packages_to_remove_filler; - examples_to_print[0] = filler[@intCast(usize, (off) % filler.len)]; - examples_to_print[1] = filler[@intCast(usize, (off + 1) % filler.len)]; - examples_to_print[2] = filler[@intCast(usize, (off + 2) % filler.len)]; + examples_to_print[0] = filler[@as(usize, @intCast((off) % filler.len))]; + examples_to_print[1] = filler[@as(usize, @intCast((off + 1) % filler.len))]; + examples_to_print[2] = filler[@as(usize, @intCast((off + 2) % filler.len))]; Output.prettyErrorln( \\ @@ -6308,7 +6308,7 @@ pub const PackageManager = struct { const changed = new_len != dependencies.len; if (changed) { - query.expr.data.e_object.properties.len = @truncate(u32, new_len); + query.expr.data.e_object.properties.len = @as(u32, @truncate(new_len)); // If the dependencies list is now empty, remove it from the package.json // since we're swapRemove, we have to re-sort it @@ -6781,7 +6781,7 @@ pub const PackageManager = struct { } } - if (resolution.tag == .workspace or this.lockfile.trusted_dependencies.contains(@truncate(u32, String.Builder.stringHash(name)))) { + if (resolution.tag == .workspace or this.lockfile.trusted_dependencies.contains(@as(u32, @truncate(String.Builder.stringHash(name))))) { var scripts = this.lockfile.packages.items(.scripts)[package_id]; if (scripts.hasAny()) { var path_buf: [bun.MAX_PATH_BYTES]u8 = undefined; @@ -7497,8 +7497,8 @@ pub const PackageManager = struct { new_dep.count(lockfile.buffers.string_bytes.items, *Lockfile.StringBuilder, builder); } - const off = @truncate(u32, manager.lockfile.buffers.dependencies.items.len); - const len = @truncate(u32, new_dependencies.len); + const off = @as(u32, @truncate(manager.lockfile.buffers.dependencies.items.len)); + const len = @as(u32, @truncate(new_dependencies.len)); var packages = manager.lockfile.packages.slice(); var dep_lists = packages.items(.dependencies); var resolution_lists = packages.items(.resolutions); @@ -7536,7 +7536,7 @@ pub const PackageManager = struct { if (manager.summary.add > 0 or manager.summary.update > 0) { var remaining = mapping; var dependency_i: PackageID = off; - const changes = @truncate(PackageID, mapping.len); + const changes = @as(PackageID, @truncate(mapping.len)); _ = manager.getCacheDirectory(); _ = manager.getTemporaryDirectory(); @@ -7763,7 +7763,7 @@ pub const PackageManager = struct { } if (needs_new_lockfile) { - manager.summary.add = @truncate(u32, manager.lockfile.packages.len); + manager.summary.add = @as(u32, @truncate(manager.lockfile.packages.len)); } if (manager.options.do.save_yarn_lock) { @@ -7812,9 +7812,9 @@ pub const PackageManager = struct { // it's confusing when it shows 3 packages and says it installed 1 Output.pretty("\n <green>{d}<r> packages<r> installed ", .{@max( install_summary.success, - @truncate( + @as( u32, - manager.package_json_updates.len, + @truncate(manager.package_json_updates.len), ), )}); Output.printStartEndStdout(ctx.start_time, std.time.nanoTimestamp()); @@ -7838,7 +7838,7 @@ pub const PackageManager = struct { } else if (install_summary.skipped > 0 and install_summary.fail == 0 and manager.package_json_updates.len == 0) { Output.pretty("\n", .{}); - const count = @truncate(PackageID, manager.lockfile.packages.len); + const count = @as(PackageID, @truncate(manager.lockfile.packages.len)); if (count != install_summary.skipped) { Output.pretty("Checked <green>{d} installs<r> across {d} packages <d>(no changes)<r> ", .{ install_summary.skipped, diff --git a/src/install/integrity.zig b/src/install/integrity.zig index 4634c2dfd..dd11140de 100644 --- a/src/install/integrity.zig +++ b/src/install/integrity.zig @@ -61,7 +61,7 @@ pub const Integrity = extern struct { }); // parse hex integer - integrity.value[out_i] = @truncate(u8, x0 << 4 | x1); + integrity.value[out_i] = @as(u8, @truncate(x0 << 4 | x1)); out_i += 1; i += 1; diff --git a/src/install/lockfile.zig b/src/install/lockfile.zig index 202cfddc0..cf0ee8267 100644 --- a/src/install/lockfile.zig +++ b/src/install/lockfile.zig @@ -226,23 +226,23 @@ pub const Tree = struct { pub fn toExternal(this: Tree) External { var out = External{}; - out[0..4].* = @bitCast(Id, this.id); - out[4..8].* = @bitCast(Id, this.dependency_id); - out[8..12].* = @bitCast(Id, this.parent); - out[12..16].* = @bitCast(u32, this.dependencies.off); - out[16..20].* = @bitCast(u32, this.dependencies.len); + out[0..4].* = @as(Id, @bitCast(this.id)); + out[4..8].* = @as(Id, @bitCast(this.dependency_id)); + out[8..12].* = @as(Id, @bitCast(this.parent)); + out[12..16].* = @as(u32, @bitCast(this.dependencies.off)); + out[16..20].* = @as(u32, @bitCast(this.dependencies.len)); if (out.len != 20) @compileError("Tree.External is not 20 bytes"); return out; } pub fn toTree(out: External) Tree { return .{ - .id = @bitCast(Id, out[0..4].*), - .dependency_id = @bitCast(Id, out[4..8].*), - .parent = @bitCast(Id, out[8..12].*), + .id = @as(Id, @bitCast(out[0..4].*)), + .dependency_id = @as(Id, @bitCast(out[4..8].*)), + .parent = @as(Id, @bitCast(out[8..12].*)), .dependencies = .{ - .off = @bitCast(u32, out[12..16].*), - .len = @bitCast(u32, out[16..20].*), + .off = @as(u32, @bitCast(out[12..16].*)), + .len = @as(u32, @bitCast(out[16..20].*)), }, }; } @@ -306,7 +306,7 @@ pub const Tree = struct { if (tree.id > 0) { var depth_buf_len: usize = 1; - while (parent_id > 0 and parent_id < @intCast(Id, this.trees.len)) { + while (parent_id > 0 and parent_id < @as(Id, @intCast(this.trees.len))) { this.depth_stack[depth_buf_len] = parent_id; parent_id = this.trees[parent_id].parent; depth_buf_len += 1; @@ -374,7 +374,7 @@ pub const Tree = struct { /// Flatten the multi-dimensional ArrayList of package IDs into a single easily serializable array pub fn clean(this: *Builder) !DependencyIDList { - const end = @truncate(Id, this.list.len); + const end = @as(Id, @truncate(this.list.len)); var i: Id = 0; var total: u32 = 0; var trees = this.list.items(.tree); @@ -389,7 +389,7 @@ pub const Tree = struct { for (trees, dependencies) |*tree, *child| { if (tree.dependencies.len > 0) { - const len = @truncate(PackageID, child.items.len); + const len = @as(PackageID, @truncate(child.items.len)); next.off += next.len; next.len = len; tree.dependencies = next; @@ -419,7 +419,7 @@ pub const Tree = struct { try builder.list.append(builder.allocator, .{ .tree = .{ .parent = this.id, - .id = @truncate(Id, builder.list.len), + .id = @as(Id, @truncate(builder.list.len)), .dependency_id = dependency_id, }, .dependencies = .{}, @@ -430,7 +430,7 @@ pub const Tree = struct { const dependency_lists = list_slice.items(.dependencies); const next: *Tree = &trees[builder.list.len - 1]; const name_hashes: []const PackageNameHash = builder.name_hashes; - const max_package_id = @truncate(PackageID, name_hashes.len); + const max_package_id = @as(PackageID, @truncate(name_hashes.len)); var dep_id = resolution_list.off; const end = dep_id + resolution_list.len; @@ -545,7 +545,7 @@ pub fn maybeCloneFilteringRootPackages( const root_dependencies = old_root_dependenices_list.get(old.buffers.dependencies.items); var resolutions = old_root_resolutions.mut(old.buffers.resolutions.items); var any_changes = false; - const end = @truncate(PackageID, old.packages.len); + const end = @as(PackageID, @truncate(old.packages.len)); for (root_dependencies, resolutions) |dependency, *resolution| { if (!dependency.behavior.isEnabled(features) and resolution.* < end) { @@ -1022,7 +1022,7 @@ pub const Printer = struct { defer if (id_map.len > 0) default_allocator.free(id_map); visited.set(0); - const end = @truncate(PackageID, resolved.len); + const end = @as(PackageID, @truncate(resolved.len)); if (this.successfully_installed) |installed| { var dep_id = resolutions_list[0].off; @@ -1039,7 +1039,7 @@ pub const Printer = struct { if (update.failed) return; if (update.matches(dependency, string_buf)) { if (dependency_id.* == invalid_package_id) { - dependency_id.* = @truncate(DependencyID, dep_id); + dependency_id.* = @as(DependencyID, @truncate(dep_id)); } continue :outer; @@ -1076,7 +1076,7 @@ pub const Printer = struct { if (update.failed) return; if (update.matches(dependency, string_buf)) { if (dependency_id.* == invalid_package_id) { - dependency_id.* = @truncate(DependencyID, dep_id); + dependency_id.* = @as(DependencyID, @truncate(dep_id)); } continue :outer; @@ -1202,7 +1202,7 @@ pub const Printer = struct { var requested_versions = RequestedVersion.init(this.lockfile.allocator); var all_requested_versions = try this.lockfile.allocator.alloc(Dependency.Version, resolutions_buffer.len); defer this.lockfile.allocator.free(all_requested_versions); - const package_count = @truncate(PackageID, names.len); + const package_count = @as(PackageID, @truncate(names.len)); var alphabetized_names = try this.lockfile.allocator.alloc(PackageID, package_count - 1); defer this.lockfile.allocator.free(alphabetized_names); @@ -1393,7 +1393,7 @@ pub fn verifyResolutions(this: *Lockfile, local_features: Features, remote_featu const dependency_lists: []const DependencySlice = this.packages.items(.dependencies); const dependencies_buffer = this.buffers.dependencies.items; const resolutions_buffer = this.buffers.resolutions.items; - const end = @truncate(PackageID, this.packages.len); + const end = @as(PackageID, @truncate(this.packages.len)); var any_failed = false; const string_buf = this.buffers.string_bytes.items; @@ -1403,7 +1403,7 @@ pub fn verifyResolutions(this: *Lockfile, local_features: Features, remote_featu for (resolution_list.get(resolutions_buffer), dependency_list.get(dependencies_buffer)) |package_id, failed_dep| { if (package_id < end) continue; if (failed_dep.behavior.isPeer() or !failed_dep.behavior.isEnabled( - if (root_list.contains(@truncate(PackageID, parent_id))) + if (root_list.contains(@as(PackageID, @truncate(parent_id)))) local_features else remote_features, @@ -1446,7 +1446,7 @@ pub fn saveToDisk(this: *Lockfile, filename: stringZ) void { tmpname_buf[0..8].* = "bunlock-".*; var tmpfile = FileSystem.RealFS.Tmpfile{}; var secret: [32]u8 = undefined; - std.mem.writeIntNative(u64, secret[0..8], @intCast(u64, std.time.milliTimestamp())); + std.mem.writeIntNative(u64, secret[0..8], @as(u64, @intCast(std.time.milliTimestamp()))); var base64_bytes: [64]u8 = undefined; std.crypto.random.bytes(&base64_bytes); @@ -1588,7 +1588,7 @@ pub fn getOrPutID(this: *Lockfile, id: PackageID, name_hash: PackageNameHash) !v } pub fn appendPackage(this: *Lockfile, package_: Lockfile.Package) !Lockfile.Package { - const id = @truncate(PackageID, this.packages.len); + const id = @as(PackageID, @truncate(this.packages.len)); return try appendPackageWithID(this, package_, id); } @@ -1929,11 +1929,11 @@ pub const Package = extern struct { field: string, behavior: Behavior, - pub const dependencies = DependencyGroup{ .prop = "dependencies", .field = "dependencies", .behavior = @enumFromInt(Behavior, Behavior.normal) }; - pub const dev = DependencyGroup{ .prop = "devDependencies", .field = "dev_dependencies", .behavior = @enumFromInt(Behavior, Behavior.dev) }; - pub const optional = DependencyGroup{ .prop = "optionalDependencies", .field = "optional_dependencies", .behavior = @enumFromInt(Behavior, Behavior.optional) }; - pub const peer = DependencyGroup{ .prop = "peerDependencies", .field = "peer_dependencies", .behavior = @enumFromInt(Behavior, Behavior.peer) }; - pub const workspaces = DependencyGroup{ .prop = "workspaces", .field = "workspaces", .behavior = @enumFromInt(Behavior, Behavior.workspace) }; + pub const dependencies = DependencyGroup{ .prop = "dependencies", .field = "dependencies", .behavior = @as(Behavior, @enumFromInt(Behavior.normal)) }; + pub const dev = DependencyGroup{ .prop = "devDependencies", .field = "dev_dependencies", .behavior = @as(Behavior, @enumFromInt(Behavior.dev)) }; + pub const optional = DependencyGroup{ .prop = "optionalDependencies", .field = "optional_dependencies", .behavior = @as(Behavior, @enumFromInt(Behavior.optional)) }; + pub const peer = DependencyGroup{ .prop = "peerDependencies", .field = "peer_dependencies", .behavior = @as(Behavior, @enumFromInt(Behavior.peer)) }; + pub const workspaces = DependencyGroup{ .prop = "workspaces", .field = "workspaces", .behavior = @as(Behavior, @enumFromInt(Behavior.workspace)) }; }; pub inline fn isDisabled(this: *const Lockfile.Package) bool { @@ -1988,9 +1988,9 @@ pub const Package = extern struct { try new.buffers.resolutions.ensureUnusedCapacity(new.allocator, old_dependencies.len); try new.buffers.extern_strings.ensureUnusedCapacity(new.allocator, new_extern_string_count); - const prev_len = @truncate(u32, new.buffers.dependencies.items.len); - const end = prev_len + @truncate(u32, old_dependencies.len); - const max_package_id = @truncate(PackageID, old.packages.len); + const prev_len = @as(u32, @truncate(new.buffers.dependencies.items.len)); + const end = prev_len + @as(u32, @truncate(old_dependencies.len)); + const max_package_id = @as(PackageID, @truncate(old.packages.len)); new.buffers.dependencies.items = new.buffers.dependencies.items.ptr[0..end]; new.buffers.resolutions.items = new.buffers.resolutions.items.ptr[0..end]; @@ -2001,7 +2001,7 @@ pub const Package = extern struct { var dependencies: []Dependency = new.buffers.dependencies.items[prev_len..end]; var resolutions: []PackageID = new.buffers.resolutions.items[prev_len..end]; - const id = @truncate(PackageID, new.packages.len); + const id = @as(PackageID, @truncate(new.packages.len)); const new_package = try new.appendPackageWithID( .{ .name = builder.appendWithHash( @@ -2068,7 +2068,7 @@ pub const Package = extern struct { try cloner.clone_queue.append(.{ .old_resolution = old_resolution, .parent = new_package.meta.id, - .resolve_id = new_package.resolutions.off + @intCast(PackageID, i), + .resolve_id = new_package.resolutions.off + @as(PackageID, @intCast(i)), }); } } @@ -2150,8 +2150,8 @@ pub const Package = extern struct { package.meta.arch = package_json.arch; package.meta.os = package_json.os; - package.dependencies.off = @truncate(u32, dependencies_list.items.len); - package.dependencies.len = total_dependencies_count - @truncate(u32, dependencies.len); + package.dependencies.off = @as(u32, @truncate(dependencies_list.items.len)); + package.dependencies.len = total_dependencies_count - @as(u32, @truncate(dependencies.len)); package.resolutions.off = package.dependencies.off; package.resolutions.len = package.dependencies.len; @@ -2338,7 +2338,7 @@ pub const Package = extern struct { package.meta.integrity = package_version.integrity; - package.dependencies.off = @truncate(u32, dependencies_list.items.len); + package.dependencies.off = @as(u32, @truncate(dependencies_list.items.len)); package.dependencies.len = total_dependencies_count; package.resolutions.off = package.dependencies.off; package.resolutions.len = package.dependencies.len; @@ -2407,7 +2407,7 @@ pub const Package = extern struct { }; if (to_deps[to_i].eql(from_dep, to_lockfile.buffers.string_bytes.items, from_lockfile.buffers.string_bytes.items)) { - mapping[to_i] = @truncate(PackageID, i); + mapping[to_i] = @as(PackageID, @truncate(i)); continue; } @@ -2548,7 +2548,7 @@ pub const Package = extern struct { ), ); defer dependency_version.value.workspace = path; - var workspace_entry = try lockfile.workspace_paths.getOrPut(allocator, @truncate(u32, external_name.hash)); + var workspace_entry = try lockfile.workspace_paths.getOrPut(allocator, @as(u32, @truncate(external_name.hash))); if (workspace_entry.found_existing) { const old_path = workspace_entry.value_ptr.*; @@ -2931,7 +2931,7 @@ pub const Package = extern struct { .values = workspace_names.values(), }); - return @truncate(u32, workspace_names.count()); + return @as(u32, @truncate(workspace_names.count())); } fn parseWithJSON( @@ -3128,7 +3128,7 @@ pub const Package = extern struct { else => {}, } } - total_dependencies_count += @truncate(u32, obj.properties.len); + total_dependencies_count += @as(u32, @truncate(obj.properties.len)); }, else => { if (group.behavior.isWorkspace()) { @@ -3167,7 +3167,7 @@ pub const Package = extern struct { , .{}) catch {}; return error.InvalidPackageJSON; }; - lockfile.trusted_dependencies.putAssumeCapacity(@truncate(u32, String.Builder.stringHash(name)), {}); + lockfile.trusted_dependencies.putAssumeCapacity(@as(u32, @truncate(String.Builder.stringHash(name))), {}); } }, else => { @@ -3313,7 +3313,7 @@ pub const Package = extern struct { } total_dependencies_count = 0; - const in_workspace = lockfile.workspace_paths.contains(@truncate(u32, package.name_hash)); + const in_workspace = lockfile.workspace_paths.contains(@as(u32, @truncate(package.name_hash))); inline for (dependency_groups) |group| { if (group.behavior.isWorkspace()) { @@ -3354,7 +3354,7 @@ pub const Package = extern struct { var tag: ?Dependency.Version.Tag = null; var workspace_path: ?String = null; - if (lockfile.workspace_paths.get(@truncate(u32, external_name.hash))) |path| { + if (lockfile.workspace_paths.get(@as(u32, @truncate(external_name.hash)))) |path| { tag = .workspace; workspace_path = path; } @@ -3395,10 +3395,10 @@ pub const Package = extern struct { Dependency.isLessThan, ); - package.dependencies.off = @truncate(u32, off); - package.dependencies.len = @truncate(u32, total_dependencies_count); + package.dependencies.off = @as(u32, @truncate(off)); + package.dependencies.len = @as(u32, @truncate(total_dependencies_count)); - package.resolutions = @bitCast(@TypeOf(package.resolutions), package.dependencies); + package.resolutions = @as(@TypeOf(package.resolutions), @bitCast(package.dependencies)); @memset(lockfile.buffers.resolutions.items.ptr[off..total_len], invalid_package_id); @@ -3458,14 +3458,20 @@ pub const Package = extern struct { .alignment = if (@sizeOf(field_info.type) == 0) 1 else field_info.alignment, }; } - const Sort = struct { - fn lessThan(trash: *i32, comptime lhs: Data, comptime rhs: Data) bool { - _ = trash; - return lhs.alignment > rhs.alignment; + const SortContext = struct { + data: []Data, + pub fn swap(comptime ctx: @This(), comptime lhs: usize, comptime rhs: usize) void { + const tmp = ctx.data[lhs]; + ctx.data[lhs] = ctx.data[rhs]; + ctx.data[rhs] = tmp; + } + pub fn lessThan(comptime ctx: @This(), comptime lhs: usize, comptime rhs: usize) bool { + return ctx.data[lhs].alignment > ctx.data[rhs].alignment; } }; - var trash: i32 = undefined; // workaround for stage1 compiler bug - std.sort.block(Data, &data, &trash, Sort.lessThan); + std.sort.insertionContext(0, fields.len, SortContext{ + .data = &data, + }); var sizes_bytes: [fields.len]usize = undefined; var field_indexes: [fields.len]usize = undefined; var Types: [fields.len]type = undefined; @@ -3485,7 +3491,7 @@ pub const Package = extern struct { pub fn byteSize(list: Lockfile.Package.List) usize { const sizes_vector: std.meta.Vector(sizes.bytes.len, usize) = sizes.bytes; - const capacity_vector = @splat(sizes.bytes.len, list.len); + const capacity_vector: @Vector(sizes.bytes.len, usize) = @splat(list.len); return @reduce(.Add, capacity_vector * sizes_vector); } @@ -3626,14 +3632,22 @@ const Buffers = struct { .type = field_info.type.Slice, }; } - const Sort = struct { - fn lessThan(trash: *i32, comptime lhs: Data, comptime rhs: Data) bool { - _ = trash; - return lhs.alignment > rhs.alignment; + + const SortContext = struct { + data: []Data, + pub fn swap(comptime ctx: @This(), comptime lhs: usize, comptime rhs: usize) void { + const tmp = ctx.data[lhs]; + ctx.data[lhs] = ctx.data[rhs]; + ctx.data[rhs] = tmp; + } + pub fn lessThan(comptime ctx: @This(), comptime lhs: usize, comptime rhs: usize) bool { + return ctx.data[lhs].alignment > ctx.data[rhs].alignment; } }; - var trash: i32 = undefined; // workaround for stage1 compiler bug - std.sort.block(Data, &data, &trash, Sort.lessThan); + + std.sort.insertionContext(0, fields.len, SortContext{ + .data = &data, + }); var sizes_bytes: [fields.len]usize = undefined; var names: [fields.len][]const u8 = undefined; var types: [fields.len]type = undefined; @@ -3673,7 +3687,7 @@ const Buffers = struct { const misaligned = std.mem.bytesAsSlice(PointerType, stream.buffer[start_pos..end_pos]); return ArrayList{ - .items = try allocator.dupe(PointerType, @alignCast(@alignOf([*]PointerType), misaligned.ptr)[0..misaligned.len]), + .items = try allocator.dupe(PointerType, @as([*]PointerType, @alignCast(misaligned.ptr))[0..misaligned.len]), .capacity = misaligned.len, }; } @@ -3774,7 +3788,7 @@ const Buffers = struct { if (visited.isSet(dep_id)) continue; visited.set(dep_id); } - return @truncate(DependencyID, dep_id); + return @as(DependencyID, @truncate(dep_id)); } }, } @@ -3940,16 +3954,16 @@ pub const Serializer = struct { { lockfile.package_index = PackageIndex.Map.initContext(allocator, .{}); lockfile.string_pool = StringPool.initContext(allocator, .{}); - try lockfile.package_index.ensureTotalCapacity(@truncate(u32, lockfile.packages.len)); + try lockfile.package_index.ensureTotalCapacity(@as(u32, @truncate(lockfile.packages.len))); const slice = lockfile.packages.slice(); const name_hashes = slice.items(.name_hash); const resolutions = slice.items(.resolution); for (name_hashes, resolutions, 0..) |name_hash, resolution, id| { - try lockfile.getOrPutID(@truncate(PackageID, id), name_hash); + try lockfile.getOrPutID(@as(PackageID, @truncate(id)), name_hash); switch (resolution.tag) { .workspace => { - try lockfile.workspace_paths.put(allocator, @truncate(u32, name_hash), resolution.value.workspace); + try lockfile.workspace_paths.put(allocator, @as(u32, @truncate(name_hash)), resolution.value.workspace); }, else => {}, } @@ -3986,13 +4000,13 @@ fn generateMetaHash(this: *Lockfile, print_name_version_string: bool) !MetaHash while (i + 16 < this.packages.len) : (i += 16) { comptime var j: usize = 0; inline while (j < 16) : (j += 1) { - alphabetized_names[(i + j) - 1] = @truncate(PackageID, (i + j)); + alphabetized_names[(i + j) - 1] = @as(PackageID, @truncate((i + j))); string_builder.fmtCount("{s}@{}\n", .{ names[i + j].slice(bytes), resolutions[i + j].fmt(bytes) }); } } while (i < this.packages.len) : (i += 1) { - alphabetized_names[i - 1] = @truncate(PackageID, i); + alphabetized_names[i - 1] = @as(PackageID, @truncate(i)); string_builder.fmtCount("{s}@{}\n", .{ names[i].slice(bytes), resolutions[i].fmt(bytes) }); } } diff --git a/src/install/npm.zig b/src/install/npm.zig index 6edb6dcb4..0a25fe636 100644 --- a/src/install/npm.zig +++ b/src/install/npm.zig @@ -204,7 +204,7 @@ pub const Registry = struct { package_name, newly_last_modified, new_etag, - @truncate(u32, @intCast(u64, @max(0, std.time.timestamp()))) + 300, + @as(u32, @truncate(@as(u64, @intCast(@max(0, std.time.timestamp()))))) + 300, )) |package| { if (package_manager.options.enable.manifest_cache) { PackageManifest.Serializer.save(&package, package_manager.getTemporaryDirectory(), package_manager.getCacheDirectory()) catch {}; @@ -231,7 +231,7 @@ const ExternVersionMap = extern struct { pub fn findKeyIndex(this: ExternVersionMap, buf: []const Semver.Version, find: Semver.Version) ?u32 { for (this.keys.get(buf), 0..) |key, i| { if (key.eql(find)) { - return @truncate(u32, i); + return @as(u32, @truncate(i)); } } @@ -290,9 +290,9 @@ pub const OperatingSystem = enum(u16) { const field: u16 = NameMap.get(str[offset..]) orelse return this_; if (is_not) { - return @enumFromInt(OperatingSystem, this & ~field); + return @as(OperatingSystem, @enumFromInt(this & ~field)); } else { - return @enumFromInt(OperatingSystem, this | field); + return @as(OperatingSystem, @enumFromInt(this | field)); } } }; @@ -355,9 +355,9 @@ pub const Architecture = enum(u16) { const field: u16 = NameMap.get(input) orelse return this_; if (is_not) { - return @enumFromInt(Architecture, this & ~field); + return @as(Architecture, @enumFromInt(this & ~field)); } else { - return @enumFromInt(Architecture, this | field); + return @as(Architecture, @enumFromInt(this | field)); } } }; @@ -536,7 +536,7 @@ pub const PackageManifest = struct { stream.pos += Aligner.skipAmount(Type, stream.pos); const result_bytes = stream.buffer[stream.pos..][0..byte_len]; - const result = @ptrCast([*]const Type, @alignCast(@alignOf([*]const Type), result_bytes.ptr))[0 .. result_bytes.len / @sizeOf(Type)]; + const result = @as([*]const Type, @ptrCast(@alignCast(result_bytes.ptr)))[0 .. result_bytes.len / @sizeOf(Type)]; stream.pos += result_bytes.len; return result; } @@ -577,7 +577,7 @@ pub const PackageManifest = struct { var dest_path_stream = std.io.fixedBufferStream(&dest_path_buf); var dest_path_stream_writer = dest_path_stream.writer(); const hex_fmt = bun.fmt.hexIntLower(file_id); - const hex_timestamp = @intCast(usize, @max(std.time.milliTimestamp(), 0)); + const hex_timestamp = @as(usize, @intCast(@max(std.time.milliTimestamp(), 0))); const hex_timestamp_fmt = bun.fmt.hexIntLower(hex_timestamp); try dest_path_stream_writer.print("{any}.npm-{any}", .{ hex_fmt, hex_timestamp_fmt }); try dest_path_stream_writer.writeByte(0); @@ -1306,15 +1306,15 @@ pub const PackageManifest = struct { } if (optional_peer_dep_names.items.len == 0) { - const names_hash_bytes = @bitCast([8]u8, this_names[i].hash); + const names_hash_bytes = @as([8]u8, @bitCast(this_names[i].hash)); name_hasher.update(&names_hash_bytes); - const versions_hash_bytes = @bitCast([8]u8, this_versions[i].hash); + const versions_hash_bytes = @as([8]u8, @bitCast(this_versions[i].hash)); version_hasher.update(&versions_hash_bytes); } } else { - const names_hash_bytes = @bitCast([8]u8, this_names[i].hash); + const names_hash_bytes = @as([8]u8, @bitCast(this_names[i].hash)); name_hasher.update(&names_hash_bytes); - const versions_hash_bytes = @bitCast([8]u8, this_versions[i].hash); + const versions_hash_bytes = @as([8]u8, @bitCast(this_versions[i].hash)); version_hasher.update(&versions_hash_bytes); } @@ -1327,7 +1327,7 @@ pub const PackageManifest = struct { var version_list = ExternalStringList.init(version_extern_strings, this_versions); if (comptime is_peer) { - package_version.optional_peer_dependencies_len = @truncate(u32, peer_dependency_len); + package_version.optional_peer_dependencies_len = @as(u32, @truncate(peer_dependency_len)); } if (count > 0 and @@ -1502,10 +1502,10 @@ pub const PackageManifest = struct { } result.pkg.string_lists_buf.off = 0; - result.pkg.string_lists_buf.len = @truncate(u32, all_extern_strings.len); + result.pkg.string_lists_buf.len = @as(u32, @truncate(all_extern_strings.len)); result.pkg.versions_buf.off = 0; - result.pkg.versions_buf.len = @truncate(u32, all_semver_versions.len); + result.pkg.versions_buf.len = @as(u32, @truncate(all_semver_versions.len)); result.versions = all_semver_versions; result.external_strings = all_extern_strings; @@ -1518,7 +1518,7 @@ pub const PackageManifest = struct { result.string_buf = ptr[0..string_builder.len]; result.pkg.string_buf = BigExternalString{ .off = 0, - .len = @truncate(u32, string_builder.len), + .len = @as(u32, @truncate(string_builder.len)), .hash = 0, }; } diff --git a/src/install/semver.zig b/src/install/semver.zig index c2730e7c7..1ec76b370 100644 --- a/src/install/semver.zig +++ b/src/install/semver.zig @@ -65,7 +65,7 @@ pub const String = extern struct { if (out.isInline()) { out.assertDefined(); } else { - std.debug.assert(@bitCast(u64, out.slice(buf)[0..8].*) != undefined); + std.debug.assert(@as(u64, @bitCast(out.slice(buf)[0..8].*)) != undefined); } return out; @@ -76,8 +76,8 @@ pub const String = extern struct { pub fn isUndefined(this: *const String) bool { var num: u64 = undefined; - var bytes = @bitCast(u64, this.bytes); - return @truncate(u63, bytes) == @truncate(u63, num); + var bytes = @as(u64, @bitCast(this.bytes)); + return @as(u63, @truncate(bytes)) == @as(u63, @truncate(num)); } pub const Formatter = struct { @@ -153,7 +153,7 @@ pub const String = extern struct { pub fn hash(ctx: ArrayHashContext, a: String) u32 { const str = a.slice(ctx.a_buf); - return @truncate(u32, bun.hash(str)); + return @as(u32, @truncate(bun.hash(str))); } }; @@ -175,44 +175,44 @@ pub const String = extern struct { // This should only happen for non-ascii strings that are exactly 8 bytes. // so that's an edge-case if ((in[max_inline_len - 1]) >= 128) - @bitCast(String, (@as( + @as(String, @bitCast((@as( u64, 0, ) | @as( u64, - @truncate( + @as( max_addressable_space, - @bitCast( + @truncate(@as( u64, - Pointer.init(buf, in), - ), + @bitCast(Pointer.init(buf, in)), + )), ), - )) | 1 << 63) + )) | 1 << 63)) else String{ .bytes = .{ in[0], in[1], in[2], in[3], in[4], in[5], in[6], in[7] } }, - else => @bitCast( + else => @as( String, - (@as( + @bitCast((@as( u64, 0, ) | @as( u64, - @truncate( + @as( max_addressable_space, - @bitCast( + @truncate(@as( u64, - Pointer.init(buf, in), - ), + @bitCast(Pointer.init(buf, in)), + )), ), - )) | 1 << 63, + )) | 1 << 63), ), }; } pub fn eql(this: String, that: String, this_buf: []const u8, that_buf: []const u8) bool { if (this.isInline() and that.isInline()) { - return @bitCast(u64, this.bytes) == @bitCast(u64, that.bytes); + return @as(u64, @bitCast(this.bytes)) == @as(u64, @bitCast(that.bytes)); } else if (this.isInline() != that.isInline()) { return false; } else { @@ -223,7 +223,7 @@ pub const String = extern struct { } pub inline fn isEmpty(this: String) bool { - return @bitCast(u64, this.bytes) == @as(u64, 0); + return @as(u64, @bitCast(this.bytes)) == @as(u64, 0); } pub fn len(this: String) usize { @@ -263,14 +263,14 @@ pub const String = extern struct { std.debug.assert(bun.isSliceInBuffer(in, buf)); return Pointer{ - .off = @truncate(u32, @intFromPtr(in.ptr) - @intFromPtr(buf.ptr)), - .len = @truncate(u32, in.len), + .off = @as(u32, @truncate(@intFromPtr(in.ptr) - @intFromPtr(buf.ptr))), + .len = @as(u32, @truncate(in.len)), }; } }; pub inline fn ptr(this: String) Pointer { - return @bitCast(Pointer, @as(u64, @truncate(u63, @bitCast(u64, this)))); + return @as(Pointer, @bitCast(@as(u64, @as(u63, @truncate(@as(u64, @bitCast(this))))))); } // String must be a pointer because we reference it as a slice. It will become a dead pointer if it is copied. @@ -483,7 +483,7 @@ test "String works" { world, ); try std.testing.expectEqualStrings("hello", str.slice(buf)); - try std.testing.expectEqual(@bitCast(u64, str), @bitCast(u64, [8]u8{ 'h', 'e', 'l', 'l', 'o', 0, 0, 0 })); + try std.testing.expectEqual(@as(u64, @bitCast(str)), @as(u64, @bitCast([8]u8{ 'h', 'e', 'l', 'l', 'o', 0, 0, 0 }))); } { @@ -551,7 +551,7 @@ pub const BigExternalString = extern struct { pub fn from(in: string) BigExternalString { return BigExternalString{ .off = 0, - .len = @truncate(u32, in.len), + .len = @as(u32, @truncate(in.len)), .hash = bun.Wyhash.hash(0, in), }; } @@ -560,8 +560,8 @@ pub const BigExternalString = extern struct { std.debug.assert(@intFromPtr(buf.ptr) <= @intFromPtr(in.ptr) and ((@intFromPtr(in.ptr) + in.len) <= (@intFromPtr(buf.ptr) + buf.len))); return BigExternalString{ - .off = @truncate(u32, @intFromPtr(in.ptr) - @intFromPtr(buf.ptr)), - .len = @truncate(u32, in.len), + .off = @as(u32, @truncate(@intFromPtr(in.ptr) - @intFromPtr(buf.ptr))), + .len = @as(u32, @truncate(in.len)), .hash = hash, }; } @@ -709,7 +709,7 @@ pub const Version = extern struct { pub const HashContext = struct { pub fn hash(_: @This(), lhs: Version) u32 { - return @truncate(u32, lhs.hash()); + return @as(u32, @truncate(lhs.hash())); } pub fn eql(_: @This(), lhs: Version, rhs: Version) bool { @@ -871,7 +871,7 @@ pub const Version = extern struct { state = State.none; }, } - result.len = @truncate(u32, i); + result.len = @as(u32, @truncate(i)); break; }, '+' => { @@ -919,7 +919,7 @@ pub const Version = extern struct { state = State.none; }, } - result.len = @truncate(u32, i); + result.len = @as(u32, @truncate(i)); return result; } @@ -955,7 +955,7 @@ pub const Version = extern struct { break; } - stopped_at = @intCast(i32, i); + stopped_at = @as(i32, @intCast(i)); switch (input[i]) { ' ' => { is_done = true; @@ -1104,7 +1104,7 @@ pub const Version = extern struct { } } - result.stopped_at = @intCast(u32, i); + result.stopped_at = @as(u32, @intCast(i)); if (comptime RawType != void) { result.version.raw = sliced_string.sub(input[0..i]).external(); diff --git a/src/io/io_darwin.zig b/src/io/io_darwin.zig index 9ebc6f4d6..c44b285c2 100644 --- a/src/io/io_darwin.zig +++ b/src/io/io_darwin.zig @@ -250,7 +250,7 @@ pub fn asError(err: anytype) Errno { err; return switch (int) { - 1...errno_map.len => |val| errno_map[@intCast(u8, val)], + 1...errno_map.len => |val| errno_map[@as(u8, @intCast(val))], else => error.Unexpected, }; } @@ -402,7 +402,7 @@ pub const Syscall = struct { pub fn fcntl(fd: fd_t, cmd: i32, arg: usize) Errno!usize { const rc = darwin.@"fcntl$NOCANCEL"(fd, cmd, arg); return switch (darwin.getErrno(rc)) { - .SUCCESS => @intCast(usize, rc), + .SUCCESS => @as(usize, @intCast(rc)), else => |err| asError(err), }; } @@ -445,7 +445,7 @@ pub const Syscall = struct { } || Errno; pub fn setsockopt(fd: socket_t, level: u32, optname: u32, opt: []const u8) SetSockOptError!void { - switch (darwin.getErrno(darwin.setsockopt(fd, level, optname, opt.ptr, @intCast(socklen_t, opt.len)))) { + switch (darwin.getErrno(darwin.setsockopt(fd, level, optname, opt.ptr, @as(socklen_t, @intCast(opt.len))))) { .SUCCESS => {}, .DOM => return error.TimeoutTooBig, .ISCONN => return error.AlreadyConnected, @@ -462,7 +462,7 @@ pub const Syscall = struct { const rc = darwin.socket(domain, filtered_sock_type, protocol); switch (darwin.getErrno(rc)) { .SUCCESS => { - const fd = @intCast(fd_t, rc); + const fd = @as(fd_t, @intCast(rc)); try setSockFlags(fd, socket_type); return fd; }, @@ -540,7 +540,7 @@ pub const Waker = struct { return asError(std.c.getErrno(count)); } - return @intCast(usize, count); + return @as(usize, @intCast(count)); } extern fn io_darwin_create_machport( @@ -627,7 +627,7 @@ pub const UserFilterWaker = struct { return asError(std.c.getErrno(errno)); } - return @intCast(u64, errno); + return @as(u64, @intCast(errno)); } pub fn init(_: std.mem.Allocator) !UserFilterWaker { @@ -646,7 +646,7 @@ pub const UserFilterWaker = struct { &events, 1, &events, - @intCast(c_int, events.len), + @as(c_int, @intCast(events.len)), 0, ×pec, ); @@ -742,16 +742,16 @@ fn flush(self: *IO, comptime _: @Type(.EnumLiteral)) !void { // We need to wait (not poll) on kevent if there's nothing to submit or complete. if (next_timeout) |timeout_ns| { - ts.tv_nsec = @intCast(@TypeOf(ts.tv_nsec), timeout_ns % std.time.ns_per_s); - ts.tv_sec = @intCast(@TypeOf(ts.tv_sec), timeout_ns / std.time.ns_per_s); + ts.tv_nsec = @as(@TypeOf(ts.tv_nsec), @intCast(timeout_ns % std.time.ns_per_s)); + ts.tv_sec = @as(@TypeOf(ts.tv_sec), @intCast(timeout_ns / std.time.ns_per_s)); } const new_events_ = std.os.system.kevent64( self.waker.kq, &events, - @intCast(c_int, change_events), + @as(c_int, @intCast(change_events)), &events, - @intCast(c_int, events.len), + @as(c_int, @intCast(events.len)), 0, if (next_timeout != null) &ts else null, ); @@ -759,7 +759,7 @@ fn flush(self: *IO, comptime _: @Type(.EnumLiteral)) !void { if (new_events_ < 0) { return std.debug.panic("kevent() failed {s}", .{@tagName(std.c.getErrno(new_events_))}); } - const new_events = @intCast(usize, new_events_); + const new_events = @as(usize, @intCast(new_events_)); // Mark the io events submitted only after kevent() successfully processed them self.io_pending.out = io_pending; @@ -776,7 +776,7 @@ fn flush(self: *IO, comptime _: @Type(.EnumLiteral)) !void { continue; } - const completion = @ptrFromInt(*Completion, kevent.udata); + const completion = @as(*Completion, @ptrFromInt(kevent.udata)); completion.next = null; self.completed.push(completion); } @@ -836,9 +836,9 @@ fn flush_io(_: *IO, events: []Kevent64, io_pending_top: *?*Completion) usize { kevent.* = .{ .ext = [2]u64{ 0, 0 }, - .ident = @intCast(u32, event_info[0]), - .filter = @intCast(i16, event_info[1]), - .flags = @intCast(u16, event_info[2]), + .ident = @as(u32, @intCast(event_info[0])), + .filter = @as(i16, @intCast(event_info[1])), + .flags = @as(u16, @intCast(event_info[2])), .fflags = 0, .data = 0, .udata = @intFromPtr(completion), @@ -999,7 +999,7 @@ fn submitWithIncrementPending( // Complete the Completion return callback( - @ptrFromInt(Context, @intFromPtr(_completion.context)), + @as(Context, @ptrFromInt(@intFromPtr(_completion.context))), _completion, result, ); @@ -1023,7 +1023,7 @@ pub const AcceptError = os.AcceptError || os.SetSockOptError; // -- NOT DONE YET pub fn eventfd(self: *IO) os.fd_t { - return @intCast(os.fd_t, self.last_event_fd.fetchAdd(1, .Monotonic)); + return @as(os.fd_t, @intCast(self.last_event_fd.fetchAdd(1, .Monotonic))); } // -- NOT DONE YET @@ -1204,10 +1204,10 @@ pub fn connect( true => brk: { var err_code: i32 = undefined; var size: u32 = @sizeOf(u32); - const rc = system.getsockopt(op.socket, os.SOL.SOCKET, os.SO.ERROR, @ptrCast([*]u8, &err_code), &size); + const rc = system.getsockopt(op.socket, os.SOL.SOCKET, os.SO.ERROR, @as([*]u8, @ptrCast(&err_code)), &size); assert(size == 4); break :brk switch (darwin.getErrno(rc)) { - .SUCCESS => switch (@enumFromInt(os.E, err_code)) { + .SUCCESS => switch (@as(os.E, @enumFromInt(err_code))) { .SUCCESS => {}, .ACCES => error.PermissionDenied, .PERM => error.PermissionDenied, @@ -1306,7 +1306,7 @@ pub fn openSync( file_path: [:0]const u8, flags: os.mode_t, ) OpenError!fd_t { - return Syscall.open(file_path, @intCast(c_uint, flags)); + return Syscall.open(file_path, @as(c_uint, @intCast(flags))); } pub const ReadError = error{ @@ -1343,7 +1343,7 @@ pub fn read( .{ .fd = fd, .buf = buffer.ptr, - .len = @intCast(u32, buffer_limit(buffer.len)), + .len = @as(u32, @intCast(buffer_limit(buffer.len))), .offset = offset_, .positional = offset != null, }, @@ -1356,7 +1356,7 @@ pub fn read( op.len, ); return switch (@intFromEnum(os.errno(rc))) { - 0 => @intCast(usize, rc), + 0 => @as(usize, @intCast(rc)), os.EINTR => continue, os.EAGAIN => error.WouldBlock, os.EBADF => error.NotOpenForReading, @@ -1405,13 +1405,13 @@ pub fn recv( .{ .socket = socket, .buf = buffer.ptr, - .len = @intCast(u32, buffer_limit(buffer.len)), + .len = @as(u32, @intCast(buffer_limit(buffer.len))), }, struct { fn doOperation(op: anytype) RecvError!usize { const rc = system.@"recvfrom$NOCANCEL"(op.socket, op.buf, op.len, 0, null, null); return switch (system.getErrno(rc)) { - .SUCCESS => @intCast(usize, rc), + .SUCCESS => @as(usize, @intCast(rc)), .AGAIN => error.WouldBlock, .NOMEM => error.SystemResources, .CONNREFUSED => error.ConnectionRefused, @@ -1463,14 +1463,14 @@ pub fn send( .{ .socket = socket, .buf = buffer.ptr, - .len = @intCast(u32, buffer_limit(buffer.len)), + .len = @as(u32, @intCast(buffer_limit(buffer.len))), .flags = 0, }, struct { fn doOperation(op: anytype) SendError!usize { const rc = system.@"sendto$NOCANCEL"(op.socket, op.buf, op.len, op.flags, null, 0); return switch (system.getErrno(rc)) { - .SUCCESS => @intCast(usize, rc), + .SUCCESS => @as(usize, @intCast(rc)), .ACCES => error.AccessDenied, .AGAIN => error.WouldBlock, .ALREADY => error.FastOpenAlreadyInProgress, @@ -1578,7 +1578,7 @@ pub fn write( .{ .fd = fd, .buf = buffer.ptr, - .len = @intCast(u32, buffer_limit(buffer.len)), + .len = @as(u32, @intCast(buffer_limit(buffer.len))), .offset = offset, }, struct { diff --git a/src/io/io_linux.zig b/src/io/io_linux.zig index 7603eabfd..8f054490b 100644 --- a/src/io/io_linux.zig +++ b/src/io/io_linux.zig @@ -432,7 +432,7 @@ pub fn asError(err: anytype) Errno { else err; return switch (errnum) { - 1...errno_map.len => errno_map[@intCast(u8, errnum)], + 1...errno_map.len => errno_map[@as(u8, @intCast(errnum))], else => error.Unexpected, }; } @@ -660,7 +660,7 @@ fn flush_completions(self: *IO, wait_nr: u32, timeouts: *usize, etime: *bool) !v if (-cqe.res == os.ETIME) etime.* = true; continue; } - const completion = @ptrFromInt(*Completion, @intCast(usize, cqe.user_data)); + const completion = @as(*Completion, @ptrFromInt(@as(usize, @intCast(cqe.user_data)))); completion.result = cqe.res; // We do not run the completion here (instead appending to a linked list) to avoid: // * recursion through `flush_submissions()` and `flush_completions()`, @@ -804,7 +804,7 @@ pub const Completion = struct { os.EPERM => error.PermissionDenied, os.EPROTO => error.ProtocolFailure, else => |errno| asError(errno), - } else @intCast(os.socket_t, completion.result); + } else @as(os.socket_t, @intCast(completion.result)); completion.callback(completion.context, completion, &result); }, @@ -843,7 +843,7 @@ pub const Completion = struct { os.EEXIST => error.PathAlreadyExists, os.EBUSY => error.DeviceBusy, else => |errno| asError(errno), - } else @intCast(linux.fd_t, completion.result); + } else @as(linux.fd_t, @intCast(completion.result)); completion.callback(completion.context, completion, &result); }, .connect => { @@ -904,7 +904,7 @@ pub const Completion = struct { os.EOVERFLOW => error.Unseekable, os.ESPIPE => error.Unseekable, else => |errno| asError(errno), - } else @intCast(usize, completion.result); + } else @as(usize, @intCast(completion.result)); completion.callback(completion.context, completion, &result); }, .readev, .recv => { @@ -920,7 +920,7 @@ pub const Completion = struct { os.ENOTSOCK => error.FileDescriptorNotASocket, os.ECONNRESET => error.ConnectionResetByPeer, else => |errno| asError(errno), - } else @intCast(usize, completion.result); + } else @as(usize, @intCast(completion.result)); completion.callback(completion.context, completion, &result); }, .writev, .send => { @@ -942,7 +942,7 @@ pub const Completion = struct { os.EOPNOTSUPP => error.OperationNotSupported, os.EPIPE => error.BrokenPipe, else => |errno| asError(errno), - } else @intCast(usize, completion.result); + } else @as(usize, @intCast(completion.result)); completion.callback(completion.context, completion, &result); }, .timeout => { @@ -977,7 +977,7 @@ pub const Completion = struct { os.EPIPE => error.BrokenPipe, os.ESPIPE => error.Unseekable, else => |errno| asError(errno), - } else @intCast(usize, completion.result); + } else @as(usize, @intCast(completion.result)); completion.callback(completion.context, completion, &result); }, } @@ -988,7 +988,7 @@ pub const Waker = struct { fd: os.fd_t, pub fn init(allocator: std.mem.Allocator) !Waker { - return initWithFileDescriptor(allocator, @intCast(os.fd_t, try std.os.eventfd(0, 0))); + return initWithFileDescriptor(allocator, @as(os.fd_t, @intCast(try std.os.eventfd(0, 0)))); } pub fn initWithFileDescriptor(_: std.mem.Allocator, fd: os.fd_t) Waker { @@ -999,15 +999,15 @@ pub const Waker = struct { pub fn wait(this: Waker) !u64 { var bytes: usize = 0; - _ = std.os.read(this.fd, @ptrCast(*[8]u8, &bytes)) catch 0; - return @intCast(u64, bytes); + _ = std.os.read(this.fd, @as(*[8]u8, @ptrCast(&bytes))) catch 0; + return @as(u64, @intCast(bytes)); } pub fn wake(this: *const Waker) !void { var bytes: usize = 1; _ = std.os.write( this.fd, - @ptrCast(*[8]u8, &bytes), + @as(*[8]u8, @ptrCast(&bytes)), ) catch 0; } }; @@ -1107,9 +1107,9 @@ pub fn accept( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @ptrFromInt(Context, @intFromPtr(ctx)), + @as(Context, @ptrFromInt(@intFromPtr(ctx))), comp, - @ptrFromInt(*const AcceptError!os.socket_t, @intFromPtr(res)).*, + @as(*const AcceptError!os.socket_t, @ptrFromInt(@intFromPtr(res))).*, ); } }.wrapper, @@ -1149,9 +1149,9 @@ pub fn close( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @ptrFromInt(Context, @intFromPtr(ctx)), + @as(Context, @ptrFromInt(@intFromPtr(ctx))), comp, - @ptrFromInt(*const CloseError!void, @intFromPtr(res)).*, + @as(*const CloseError!void, @ptrFromInt(@intFromPtr(res))).*, ); } }.wrapper, @@ -1160,7 +1160,7 @@ pub fn close( if (features.close_blocking) { const rc = linux.close(fd); - completion.result = @intCast(i32, rc); + completion.result = @as(i32, @intCast(rc)); self.next_tick.push(completion); return; } @@ -1206,9 +1206,9 @@ pub fn connect( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @ptrFromInt(Context, @intFromPtr(ctx)), + @as(Context, @ptrFromInt(@intFromPtr(ctx))), comp, - @ptrFromInt(*const ConnectError!void, @intFromPtr(res)).*, + @as(*const ConnectError!void, @ptrFromInt(@intFromPtr(res))).*, ); } }.wrapper, @@ -1222,7 +1222,7 @@ pub fn connect( if (features.connect_blocking) { const rc = linux.connect(socket, &address.any, address.getOsSockLen()); - completion.result = @intCast(i32, rc); + completion.result = @as(i32, @intCast(rc)); self.completed.push(completion); return; } @@ -1257,9 +1257,9 @@ pub fn fsync( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @ptrFromInt(Context, @intFromPtr(ctx)), + @as(Context, @ptrFromInt(@intFromPtr(ctx))), comp, - @ptrFromInt(*const FsyncError!void, @intFromPtr(res)).*, + @as(*const FsyncError!void, @ptrFromInt(@intFromPtr(res))).*, ); } }.wrapper, @@ -1303,9 +1303,9 @@ pub fn read( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @ptrFromInt(Context, @intFromPtr(ctx)), + @as(Context, @ptrFromInt(@intFromPtr(ctx))), comp, - @ptrFromInt(*const ReadError!usize, @intFromPtr(res)).*, + @as(*const ReadError!usize, @ptrFromInt(@intFromPtr(res))).*, ); } }.wrapper, @@ -1355,9 +1355,9 @@ pub fn recv( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @ptrFromInt(Context, @intFromPtr(ctx)), + @as(Context, @ptrFromInt(@intFromPtr(ctx))), comp, - @ptrFromInt(*const RecvError!usize, @intFromPtr(res)).*, + @as(*const RecvError!usize, @ptrFromInt(@intFromPtr(res))).*, ); } }.wrapper, @@ -1390,9 +1390,9 @@ pub fn readev( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @ptrFromInt(Context, @intFromPtr(ctx)), + @as(Context, @ptrFromInt(@intFromPtr(ctx))), comp, - @ptrFromInt(*const RecvError!usize, @intFromPtr(res)).*, + @as(*const RecvError!usize, @ptrFromInt(@intFromPtr(res))).*, ); } }.wrapper, @@ -1446,9 +1446,9 @@ pub fn send( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @ptrFromInt(Context, @intFromPtr(ctx)), + @as(Context, @ptrFromInt(@intFromPtr(ctx))), comp, - @ptrFromInt(*const SendError!usize, @intFromPtr(res)).*, + @as(*const SendError!usize, @ptrFromInt(@intFromPtr(res))).*, ); } }.wrapper, @@ -1538,16 +1538,16 @@ pub fn open( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @ptrFromInt(Context, @intFromPtr(ctx)), + @as(Context, @ptrFromInt(@intFromPtr(ctx))), comp, - @ptrFromInt(*const OpenError!linux.fd_t, @intFromPtr(res)).*, + @as(*const OpenError!linux.fd_t, @ptrFromInt(@intFromPtr(res))).*, ); } }.wrapper, .operation = .{ .open = .{ .path = path, - .flags = @intCast(u32, flags), + .flags = @as(u32, @intCast(flags)), .mode = mode, }, }, @@ -1575,9 +1575,9 @@ pub fn writev( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @ptrFromInt(Context, @intFromPtr(ctx)), + @as(Context, @ptrFromInt(@intFromPtr(ctx))), comp, - @ptrFromInt(*const SendError!usize, @intFromPtr(res)).*, + @as(*const SendError!usize, @ptrFromInt(@intFromPtr(res))).*, ); } }.wrapper, @@ -1613,9 +1613,9 @@ pub fn timeout( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @ptrFromInt(Context, @intFromPtr(ctx)), + @as(Context, @ptrFromInt(@intFromPtr(ctx))), comp, - @ptrFromInt(*const TimeoutError!void, @intFromPtr(res)).*, + @as(*const TimeoutError!void, @ptrFromInt(@intFromPtr(res))).*, ); } }.wrapper, @@ -1662,9 +1662,9 @@ pub fn write( .callback = struct { fn wrapper(ctx: ?*anyopaque, comp: *Completion, res: *const anyopaque) void { callback( - @ptrFromInt(Context, @intFromPtr(ctx)), + @as(Context, @ptrFromInt(@intFromPtr(ctx))), comp, - @ptrFromInt(*const WriteError!usize, @intFromPtr(res)).*, + @as(*const WriteError!usize, @ptrFromInt(@intFromPtr(res))).*, ); } }.wrapper, @@ -1702,7 +1702,7 @@ const Syscall = struct { pub fn socket(domain: u32, socket_type: u32, protocol: u32) SocketError!os.socket_t { const rc = linux.socket(domain, socket_type, protocol); return switch (linux.getErrno((rc))) { - .SUCCESS => @intCast(os.fd_t, rc), + .SUCCESS => @as(os.fd_t, @intCast(rc)), .ACCES => return error.PermissionDenied, .AFNOSUPPORT => return error.AddressFamilyNotSupported, .INVAL => return error.ProtocolFamilyNotAvailable, diff --git a/src/io/time.zig b/src/io/time.zig index 8ebf5de6e..1454d009b 100644 --- a/src/io/time.zig +++ b/src/io/time.zig @@ -40,7 +40,7 @@ pub const Time = struct { // see https://github.com/ziglang/zig/pull/933#discussion_r656021295. var ts: std.os.timespec = undefined; std.os.clock_gettime(std.os.CLOCK_BOOTTIME, &ts) catch @panic("CLOCK_BOOTTIME required"); - break :blk @intCast(u64, ts.tv_sec) * std.time.ns_per_s + @intCast(u64, ts.tv_nsec); + break :blk @as(u64, @intCast(ts.tv_sec)) * std.time.ns_per_s + @as(u64, @intCast(ts.tv_nsec)); }; // "Oops!...I Did It Again" diff --git a/src/js_ast.zig b/src/js_ast.zig index 357f11223..b83f6c5c2 100644 --- a/src/js_ast.zig +++ b/src/js_ast.zig @@ -138,7 +138,7 @@ pub fn NewBaseStore(comptime Union: anytype, comptime count: usize) type { out.* = b; } - overflow.allocated = @truncate(Overflow.UsedSize, to_move.len); + overflow.allocated = @as(Overflow.UsedSize, @truncate(to_move.len)); overflow.used = 0; return used; @@ -183,7 +183,7 @@ pub fn NewBaseStore(comptime Union: anytype, comptime count: usize) type { var i: usize = 1; const end = sliced.len; while (i < end) { - var ptrs = @ptrCast(*[2]Block, sliced[i]); + var ptrs = @as(*[2]Block, @ptrCast(sliced[i])); allocator.free(ptrs); i += 2; } @@ -207,12 +207,9 @@ pub fn NewBaseStore(comptime Union: anytype, comptime count: usize) type { var block = self.overflow.tail(); - return @ptrCast( + return @as( *ValueType, - @alignCast( - @alignOf(ValueType), - @alignCast(@alignOf(ValueType), block.append(BytesAsSlice, bytes)), - ), + @ptrCast(@alignCast(block.append(BytesAsSlice, bytes))), ); } }; @@ -631,9 +628,9 @@ pub const CharFreq = struct { for (text) |c| { const i: usize = switch (c) { - 'a'...'z' => @intCast(usize, c) - 'a', - 'A'...'Z' => @intCast(usize, c) - ('A' - 26), - '0'...'9' => @intCast(usize, c) + (53 - '0'), + 'a'...'z' => @as(usize, @intCast(c)) - 'a', + 'A'...'Z' => @as(usize, @intCast(c)) - ('A' - 26), + '0'...'9' => @as(usize, @intCast(c)) + (53 - '0'), '_' => 62, '$' => 63, else => continue, @@ -700,13 +697,13 @@ pub const NameMinifier = struct { pub fn numberToMinifiedName(this: *NameMinifier, name: *std.ArrayList(u8), _i: isize) !void { name.clearRetainingCapacity(); var i = _i; - var j = @intCast(usize, @mod(i, 54)); + var j = @as(usize, @intCast(@mod(i, 54))); try name.appendSlice(this.head.items[j .. j + 1]); i = @divFloor(i, 54); while (i > 0) { i -= 1; - j = @intCast(usize, @mod(i, 64)); + j = @as(usize, @intCast(@mod(i, 64))); try name.appendSlice(this.tail.items[j .. j + 1]); i = @divFloor(i, 64); } @@ -714,14 +711,14 @@ pub const NameMinifier = struct { pub fn defaultNumberToMinifiedName(allocator: std.mem.Allocator, _i: isize) !string { var i = _i; - var j = @intCast(usize, @mod(i, 54)); + var j = @as(usize, @intCast(@mod(i, 54))); var name = std.ArrayList(u8).init(allocator); try name.appendSlice(default_head[j .. j + 1]); i = @divFloor(i, 54); while (i > 0) { i -= 1; - j = @intCast(usize, @mod(i, 64)); + j = @as(usize, @intCast(@mod(i, 64))); try name.appendSlice(default_tail[j .. j + 1]); i = @divFloor(i, 64); } @@ -1225,8 +1222,8 @@ pub const Symbol = struct { .{ symbol.original_name, @tagName(symbol.kind), if (symbol.hasLink()) symbol.link else Ref{ - .source_index = @truncate(Ref.Int, i), - .inner_index = @truncate(Ref.Int, inner_index), + .source_index = @as(Ref.Int, @truncate(i)), + .inner_index = @as(Ref.Int, @truncate(inner_index)), .tag = .symbol, }, }, @@ -1441,7 +1438,7 @@ pub const E = struct { array.protect(); defer array.unprotect(); for (items, 0..) |expr, j| { - array.putIndex(globalObject, @truncate(u32, j), try expr.data.toJS(allocator, globalObject)); + array.putIndex(globalObject, @as(u32, @truncate(j)), try expr.data.toJS(allocator, globalObject)); } return array; @@ -1706,8 +1703,8 @@ pub const E = struct { pub fn toStringFromF64Safe(value: f64, allocator: std.mem.Allocator) ?string { if (value == @trunc(value) and (value < std.math.maxInt(i32) and value > std.math.minInt(i32))) { - const int_value = @intFromFloat(i64, value); - const abs = @intCast(u64, std.math.absInt(int_value) catch return null); + const int_value = @as(i64, @intFromFloat(value)); + const abs = @as(u64, @intCast(std.math.absInt(int_value) catch return null)); if (abs < double_digit.len) { return if (int_value < 0) neg_double_digit[abs] @@ -1715,7 +1712,7 @@ pub const E = struct { double_digit[abs]; } - return std.fmt.allocPrint(allocator, "{d}", .{@intCast(i32, int_value)}) catch return null; + return std.fmt.allocPrint(allocator, "{d}", .{@as(i32, @intCast(int_value))}) catch return null; } if (std.math.isNan(value)) { @@ -1750,7 +1747,7 @@ pub const E = struct { } pub fn to(self: Number, comptime T: type) T { - return @intFromFloat(T, @min(@max(@trunc(self.value), 0), comptime @min(std.math.floatMax(f64), std.math.maxInt(T)))); + return @as(T, @intFromFloat(@min(@max(@trunc(self.value), 0), comptime @min(std.math.floatMax(f64), std.math.maxInt(T))))); } pub fn jsonStringify(self: *const Number, opts: anytype, o: anytype) !void { @@ -2048,7 +2045,7 @@ pub const E = struct { return Expr.Query{ .expr = value, .loc = key.loc, - .i = @truncate(u32, i), + .i = @as(u32, @truncate(i)), }; } } @@ -2154,11 +2151,11 @@ pub const E = struct { std.debug.assert(other.isUTF8()); if (other.rope_len == 0) { - other.rope_len = @truncate(u32, other.data.len); + other.rope_len = @as(u32, @truncate(other.data.len)); } if (this.rope_len == 0) { - this.rope_len = @truncate(u32, this.data.len); + this.rope_len = @as(u32, @truncate(this.data.len)); } this.rope_len += other.rope_len; @@ -2181,7 +2178,7 @@ pub const E = struct { const Value = @TypeOf(value); if (Value == []u16 or Value == []const u16) { return .{ - .data = @ptrCast([*]const u8, value.ptr)[0..value.len], + .data = @as([*]const u8, @ptrCast(value.ptr))[0..value.len], .is_utf16 = true, }; } @@ -2192,7 +2189,7 @@ pub const E = struct { pub fn slice16(this: *const String) []const u16 { std.debug.assert(this.is_utf16); - return @ptrCast([*]const u16, @alignCast(@alignOf(u16), this.data.ptr))[0..this.data.len]; + return @as([*]const u16, @ptrCast(@alignCast(this.data.ptr)))[0..this.data.len]; } pub fn resolveRopeIfNeeded(this: *String, allocator: std.mem.Allocator) void { @@ -2249,10 +2246,10 @@ pub const E = struct { } if (s.isUTF8()) { - return @truncate(u32, bun.simdutf.length.utf16.from.utf8.le(s.data)); + return @as(u32, @truncate(bun.simdutf.length.utf16.from.utf8.le(s.data))); } - return @truncate(u32, s.slice16().len); + return @as(u32, @truncate(s.slice16().len)); } pub inline fn len(s: *const String) usize { @@ -2354,7 +2351,7 @@ pub const E = struct { return bun.hash(s.data); } else { // hash utf-16 - return bun.hash(@ptrCast([*]const u8, s.slice16().ptr)[0 .. s.slice16().len * 2]); + return bun.hash(@as([*]const u8, @ptrCast(s.slice16().ptr))[0 .. s.slice16().len * 2]); } } @@ -2391,7 +2388,7 @@ pub const E = struct { var buf = [_]u8{0} ** 4096; var i: usize = 0; for (s.slice16()) |char| { - buf[i] = @intCast(u8, char); + buf[i] = @as(u8, @intCast(char)); i += 1; if (i >= 4096) { break; @@ -5793,11 +5790,11 @@ pub const Op = struct { } pub inline fn sub(self: Level, i: anytype) Level { - return @enumFromInt(Level, @intFromEnum(self) - i); + return @as(Level, @enumFromInt(@intFromEnum(self) - i)); } pub inline fn addF(self: Level, i: anytype) Level { - return @enumFromInt(Level, @intFromEnum(self) + i); + return @as(Level, @enumFromInt(@intFromEnum(self) + i)); } }; @@ -6143,7 +6140,7 @@ pub const BundledAst = struct { pub fn init(ast: Ast) BundledAst { return .{ - .approximate_newline_count = @truncate(u32, ast.approximate_newline_count), + .approximate_newline_count = @as(u32, @truncate(ast.approximate_newline_count)), .nested_scope_slot_counts = ast.nested_scope_slot_counts, .externals = ast.externals, @@ -7309,7 +7306,7 @@ pub const Macro = struct { _: js.JSStringRef, _: js.ExceptionRef, ) js.JSObjectRef { - return JSC.JSValue.jsNumberFromU16(@intCast(u16, @intFromEnum(std.meta.activeTag(this.data)))).asRef(); + return JSC.JSValue.jsNumberFromU16(@as(u16, @intCast(@intFromEnum(std.meta.activeTag(this.data))))).asRef(); } pub fn getTagName( this: *JSNode, @@ -7716,7 +7713,7 @@ pub const Macro = struct { var list = std.EnumArray(Tag, Expr.Data).initFill(Expr.Data{ .e_number = E.Number{ .value = 0.0 } }); const fields: []const std.builtin.Type.EnumField = @typeInfo(Tag).Enum.fields; for (fields) |field| { - list.set(@enumFromInt(Tag, field.value), Expr.Data{ .e_number = E.Number{ .value = @floatFromInt(f64, field.value) } }); + list.set(@as(Tag, @enumFromInt(field.value)), Expr.Data{ .e_number = E.Number{ .value = @as(f64, @floatFromInt(field.value)) } }); } break :brk list; @@ -7940,7 +7937,7 @@ pub const Macro = struct { for (props, 0..) |prop, i| { const key = prop.key orelse continue; if (key.data != .e_string or !key.data.e_string.isUTF8()) continue; - if (strings.eqlComptime(key.data.e_string.data, name)) return @intCast(u32, i); + if (strings.eqlComptime(key.data.e_string.data, name)) return @as(u32, @intCast(i)); } return null; @@ -8032,7 +8029,7 @@ pub const Macro = struct { Expr{ .data = .{ .e_number = E.Number{ - .value = @floatFromInt(f64, @intFromBool(value.data.e_boolean.value)), + .value = @as(f64, @floatFromInt(@intFromBool(value.data.e_boolean.value))), }, }, .loc = value.loc, @@ -8108,8 +8105,8 @@ pub const Macro = struct { Tag.e_array => { self.args.ensureUnusedCapacity(2 + children.len) catch unreachable; self.args.appendAssumeCapacity(Expr{ .loc = loc, .data = comptime Tag.ids.get(Tag.e_array) }); - const children_count = @truncate(u16, children.len); - self.args.appendAssumeCapacity(Expr{ .loc = loc, .data = .{ .e_number = E.Number{ .value = @floatFromInt(f64, children_count) } } }); + const children_count = @as(u16, @truncate(children.len)); + self.args.appendAssumeCapacity(Expr{ .loc = loc, .data = .{ .e_number = E.Number{ .value = @as(f64, @floatFromInt(children_count)) } } }); var old_parent = self.parent_tag; self.parent_tag = Tag.e_array; @@ -8147,8 +8144,8 @@ pub const Macro = struct { Tag.e_object => { self.args.ensureUnusedCapacity(2 + children.len) catch unreachable; self.args.appendAssumeCapacity(Expr{ .loc = loc, .data = comptime Tag.ids.get(Tag.e_object) }); - const children_count = @truncate(u16, children.len); - self.args.appendAssumeCapacity(Expr{ .loc = loc, .data = .{ .e_number = E.Number{ .value = @floatFromInt(f64, children_count) } } }); + const children_count = @as(u16, @truncate(children.len)); + self.args.appendAssumeCapacity(Expr{ .loc = loc, .data = .{ .e_number = E.Number{ .value = @as(f64, @floatFromInt(children_count)) } } }); var old_parent = self.parent_tag; self.parent_tag = Tag.e_object; @@ -8353,7 +8350,7 @@ pub const Macro = struct { } self.args.ensureUnusedCapacity(2 + count) catch unreachable; self.args.appendAssumeCapacity(Expr{ .loc = loc, .data = comptime Tag.ids.get(Tag.inline_inject) }); - self.args.appendAssumeCapacity(Expr{ .loc = loc, .data = .{ .e_number = .{ .value = @floatFromInt(f64, @intCast(u32, children.len)) } } }); + self.args.appendAssumeCapacity(Expr{ .loc = loc, .data = .{ .e_number = .{ .value = @as(f64, @floatFromInt(@as(u32, @intCast(children.len)))) } } }); const old_parent_tag = self.parent_tag; self.parent_tag = Tag.inline_inject; @@ -8418,7 +8415,7 @@ pub const Macro = struct { const namespace_ = propertyValueNamed(props, "namespace"); const items_count: u32 = 1 + - @intCast(u32, @intFromBool(namespace_ != null)); + @as(u32, @intCast(@intFromBool(namespace_ != null))); self.args.ensureUnusedCapacity(items_count) catch unreachable; self.args.appendAssumeCapacity(Expr{ .loc = loc, .data = comptime Tag.ids.get(Tag.s_import) }); @@ -8529,7 +8526,7 @@ pub const Macro = struct { .loc = loc, .data = .{ .e_number = E.Number{ - .value = @floatFromInt(f64, children.len), + .value = @as(f64, @floatFromInt(children.len)), }, }, }); @@ -8719,7 +8716,7 @@ pub const Macro = struct { hasher.update(path); hasher.update("#"); hasher.update(name); - return @bitCast(i32, @truncate(u32, hasher.final())); + return @as(i32, @bitCast(@as(u32, @truncate(hasher.final())))); } }; @@ -8767,11 +8764,11 @@ pub const Macro = struct { pub fn fromJSValueRefNoValidate(ctx: js.JSContextRef, value: js.JSValueRef) TagOrJSNode { switch (js.JSValueGetType(ctx, value)) { js.JSType.kJSTypeNumber => { - const tag_int = @intFromFloat(u8, JSC.JSValue.fromRef(value).asNumber()); + const tag_int = @as(u8, @intFromFloat(JSC.JSValue.fromRef(value).asNumber())); if (tag_int < Tag.min_tag or tag_int > Tag.max_tag) { return TagOrJSNode{ .invalid = {} }; } - return TagOrJSNode{ .tag = @enumFromInt(JSNode.Tag, tag_int) }; + return TagOrJSNode{ .tag = @as(JSNode.Tag, @enumFromInt(tag_int)) }; }, js.JSType.kJSTypeObject => { if (JSCBase.GetJSPrivateData(JSNode, value)) |node| { @@ -8789,13 +8786,13 @@ pub const Macro = struct { pub fn fromJSValueRef(writer: *Writer, ctx: js.JSContextRef, value: js.JSValueRef) TagOrJSNode { switch (js.JSValueGetType(ctx, value)) { js.JSType.kJSTypeNumber => { - const tag_int = @intFromFloat(u8, JSC.JSValue.fromRef(value).asNumber()); + const tag_int = @as(u8, @intFromFloat(JSC.JSValue.fromRef(value).asNumber())); if (tag_int < Tag.min_tag or tag_int > Tag.max_tag) { throwTypeError(ctx, "Node type has invalid value", writer.exception); writer.errored = true; return TagOrJSNode{ .invalid = {} }; } - return TagOrJSNode{ .tag = @enumFromInt(JSNode.Tag, tag_int) }; + return TagOrJSNode{ .tag = @as(JSNode.Tag, @enumFromInt(tag_int)) }; }, js.JSType.kJSTypeObject => { if (JSCBase.GetJSPrivateData(JSNode, value)) |node| { @@ -8957,7 +8954,7 @@ pub const Macro = struct { import.import.items = writer.allocator.alloc( ClauseItem, - @intCast(u32, @intFromBool(has_default)) + array_iter.len, + @as(u32, @intCast(@intFromBool(has_default))) + array_iter.len, ) catch return false; while (array_iter.next()) |name| { @@ -8986,7 +8983,7 @@ pub const Macro = struct { } else { import.import.items = writer.allocator.alloc( ClauseItem, - @intCast(u32, @intFromBool(has_default)), + @as(u32, @intCast(@intFromBool(has_default))), ) catch return false; } @@ -9024,8 +9021,8 @@ pub const Macro = struct { while (i < count) { var nextArg = writer.eatArg() orelse return false; if (js.JSValueIsArray(writer.ctx, nextArg.asRef())) { - const extras = @truncate(u32, nextArg.getLength(writer.ctx.ptr())); - count += @max(@truncate(@TypeOf(count), extras), 1) - 1; + const extras = @as(u32, @truncate(nextArg.getLength(writer.ctx.ptr()))); + count += @max(@as(@TypeOf(count), @truncate(extras)), 1) - 1; items.ensureUnusedCapacity(extras) catch unreachable; items.expandToCapacity(); var new_writer = writer.*; @@ -9405,7 +9402,7 @@ pub const Macro = struct { .allocator = JSCBase.getAllocator(ctx), .exception = exception, .args_value = args_value, - .args_len = @truncate(u32, args_value.getLength(ctx.ptr())), + .args_len = @as(u32, @truncate(args_value.getLength(ctx.ptr()))), .args_i = 0, .errored = false, }; @@ -9701,7 +9698,7 @@ pub const Macro = struct { macro_callback, null, args_count, - @ptrCast([*]js.JSObjectRef, args_ptr), + @as([*]js.JSObjectRef, @ptrCast(args_ptr)), ); var runner = Run{ @@ -9945,7 +9942,7 @@ pub const Macro = struct { }, .Integer => { - return Expr.init(E.Number, E.Number{ .value = @floatFromInt(f64, value.toInt32()) }, this.caller.loc); + return Expr.init(E.Number, E.Number{ .value = @as(f64, @floatFromInt(value.toInt32())) }, this.caller.loc); }, .Double => { return Expr.init(E.Number, E.Number{ .value = value.asNumber() }, this.caller.loc); diff --git a/src/js_lexer.zig b/src/js_lexer.zig index 5d41aec4b..e8b852d0d 100644 --- a/src/js_lexer.zig +++ b/src/js_lexer.zig @@ -407,10 +407,10 @@ fn NewLexer_( }, } - iter.c = @intCast(i32, value); + iter.c = @as(i32, @intCast(value)); if (is_bad) { lexer.addRangeError( - logger.Range{ .loc = .{ .start = @intCast(i32, octal_start) }, .len = @intCast(i32, iter.i - octal_start) }, + logger.Range{ .loc = .{ .start = @as(i32, @intCast(octal_start)) }, .len = @as(i32, @intCast(iter.i - octal_start)) }, "Invalid legacy octal literal", .{}, false, @@ -522,7 +522,7 @@ fn NewLexer_( if (is_out_of_range) { try lexer.addRangeError( - .{ .loc = .{ .start = @intCast(i32, start + hex_start) }, .len = @intCast(i32, ((iter.i + start) - hex_start)) }, + .{ .loc = .{ .start = @as(i32, @intCast(start + hex_start)) }, .len = @as(i32, @intCast(((iter.i + start) - hex_start))) }, "Unicode escape sequence is out of range", .{}, true, @@ -562,7 +562,7 @@ fn NewLexer_( } } - iter.c = @truncate(CodePoint, value); + iter.c = @as(CodePoint, @truncate(value)); }, '\r' => { if (comptime is_json) { @@ -606,13 +606,13 @@ fn NewLexer_( switch (iter.c) { -1 => return try lexer.addDefaultError("Unexpected end of file"), 0...0xFFFF => { - buf.append(@intCast(u16, iter.c)) catch unreachable; + buf.append(@as(u16, @intCast(iter.c))) catch unreachable; }, else => { iter.c -= 0x10000; buf.ensureUnusedCapacity(2) catch unreachable; - buf.appendAssumeCapacity(@intCast(u16, 0xD800 + ((iter.c >> 10) & 0x3FF))); - buf.appendAssumeCapacity(@intCast(u16, 0xDC00 + (iter.c & 0x3FF))); + buf.appendAssumeCapacity(@as(u16, @intCast(0xD800 + ((iter.c >> 10) & 0x3FF)))); + buf.appendAssumeCapacity(@as(u16, @intCast(0xDC00 + (iter.c & 0x3FF)))); }, } } @@ -797,7 +797,7 @@ fn NewLexer_( const code_point = switch (slice.len) { 0 => -1, 1 => @as(CodePoint, slice[0]), - else => strings.decodeWTF8RuneTMultibyte(slice.ptr[0..4], @intCast(u3, slice.len), CodePoint, strings.unicode_replacement), + else => strings.decodeWTF8RuneTMultibyte(slice.ptr[0..4], @as(u3, @intCast(slice.len)), CodePoint, strings.unicode_replacement), }; it.end = it.current; @@ -958,7 +958,7 @@ fn NewLexer_( if (!isIdentifier(identifier)) { try lexer.addRangeError( - .{ .loc = logger.usize2Loc(lexer.start), .len = @intCast(i32, lexer.end - lexer.start) }, + .{ .loc = logger.usize2Loc(lexer.start), .len = @as(i32, @intCast(lexer.end - lexer.start)) }, "Invalid identifier: \"{s}\"", .{result.contents}, true, @@ -1864,8 +1864,8 @@ fn NewLexer_( const vec: strings.AsciiVector = rest.ptr[0..strings.ascii_vector_size].*; // lookahead for any # or @ characters - const hashtag = @bitCast(strings.AsciiVectorU1, vec == @splat(strings.ascii_vector_size, @as(u8, '#'))); - const at = @bitCast(strings.AsciiVectorU1, vec == @splat(strings.ascii_vector_size, @as(u8, '@'))); + const hashtag = @as(strings.AsciiVectorU1, @bitCast(vec == @as(strings.AsciiVector, @splat(@as(u8, '#'))))); + const at = @as(strings.AsciiVectorU1, @bitCast(vec == @as(strings.AsciiVector, @splat(@as(u8, '@'))))); if (@reduce(.Max, hashtag + at) == 1) { rest.len = @intFromPtr(end) - @intFromPtr(rest.ptr); @@ -2079,15 +2079,15 @@ fn NewLexer_( switch (lexer.code_point) { 'd', 'g', 'i', 'm', 's', 'u', 'y', 'v' => { if (!has_set_flags_start) { - lexer.regex_flags_start = @truncate(u16, lexer.end - lexer.start); + lexer.regex_flags_start = @as(u16, @truncate(lexer.end - lexer.start)); has_set_flags_start = true; } - const flag = max_flag - @intCast(u8, lexer.code_point); + const flag = max_flag - @as(u8, @intCast(lexer.code_point)); if (flags.isSet(flag)) { lexer.addError( lexer.current, "Duplicate flag \"{u}\" in regular expression", - .{@intCast(u21, lexer.code_point)}, + .{@as(u21, @intCast(lexer.code_point))}, false, ); } @@ -2099,7 +2099,7 @@ fn NewLexer_( lexer.addError( lexer.current, "Invalid flag \"{u}\" in regular expression", - .{@intCast(u21, lexer.code_point)}, + .{@as(u21, @intCast(lexer.code_point))}, false, ); @@ -2134,9 +2134,9 @@ fn NewLexer_( var list = std.ArrayList(u8).initCapacity(lexer.allocator, js.len) catch unreachable; var i: usize = 0; while (i < js.len) : (i += 1) { - var r1 = @intCast(i32, js[i]); + var r1 = @as(i32, @intCast(js[i])); if (r1 >= 0xD800 and r1 <= 0xDBFF and i + 1 < js.len) { - const r2 = @intCast(i32, js[i] + 1); + const r2 = @as(i32, @intCast(js[i] + 1)); if (r2 >= 0xDC00 and r2 <= 0xDFFF) { r1 = (r1 - 0xD800) << 10 | (r2 - 0xDC00) + 0x10000; i += 1; @@ -2317,7 +2317,7 @@ fn NewLexer_( '\\' => { backslash = logger.Range{ .loc = logger.Loc{ - .start = @intCast(i32, lexer.end), + .start = @as(i32, @intCast(lexer.end)), }, .len = 1 }; lexer.step(); @@ -2531,11 +2531,11 @@ fn NewLexer_( break :brk strings.unicode_replacement; }; - cursor.i += @intCast(u32, length) + 1; + cursor.i += @as(u32, @intCast(length)) + 1; cursor.width = 1; } else if (tables.jsxEntity.get(entity)) |ent| { cursor.c = ent; - cursor.i += @intCast(u32, length) + 1; + cursor.i += @as(u32, @intCast(length)) + 1; } } } @@ -2550,18 +2550,18 @@ fn NewLexer_( if (cursor.c == '&') lexer.maybeDecodeJSXEntity(text, &cursor); if (cursor.c <= 0xFFFF) { - try out.append(@intCast(u16, cursor.c)); + try out.append(@as(u16, @intCast(cursor.c))); } else { cursor.c -= 0x10000; try out.ensureUnusedCapacity(2); (out.items.ptr + out.items.len)[0..2].* = [_]u16{ - @truncate( + @as( u16, - @bitCast(u32, @as(i32, 0xD800) + ((cursor.c >> 10) & 0x3FF)), + @truncate(@as(u32, @bitCast(@as(i32, 0xD800) + ((cursor.c >> 10) & 0x3FF)))), ), - @truncate( + @as( u16, - @bitCast(u32, @as(i32, 0xDC00) + (cursor.c & 0x3FF)), + @truncate(@as(u32, @bitCast(@as(i32, 0xDC00) + (cursor.c & 0x3FF)))), ), }; out.items = out.items.ptr[0 .. out.items.len + 2]; @@ -2950,9 +2950,9 @@ fn NewLexer_( // Parse a 32-bit integer (very fast path); var number: u32 = 0; for (text) |c| { - number = number * 10 + @intCast(u32, c - '0'); + number = number * 10 + @as(u32, @intCast(c - '0')); } - lexer.number = @floatFromInt(f64, number); + lexer.number = @as(f64, @floatFromInt(number)); } else { // Parse a double-precision floating-point number if (bun.parseDouble(text)) |num| { @@ -3089,7 +3089,7 @@ pub fn isIdentifierUTF16(text: []const u16) bool { // this fn is a stub! pub fn rangeOfIdentifier(source: *const Source, loc: logger.Loc) logger.Range { const contents = source.contents; - if (loc.start == -1 or @intCast(usize, loc.start) >= contents.len) return logger.Range.None; + if (loc.start == -1 or @as(usize, @intCast(loc.start)) >= contents.len) return logger.Range.None; const iter = strings.CodepointIterator.init(contents[loc.toUsize()..]); var cursor = strings.CodepointIterator.Cursor{}; @@ -3099,7 +3099,7 @@ pub fn rangeOfIdentifier(source: *const Source, loc: logger.Loc) logger.Range { return r; } const text = iter.bytes; - const end = @intCast(u32, text.len); + const end = @as(u32, @intCast(text.len)); if (!iter.next(&cursor)) return r; @@ -3112,7 +3112,7 @@ pub fn rangeOfIdentifier(source: *const Source, loc: logger.Loc) logger.Range { } if (isIdentifierStart(cursor.c) or cursor.c == '\\') { - defer r.len = @intCast(i32, cursor.i); + defer r.len = @as(i32, @intCast(cursor.i)); while (iter.next(&cursor)) { if (cursor.c == '\\') { @@ -3155,7 +3155,7 @@ pub fn rangeOfIdentifier(source: *const Source, loc: logger.Loc) logger.Range { } inline fn float64(num: anytype) f64 { - return @floatFromInt(f64, num); + return @as(f64, @floatFromInt(num)); } pub fn isLatin1Identifier(comptime Buffer: type, name: Buffer) bool { @@ -3215,7 +3215,7 @@ fn latin1IdentifierContinueLength(name: []const u8) usize { }; } - if (std.simd.firstIndexOfValue(@bitCast(Vec, other), 1)) |first| { + if (std.simd.firstIndexOfValue(@as(Vec, @bitCast(other)), 1)) |first| { if (comptime Environment.allow_assert) { for (vec[0..first]) |c| { std.debug.assert(isIdentifierContinue(c)); @@ -3293,9 +3293,9 @@ pub const PragmaArg = enum { return js_ast.Span{ .range = logger.Range{ - .len = @intCast(i32, i), + .len = @as(i32, @intCast(i)), .loc = logger.Loc{ - .start = @intCast(i32, start + @intCast(u32, offset_) + @intCast(u32, pragma.len)), + .start = @as(i32, @intCast(start + @as(u32, @intCast(offset_)) + @as(u32, @intCast(pragma.len)))), }, }, .text = text[0..i], @@ -3305,9 +3305,9 @@ pub const PragmaArg = enum { fn skipToInterestingCharacterInMultilineComment(text_: []const u8) ?u32 { var text = text_; - const star = @splat(strings.ascii_vector_size, @as(u8, '*')); - const carriage = @splat(strings.ascii_vector_size, @as(u8, '\r')); - const newline = @splat(strings.ascii_vector_size, @as(u8, '\n')); + const star: @Vector(strings.ascii_vector_size, u8) = @splat(@as(u8, '*')); + const carriage: @Vector(strings.ascii_vector_size, u8) = @splat(@as(u8, '\r')); + const newline: @Vector(strings.ascii_vector_size, u8) = @splat(@as(u8, '\n')); const V1x16 = strings.AsciiVectorU1; const text_end_len = text.len & ~(@as(usize, strings.ascii_vector_size) - 1); @@ -3320,41 +3320,41 @@ fn skipToInterestingCharacterInMultilineComment(text_: []const u8) ?u32 { const vec: strings.AsciiVector = text.ptr[0..strings.ascii_vector_size].*; const any_significant = - @bitCast(V1x16, vec > strings.max_16_ascii) | - @bitCast(V1x16, star == vec) | - @bitCast(V1x16, carriage == vec) | - @bitCast(V1x16, newline == vec); + @as(V1x16, @bitCast(vec > strings.max_16_ascii)) | + @as(V1x16, @bitCast(star == vec)) | + @as(V1x16, @bitCast(carriage == vec)) | + @as(V1x16, @bitCast(newline == vec)); if (@reduce(.Max, any_significant) > 0) { - const bitmask = @bitCast(u16, any_significant); + const bitmask = @as(u16, @bitCast(any_significant)); const first = @ctz(bitmask); std.debug.assert(first < strings.ascii_vector_size); std.debug.assert(text.ptr[first] == '*' or text.ptr[first] == '\r' or text.ptr[first] == '\n' or text.ptr[first] > 127); - return @truncate(u32, first + (@intFromPtr(text.ptr) - @intFromPtr(text_.ptr))); + return @as(u32, @truncate(first + (@intFromPtr(text.ptr) - @intFromPtr(text_.ptr)))); } text.ptr += strings.ascii_vector_size; } - return @truncate(u32, @intFromPtr(text.ptr) - @intFromPtr(text_.ptr)); + return @as(u32, @truncate(@intFromPtr(text.ptr) - @intFromPtr(text_.ptr))); } fn indexOfInterestingCharacterInStringLiteral(text_: []const u8, quote: u8) ?usize { var text = text_; - const quote_ = @splat(strings.ascii_vector_size, @as(u8, quote)); - const backslash = @splat(strings.ascii_vector_size, @as(u8, '\\')); + const quote_: @Vector(strings.ascii_vector_size, u8) = @splat(@as(u8, quote)); + const backslash: @Vector(strings.ascii_vector_size, u8) = @splat(@as(u8, '\\')); const V1x16 = strings.AsciiVectorU1; while (text.len >= strings.ascii_vector_size) { const vec: strings.AsciiVector = text[0..strings.ascii_vector_size].*; const any_significant = - @bitCast(V1x16, vec > strings.max_16_ascii) | - @bitCast(V1x16, vec < strings.min_16_ascii) | - @bitCast(V1x16, quote_ == vec) | - @bitCast(V1x16, backslash == vec); + @as(V1x16, @bitCast(vec > strings.max_16_ascii)) | + @as(V1x16, @bitCast(vec < strings.min_16_ascii)) | + @as(V1x16, @bitCast(quote_ == vec)) | + @as(V1x16, @bitCast(backslash == vec)); if (@reduce(.Max, any_significant) > 0) { - const bitmask = @bitCast(u16, any_significant); + const bitmask = @as(u16, @bitCast(any_significant)); const first = @ctz(bitmask); std.debug.assert(first < strings.ascii_vector_size); return first + (@intFromPtr(text.ptr) - @intFromPtr(text_.ptr)); diff --git a/src/js_lexer/identifier.zig b/src/js_lexer/identifier.zig index 8c1a59c2b..77308fcd2 100644 --- a/src/js_lexer/identifier.zig +++ b/src/js_lexer/identifier.zig @@ -19,9 +19,9 @@ pub const Bitset = struct { pub fn isIdentifierStart(codepoint: i32) bool { return codepoint >= (comptime id_start_range[0]) and codepoint <= (comptime id_start_range[1]) and - id_start.isSet((comptime @intCast(usize, id_start_range[1])) - @intCast( + id_start.isSet((comptime @as(usize, @intCast(id_start_range[1]))) - @as( usize, - codepoint, + @intCast(codepoint), )); } @@ -29,9 +29,9 @@ pub const Bitset = struct { return codepoint >= (comptime id_end_range[0]) and codepoint <= (comptime id_end_range[1]) and id_continue.isSet( - (comptime @intCast(usize, id_end_range[1])) - @intCast( + (comptime @as(usize, @intCast(id_end_range[1]))) - @as( usize, - codepoint, + @intCast(codepoint), ), ); } @@ -46,7 +46,7 @@ pub const JumpTable = struct { @setCold(true); return switch (codepoint) { // explicitly tell LLVM's optimizer about values we know will not be in the range of this switch statement - 0xaa...0xffd7 => isIdentifierPartSlow16(@intCast(u16, codepoint)), + 0xaa...0xffd7 => isIdentifierPartSlow16(@as(u16, @intCast(codepoint))), (0xffd7 + 1)...0xe01ef => isIdentifierPartSlow32(codepoint), else => false, }; @@ -87,7 +87,7 @@ pub const JumpTable = struct { // explicitly tell LLVM's optimizer about values we know will not be in the range of this switch statement (max_codepoint + 1)...maxInt(i32), minInt(i32)...127 => unreachable, - 128...0xfdc7 => isIdentifierStartSlow16(@intCast(u16, codepoint)), + 128...0xfdc7 => isIdentifierStartSlow16(@as(u16, @intCast(codepoint))), 0xfdf0...0x3134a => isIdentifierStartSlow32(codepoint), else => false, }; diff --git a/src/js_lexer/identifier_cache.zig b/src/js_lexer/identifier_cache.zig index 402e999f1..21511846f 100644 --- a/src/js_lexer/identifier_cache.zig +++ b/src/js_lexer/identifier_cache.zig @@ -6,13 +6,13 @@ pub const CachedBitset = extern struct { len: u32, pub fn fromFile(comptime filename: anytype) CachedBitset { - return comptime @bitCast(CachedBitset, bun.asByteSlice(@embedFile(filename)).ptr[0..@sizeOf(CachedBitset)].*); + return comptime @as(CachedBitset, @bitCast(bun.asByteSlice(@embedFile(filename)).ptr[0..@sizeOf(CachedBitset)].*)); } }; pub fn setMasks(masks: [*:0]const u8, comptime MaskType: type, masky: MaskType) void { const FieldInfo: std.builtin.Type.StructField = std.meta.fieldInfo(MaskType, "masks"); - masky.masks = @bitCast(masks, FieldInfo.type); + masky.masks = @as(masks, @bitCast(FieldInfo.type)); } pub const id_start_meta = CachedBitset.fromFile("id_start_bitset.meta.blob"); @@ -23,8 +23,8 @@ pub const id_continue_masks = @embedFile("id_continue_bitset.blob"); pub const IDStartType = bun.bit_set.ArrayBitSet(usize, id_start_meta.len); pub const IDContinueType = bun.bit_set.ArrayBitSet(usize, id_continue_meta.len); pub const id_start = IDStartType{ - .masks = @bitCast(std.meta.fieldInfo(IDStartType, .masks).type, @ptrCast(*const [id_start_masks.len]u8, id_start_masks).*), + .masks = @as(std.meta.fieldInfo(IDStartType, .masks).type, @bitCast(@as(*const [id_start_masks.len]u8, @ptrCast(id_start_masks)).*)), }; pub const id_continue = IDContinueType{ - .masks = @bitCast(std.meta.fieldInfo(IDContinueType, .masks).type, @ptrCast(*const [id_continue_masks.len]u8, id_continue_masks).*), + .masks = @as(std.meta.fieldInfo(IDContinueType, .masks).type, @bitCast(@as(*const [id_continue_masks.len]u8, @ptrCast(id_continue_masks)).*)), }; diff --git a/src/js_lexer/identifier_data.zig b/src/js_lexer/identifier_data.zig index c9c83d113..3ff27f9c6 100644 --- a/src/js_lexer/identifier_data.zig +++ b/src/js_lexer/identifier_data.zig @@ -165,11 +165,11 @@ test "Check #3" { var i: i32 = id_end_range[0]; while (i < id_end_range[1]) : (i += 1) { - try std.testing.expectEqual(id_continue.isSet(@intCast(usize, id_end_range[1] - i)), Cache.id_continue.isSet(@intCast(usize, id_end_range[1] - i))); + try std.testing.expectEqual(id_continue.isSet(@as(usize, @intCast(id_end_range[1] - i))), Cache.id_continue.isSet(@as(usize, @intCast(id_end_range[1] - i)))); } i = id_start_range[0]; while (i < id_start_range[1]) : (i += 1) { - try std.testing.expectEqual(id_start.isSet(@intCast(usize, id_start_range[1] - i)), Cache.id_start.isSet(@intCast(usize, id_start_range[1] - i))); + try std.testing.expectEqual(id_start.isSet(@as(usize, @intCast(id_start_range[1] - i))), Cache.id_start.isSet(@as(usize, @intCast(id_start_range[1] - i)))); } } diff --git a/src/js_parser.zig b/src/js_parser.zig index 3c706b1bb..d20c1a868 100644 --- a/src/js_parser.zig +++ b/src/js_parser.zig @@ -383,7 +383,7 @@ const JSXTag = struct { try p.lexer.expectInsideJSXElement(.t_identifier); if (strings.indexOfChar(member, '-')) |index| { - try p.log.addError(p.source, logger.Loc{ .start = member_range.loc.start + @intCast(i32, index) }, "Unexpected \"-\""); + try p.log.addError(p.source, logger.Loc{ .start = member_range.loc.start + @as(i32, @intCast(index)) }, "Unexpected \"-\""); return error.SyntaxError; } @@ -3123,7 +3123,7 @@ pub const Parser = struct { } if (needs_decl_count > 0) { - p.symbols.items[p.exports_ref.innerIndex()].use_count_estimate += @truncate(u32, export_refs.len); + p.symbols.items[p.exports_ref.innerIndex()].use_count_estimate += @as(u32, @truncate(export_refs.len)); p.deoptimizeCommonJSNamedExports(); } } @@ -4192,7 +4192,7 @@ pub const Parser = struct { var iter = p.runtime_imports.iter(); var i: usize = 0; while (iter.next()) |entry| { - runtime_imports[i] = @intCast(u8, entry.key); + runtime_imports[i] = @as(u8, @intCast(entry.key)); i += 1; } @@ -5184,7 +5184,7 @@ fn NewParser_( return p.newExpr( E.RequireString{ .import_record_index = import_record_index, - .unwrapped_id = @intCast(u32, p.imports_to_convert_from_require.items.len - 1), + .unwrapped_id = @as(u32, @intCast(p.imports_to_convert_from_require.items.len - 1)), }, arg.loc, ); @@ -5202,9 +5202,9 @@ fn NewParser_( p.import_records.items[import_record_index].contains_import_star = true; const symbol_name = p.import_records.items[import_record_index].path.name.nonUniqueNameString(p.allocator) catch unreachable; - const hash_value = @truncate( + const hash_value = @as( u16, - bun.hash(p.import_records.items[import_record_index].path.text), + @truncate(bun.hash(p.import_records.items[import_record_index].path.text)), ); const cjs_import_name = std.fmt.allocPrint( @@ -5524,7 +5524,7 @@ fn NewParser_( const symbol: *const Symbol = &symbols[entry.value_ptr.ref.innerIndex()]; if (symbol.slotNamespace() != .must_not_be_renamed) { - char_freq.scan(symbol.original_name, -@intCast(i32, symbol.use_count_estimate)); + char_freq.scan(symbol.original_name, -@as(i32, @intCast(symbol.use_count_estimate))); } } @@ -5532,7 +5532,7 @@ fn NewParser_( const symbol = &symbols[ref.innerIndex()]; if (symbol.slotNamespace() != .must_not_be_renamed) { - char_freq.scan(symbol.original_name, -@intCast(i32, symbol.use_count_estimate) - 1); + char_freq.scan(symbol.original_name, -@as(i32, @intCast(symbol.use_count_estimate)) - 1); } } @@ -8203,8 +8203,8 @@ fn NewParser_( } var item_refs = ImportItemForNamespaceMap.init(p.allocator); - const count_excluding_namespace = @intCast(u16, stmt.items.len) + - @intCast(u16, @intFromBool(stmt.default_name != null)); + const count_excluding_namespace = @as(u16, @intCast(stmt.items.len)) + + @as(u16, @intCast(@intFromBool(stmt.default_name != null))); try item_refs.ensureUnusedCapacity(count_excluding_namespace); // Even though we allocate ahead of time here @@ -8468,7 +8468,7 @@ fn NewParser_( } pub fn newSymbol(p: *P, kind: Symbol.Kind, identifier: string) !Ref { - const inner_index = @truncate(Ref.Int, p.symbols.items.len); + const inner_index = @as(Ref.Int, @truncate(p.symbols.items.len)); try p.symbols.append(Symbol{ .kind = kind, .original_name = identifier, @@ -11792,7 +11792,7 @@ fn NewParser_( // to the expression "a().b()". if (had_pure_comment_before and level.lt(.call)) { - expr = try p.parseSuffix(expr, @enumFromInt(Level, @intFromEnum(Level.call) - 1), errors, flags); + expr = try p.parseSuffix(expr, @as(Level, @enumFromInt(@intFromEnum(Level.call) - 1)), errors, flags); switch (expr.data) { .e_call => |ex| { ex.can_be_unwrapped_if_unused = true; @@ -11823,7 +11823,7 @@ fn NewParser_( .path = path, }; p.import_records.append(record) catch unreachable; - return @intCast(u32, index); + return @as(u32, @intCast(index)); } pub fn popScope(p: *P) void { @@ -12983,7 +12983,7 @@ fn NewParser_( } try p.lexer.next(); - left = p.newExpr(E.Binary{ .op = .bin_add_assign, .left = left, .right = try p.parseExpr(@enumFromInt(Op.Level, @intFromEnum(Op.Level.assign) - 1)) }, left.loc); + left = p.newExpr(E.Binary{ .op = .bin_add_assign, .left = left, .right = try p.parseExpr(@as(Op.Level, @enumFromInt(@intFromEnum(Op.Level.assign) - 1))) }, left.loc); }, .t_minus => { if (level.gte(.add)) { @@ -13422,7 +13422,7 @@ fn NewParser_( p.is_import_item.ensureUnusedCapacity( p.allocator, - @intCast(u32, p.is_import_item.count() + import.items.len), + @as(u32, @intCast(p.is_import_item.count() + import.items.len)), ) catch unreachable; for (import.items) |*clause| { @@ -13715,7 +13715,7 @@ fn NewParser_( if (value.data.e_index.index.data == .e_private_identifier) { const private = value.data.e_index.index.data.e_private_identifier; const name = p.loadNameFromRef(private.ref); - const range = logger.Range{ .loc = value.loc, .len = @intCast(i32, name.len) }; + const range = logger.Range{ .loc = value.loc, .len = @as(i32, @intCast(name.len)) }; p.log.addRangeErrorFmt(p.source, range, p.allocator, "Deleting the private name \"{s}\" is forbidden", .{name}) catch unreachable; } } @@ -15157,7 +15157,7 @@ fn NewParser_( const children_elements = e_.children.slice()[0..children_count]; for (children_elements) |child| { args[i] = p.visitExpr(child); - i += @intCast(usize, @intFromBool(args[i].data != .e_missing)); + i += @as(usize, @intCast(@intFromBool(args[i].data != .e_missing))); } const target = p.jsxStringsToMemberExpression(expr.loc, p.options.jsx.factory) catch unreachable; @@ -15188,7 +15188,7 @@ fn NewParser_( for (children) |child| { e_.children.ptr[last_child] = p.visitExpr(child); // if tree-shaking removes the element, we must also remove it here. - last_child += @intCast(u32, @intFromBool(e_.children.ptr[last_child].data != .e_missing)); + last_child += @as(u32, @intCast(@intFromBool(e_.children.ptr[last_child].data != .e_missing))); } e_.children.len = last_child; } @@ -15510,7 +15510,7 @@ fn NewParser_( // Unlike regular identifiers, there are no unbound private identifiers const kind: Symbol.Kind = p.symbols.items[result.ref.innerIndex()].kind; if (!Symbol.isKindPrivate(kind)) { - const r = logger.Range{ .loc = e_.left.loc, .len = @intCast(i32, name.len) }; + const r = logger.Range{ .loc = e_.left.loc, .len = @as(i32, @intCast(name.len)) }; p.log.addRangeErrorFmt(p.source, r, p.allocator, "Private name \"{s}\" must be declared in an enclosing class", .{name}) catch unreachable; } @@ -15972,17 +15972,17 @@ fn NewParser_( const kind: Symbol.Kind = p.symbols.items[result.ref.innerIndex()].kind; var r: logger.Range = undefined; if (!Symbol.isKindPrivate(kind)) { - r = logger.Range{ .loc = e_.index.loc, .len = @intCast(i32, name.len) }; + r = logger.Range{ .loc = e_.index.loc, .len = @as(i32, @intCast(name.len)) }; p.log.addRangeErrorFmt(p.source, r, p.allocator, "Private name \"{s}\" must be declared in an enclosing class", .{name}) catch unreachable; } else { if (in.assign_target != .none and (kind == .private_method or kind == .private_static_method)) { - r = logger.Range{ .loc = e_.index.loc, .len = @intCast(i32, name.len) }; + r = logger.Range{ .loc = e_.index.loc, .len = @as(i32, @intCast(name.len)) }; p.log.addRangeWarningFmt(p.source, r, p.allocator, "Writing to read-only method \"{s}\" will throw", .{name}) catch unreachable; } else if (in.assign_target != .none and (kind == .private_get or kind == .private_static_get)) { - r = logger.Range{ .loc = e_.index.loc, .len = @intCast(i32, name.len) }; + r = logger.Range{ .loc = e_.index.loc, .len = @as(i32, @intCast(name.len)) }; p.log.addRangeWarningFmt(p.source, r, p.allocator, "Writing to getter-only property \"{s}\" will throw", .{name}) catch unreachable; } else if (in.assign_target != .replace and (kind == .private_set or kind == .private_static_set)) { - r = logger.Range{ .loc = e_.index.loc, .len = @intCast(i32, name.len) }; + r = logger.Range{ .loc = e_.index.loc, .len = @as(i32, @intCast(name.len)) }; p.log.addRangeWarningFmt(p.source, r, p.allocator, "Reading from setter-only property \"{s}\" will throw", .{name}) catch unreachable; } } @@ -17735,7 +17735,7 @@ fn NewParser_( .needs_decl = true, }; if (p.commonjs_named_exports_needs_conversion == std.math.maxInt(u32)) - p.commonjs_named_exports_needs_conversion = @truncate(u32, p.commonjs_named_exports.count() - 1); + p.commonjs_named_exports_needs_conversion = @as(u32, @truncate(p.commonjs_named_exports.count() - 1)); } const ref = named_export_entry.value_ptr.*.loc_ref.ref.?; @@ -17768,7 +17768,7 @@ fn NewParser_( if (p.options.features.minify_syntax) { // minify "long-string".length to 11 if (strings.eqlComptime(name, "length")) { - return p.newExpr(E.Number{ .value = @floatFromInt(f64, str.javascriptLength()) }, loc); + return p.newExpr(E.Number{ .value = @as(f64, @floatFromInt(str.javascriptLength())) }, loc); } } }, @@ -18248,7 +18248,7 @@ fn NewParser_( return; } - data.decls.len = @truncate(u32, decls_len); + data.decls.len = @as(u32, @truncate(decls_len)); // Handle being exported inside a namespace if (data.is_export and p.enclosing_namespace_arg_ref != null) { @@ -19196,7 +19196,7 @@ fn NewParser_( { var array = expr.data.e_array; - array.items.len = @min(array.items.len, @truncate(u32, bound_array.items.len)); + array.items.len = @min(array.items.len, @as(u32, @truncate(bound_array.items.len))); for (bound_array.items[0..array.items.len], array.items.slice()) |item, *child_expr| { if (item.binding.data == .b_missing) { child_expr.* = p.newExpr(E.Missing{}, expr.loc); @@ -19489,7 +19489,7 @@ fn NewParser_( for (arg.ts_decorators.ptr[0..arg.ts_decorators.len]) |arg_decorator| { var decorators = if (is_constructor) class.ts_decorators.listManaged(p.allocator) else prop.ts_decorators.listManaged(p.allocator); const args = p.allocator.alloc(Expr, 2) catch unreachable; - args[0] = p.newExpr(E.Number{ .value = @floatFromInt(f64, i) }, arg_decorator.loc); + args[0] = p.newExpr(E.Number{ .value = @as(f64, @floatFromInt(i)) }, arg_decorator.loc); args[1] = arg_decorator; decorators.append(p.callRuntime(arg_decorator.loc, "__decorateParam", args)) catch unreachable; if (is_constructor) { @@ -20358,7 +20358,7 @@ fn NewParser_( var gpe = fn_stmts.getOrPut(name_ref) catch unreachable; var index = gpe.value_ptr.*; if (!gpe.found_existing) { - index = @intCast(u32, let_decls.items.len); + index = @as(u32, @intCast(let_decls.items.len)); gpe.value_ptr.* = index; let_decls.append(.{ .binding = p.b(B.Identifier{ @@ -20505,7 +20505,7 @@ fn NewParser_( decls[end] = decl; end += 1; } - local.decls.len = @truncate(u32, end); + local.decls.len = @as(u32, @truncate(end)); if (end == 0) { stmt.* = stmt.*.toEmpty(); } @@ -21440,7 +21440,7 @@ fn NewParser_( // We still call exportAll just with an empty object. const has_any_exports = named_exports_count > 0; - const toplevel_stmts_count = 3 + (@intCast(usize, @intFromBool(has_any_exports)) * 2); + const toplevel_stmts_count = 3 + (@as(usize, @intCast(@intFromBool(has_any_exports))) * 2); var _stmts = allocator.alloc( Stmt, end_iife_stmts_count + toplevel_stmts_count + (named_exports_count * 2) + imports_count + exports_from_count, @@ -21499,7 +21499,7 @@ fn NewParser_( var new_call_args = call_args[0..new_call_args_count]; var hmr_module_ident = p.newExpr(E.Identifier{ .ref = p.hmr_module.ref }, logger.Loc.Empty); - new_call_args[0] = p.newExpr(E.Number{ .value = @floatFromInt(f64, p.options.filepath_hash_for_hmr) }, logger.Loc.Empty); + new_call_args[0] = p.newExpr(E.Number{ .value = @as(f64, @floatFromInt(p.options.filepath_hash_for_hmr)) }, logger.Loc.Empty); // This helps us provide better error messages new_call_args[1] = p.newExpr(E.String{ .data = p.source.path.pretty }, logger.Loc.Empty); if (p.options.features.react_fast_refresh) { @@ -21816,7 +21816,7 @@ fn NewParser_( entry.value_ptr.* = .{}; } - entry.value_ptr.push(ctx.allocator, @truncate(u32, ctx.part_index)) catch unreachable; + entry.value_ptr.push(ctx.allocator, @as(u32, @truncate(ctx.part_index))) catch unreachable; } }; @@ -21827,7 +21827,7 @@ fn NewParser_( .allocator = p.allocator, .top_level_symbols_to_parts = top_level, .symbols = p.symbols.items, - .part_index = @truncate(u32, part_index), + .part_index = @as(u32, @truncate(part_index)), }; DeclaredSymbol.forEachTopLevelSymbol(decls, ctx, Ctx.next); diff --git a/src/js_printer.zig b/src/js_printer.zig index a47cc1a23..08a1cb5c1 100644 --- a/src/js_printer.zig +++ b/src/js_printer.zig @@ -69,7 +69,7 @@ fn formatUnsignedIntegerBetween(comptime len: u16, buf: *[len]u8, val: u64) void inline while (i > 0) { comptime i -= 1; - buf[comptime i] = @intCast(u8, (remainder % 10)) + '0'; + buf[comptime i] = @as(u8, @intCast((remainder % 10))) + '0'; remainder /= 10; } } @@ -188,7 +188,7 @@ pub fn estimateLengthForJSON(input: []const u8, comptime ascii_only: bool) usize } remaining = remaining[char_len..]; } else { - return @truncate(u32, remaining.len) + 2; + return @as(u32, @truncate(remaining.len)) + 2; } return len; @@ -260,7 +260,7 @@ pub fn quoteForJSON(text: []const u8, output_: MutableString, comptime ascii_onl i += @as(usize, width); if (c < 0xFFFF) { - const k = @intCast(usize, c); + const k = @as(usize, @intCast(c)); bytes.ensureUnusedCapacity(6) catch unreachable; const old = bytes.list.items.len; bytes.list.items.len += 6; @@ -279,8 +279,8 @@ pub fn quoteForJSON(text: []const u8, output_: MutableString, comptime ascii_onl bytes.list.items.len += 12; const k = c - 0x10000; - const lo = @intCast(usize, first_high_surrogate + ((k >> 10) & 0x3FF)); - const hi = @intCast(usize, first_low_surrogate + (k & 0x3FF)); + const lo = @as(usize, @intCast(first_high_surrogate + ((k >> 10) & 0x3FF))); + const hi = @as(usize, @intCast(first_low_surrogate + (k & 0x3FF))); bytes.list.items[old .. old + 12][0..12].* = [_]u8{ '\\', @@ -407,7 +407,7 @@ pub fn writeJSONString(input: []const u8, comptime Writer: type, writer: Writer, text = text[@as(usize, width)..]; if (c < 0xFFFF) { - const k = @intCast(usize, c); + const k = @as(usize, @intCast(c)); try writer.writeAll(&[_]u8{ '\\', @@ -419,8 +419,8 @@ pub fn writeJSONString(input: []const u8, comptime Writer: type, writer: Writer, }); } else { const k = c - 0x10000; - const lo = @intCast(usize, first_high_surrogate + ((k >> 10) & 0x3FF)); - const hi = @intCast(usize, first_low_surrogate + (k & 0x3FF)); + const lo = @as(usize, @intCast(first_high_surrogate + ((k >> 10) & 0x3FF))); + const hi = @as(usize, @intCast(first_low_surrogate + (k & 0x3FF))); try writer.writeAll(&[_]u8{ '\\', @@ -467,7 +467,7 @@ pub const SourceMapHandler = struct { pub fn For(comptime Type: type, comptime handler: (fn (t: *Type, chunk: SourceMap.Chunk, source: logger.Source) anyerror!void)) type { return struct { pub fn onChunk(self: *anyopaque, chunk: SourceMap.Chunk, source: logger.Source) anyerror!void { - try handler(@ptrCast(*Type, @alignCast(@alignOf(*Type), self)), chunk, source); + try handler(@as(*Type, @ptrCast(@alignCast(self))), chunk, source); } pub fn init(self: *Type) SourceMapHandler { @@ -571,7 +571,7 @@ pub const RequireOrImportMeta = struct { ) Callback { return Callback{ .ctx = bun.cast(*anyopaque, ctx), - .callback = @ptrCast(*const Fn, &callback), + .callback = @as(*const Fn, @ptrCast(&callback)), }; } }; @@ -1340,13 +1340,13 @@ fn NewPrinter( // In JavaScript, numbers are represented as 64 bit floats // However, they could also be signed or unsigned int 32 (when doing bit shifts) // In this case, it's always going to unsigned since that conversion has already happened. - const val = @intFromFloat(u64, float); + const val = @as(u64, @intFromFloat(float)); switch (val) { 0 => { p.print("0"); }, 1...9 => { - var bytes = [1]u8{'0' + @intCast(u8, val)}; + var bytes = [1]u8{'0' + @as(u8, @intCast(val))}; p.print(&bytes); }, 10 => { @@ -1552,7 +1552,7 @@ fn NewPrinter( else => { switch (c) { first_ascii...last_ascii => { - e.print(@intCast(u8, c)); + e.print(@as(u8, @intCast(c))); // Fast path for printing long UTF-16 template literals // this only applies to template literal strings @@ -1578,7 +1578,7 @@ fn NewPrinter( e.writer.advance(len); continue :outer; } else { - const count = @truncate(u32, remain.len); + const count = @as(u32, @truncate(remain.len)); var ptr = e.writer.reserve(count) catch unreachable; var to_copy = ptr[0..count]; strings.copyU16IntoU8(to_copy, []const u16, remain); @@ -4504,7 +4504,7 @@ fn NewPrinter( p.print(","); p.printSpace(); } - p.printLoadFromBundleWithoutCall(@truncate(u32, i)); + p.printLoadFromBundleWithoutCall(@as(u32, @truncate(i))); needs_comma = true; } @@ -5291,7 +5291,7 @@ pub fn NewWriter( pub fn advance(writer: *Self, count: u32) void { advanceBy(&writer.ctx, count); - writer.written += @intCast(i32, count); + writer.written += @as(i32, @intCast(count)); } pub const Error = error{FormatError}; @@ -5299,7 +5299,7 @@ pub fn NewWriter( pub fn writeAll(writer: *Self, bytes: anytype) Error!usize { const written = @max(writer.written, 0); writer.print(@TypeOf(bytes), bytes); - return @intCast(usize, writer.written) - @intCast(usize, written); + return @as(usize, @intCast(writer.written)) - @as(usize, @intCast(written)); } pub inline fn print(writer: *Self, comptime ValueType: type, str: ValueType) void { @@ -5311,12 +5311,12 @@ pub fn NewWriter( switch (ValueType) { comptime_int, u16, u8 => { - const written = writeByte(&writer.ctx, @intCast(u8, str)) catch |err| brk: { + const written = writeByte(&writer.ctx, @as(u8, @intCast(str))) catch |err| brk: { writer.orig_err = err; break :brk 0; }; - writer.written += @intCast(i32, written); + writer.written += @as(i32, @intCast(written)); writer.err = if (written == 0) error.WriteFailed else writer.err; }, else => { @@ -5325,7 +5325,7 @@ pub fn NewWriter( break :brk 0; }; - writer.written += @intCast(i32, written); + writer.written += @as(i32, @intCast(written)); if (written < str.len) { writer.err = if (written == 0) error.WriteFailed else error.PartialWrite; } @@ -5419,7 +5419,7 @@ const FileWriterInternal = struct { pub fn reserveNext(_: *FileWriterInternal, count: u32) anyerror![*]u8 { try buffer.growIfNeeded(count); - return @ptrCast([*]u8, &buffer.list.items.ptr[buffer.list.items.len]); + return @as([*]u8, @ptrCast(&buffer.list.items.ptr[buffer.list.items.len])); } pub fn advanceBy(this: *FileWriterInternal, count: u32) void { if (comptime Environment.isDebug) std.debug.assert(buffer.list.items.len + count <= buffer.list.capacity); @@ -5534,7 +5534,7 @@ pub const BufferWriter = struct { pub fn reserveNext(ctx: *BufferWriter, count: u32) anyerror![*]u8 { try ctx.buffer.growIfNeeded(count); - return @ptrCast([*]u8, &ctx.buffer.list.items.ptr[ctx.buffer.list.items.len]); + return @as([*]u8, @ptrCast(&ctx.buffer.list.items.ptr[ctx.buffer.list.items.len])); } pub fn advanceBy(ctx: *BufferWriter, count: u32) void { if (comptime Environment.isDebug) std.debug.assert(ctx.buffer.list.items.len + count <= ctx.buffer.list.capacity); @@ -5644,9 +5644,9 @@ pub fn getSourceMapBuilder( if (generate_source_map == .lazy) break :brk SourceMap.LineOffsetTable.generate( opts.allocator, source.contents, - @intCast( + @as( i32, - tree.approximate_newline_count, + @intCast(tree.approximate_newline_count), ), ); @@ -5788,7 +5788,7 @@ pub fn printAst( try printer.writer.done(); - return @intCast(usize, @max(printer.writer.written, 0)); + return @as(usize, @intCast(@max(printer.writer.written, 0))); } pub fn printJSON( @@ -5824,7 +5824,7 @@ pub fn printJSON( } try printer.writer.done(); - return @intCast(usize, @max(printer.writer.written, 0)); + return @as(usize, @intCast(@max(printer.writer.written, 0))); } pub fn print( @@ -6006,7 +6006,7 @@ pub fn printCommonJS( try printer.writer.done(); - return @intCast(usize, @max(printer.writer.written, 0)); + return @as(usize, @intCast(@max(printer.writer.written, 0))); } // pub fn printChunk( @@ -6082,26 +6082,26 @@ pub fn printCommonJSThreaded( { defer lock.unlock(); lock.lock(); - result.off = @truncate(u32, try getPos(getter)); + result.off = @as(u32, @truncate(try getPos(getter))); if (comptime Environment.isLinux) { if (printer.writer.written > C.preallocate_length) { // on mac, it's relative to current position in file handle // on linux, it's absolute try C.preallocate_file( getter.handle, - @intCast(std.os.off_t, if (comptime Environment.isMac) 0 else result.off), - @intCast(std.os.off_t, printer.writer.written), + @as(std.os.off_t, @intCast(if (comptime Environment.isMac) 0 else result.off)), + @as(std.os.off_t, @intCast(printer.writer.written)), ); } } try printer.writer.done(); @fence(.SeqCst); - result.end_off = @truncate(u32, try getPos(getter)); + result.end_off = @as(u32, @truncate(try getPos(getter))); @atomicStore(u32, end_off_ptr, result.end_off, .SeqCst); } - result.len = @intCast(usize, @max(printer.writer.written, 0)); + result.len = @as(usize, @intCast(@max(printer.writer.written, 0))); return result; } diff --git a/src/json_parser.zig b/src/json_parser.zig index c7dd74943..eb8018bfa 100644 --- a/src/json_parser.zig +++ b/src/json_parser.zig @@ -542,7 +542,7 @@ pub fn toAST( return Expr{ .data = .{ .e_number = .{ - .value = @floatFromInt(f64, value), + .value = @as(f64, @floatFromInt(value)), }, }, .loc = logger.Loc{}, @@ -552,7 +552,7 @@ pub fn toAST( return Expr{ .data = .{ .e_number = .{ - .value = @floatCast(f64, value), + .value = @as(f64, @floatCast(value)), }, }, .loc = logger.Loc{}, diff --git a/src/libarchive/libarchive.zig b/src/libarchive/libarchive.zig index c2948fd28..69fe43b70 100644 --- a/src/libarchive/libarchive.zig +++ b/src/libarchive/libarchive.zig @@ -245,7 +245,7 @@ pub const BufferReadStream = struct { } pub inline fn fromCtx(ctx: *anyopaque) *Stream { - return @ptrCast(*Stream, @alignCast(@alignOf(*Stream), ctx)); + return @as(*Stream, @ptrCast(@alignCast(ctx))); } pub fn archive_close_callback( @@ -267,7 +267,7 @@ pub const BufferReadStream = struct { const diff = @min(remaining.len, this.block_size); buffer.* = remaining[0..diff].ptr; this.pos += diff; - return @intCast(isize, diff); + return @as(isize, @intCast(diff)); } pub fn archive_skip_callback( @@ -277,12 +277,12 @@ pub const BufferReadStream = struct { ) callconv(.C) lib.la_int64_t { var this = fromCtx(ctx_); - const buflen = @intCast(isize, this.buf.len); - const pos = @intCast(isize, this.pos); + const buflen = @as(isize, @intCast(this.buf.len)); + const pos = @as(isize, @intCast(this.pos)); const proposed = pos + offset; const new_pos = @min(@max(proposed, 0), buflen - 1); - this.pos = @intCast(usize, this.pos); + this.pos = @as(usize, @intCast(this.pos)); return new_pos - pos; } @@ -294,23 +294,23 @@ pub const BufferReadStream = struct { ) callconv(.C) lib.la_int64_t { var this = fromCtx(ctx_); - const buflen = @intCast(isize, this.buf.len); - const pos = @intCast(isize, this.pos); + const buflen = @as(isize, @intCast(this.buf.len)); + const pos = @as(isize, @intCast(this.pos)); - switch (@enumFromInt(Seek, whence)) { + switch (@as(Seek, @enumFromInt(whence))) { Seek.current => { const new_pos = @max(@min(pos + offset, buflen - 1), 0); - this.pos = @intCast(usize, new_pos); + this.pos = @as(usize, @intCast(new_pos)); return new_pos; }, Seek.end => { const new_pos = @max(@min(buflen - offset, buflen), 0); - this.pos = @intCast(usize, new_pos); + this.pos = @as(usize, @intCast(new_pos)); return new_pos; }, Seek.set => { const new_pos = @max(@min(offset, buflen - 1), 0); - this.pos = @intCast(usize, new_pos); + this.pos = @as(usize, @intCast(new_pos)); return new_pos; }, } @@ -363,7 +363,7 @@ pub const Archive = struct { pub const U64Context = struct { pub fn hash(_: @This(), k: u64) u32 { - return @truncate(u32, k); + return @as(u32, @truncate(k)); } pub fn eql(_: @This(), a: u64, b: u64, _: usize) bool { return a == b; @@ -413,7 +413,7 @@ pub const Archive = struct { }; loop: while (true) { - const r = @enumFromInt(Status, lib.archive_read_next_header(archive, &entry)); + const r = @as(Status, @enumFromInt(lib.archive_read_next_header(archive, &entry))); switch (r) { Status.eof => break :loop, @@ -434,7 +434,7 @@ pub const Archive = struct { pathname = std.mem.sliceTo(pathname_.ptr[0..pathname_.len :0], 0); const dirname = std.mem.trim(u8, std.fs.path.dirname(bun.asByteSlice(pathname)) orelse "", std.fs.path.sep_str); - const size = @intCast(usize, @max(lib.archive_entry_size(entry), 0)); + const size = @as(usize, @intCast(@max(lib.archive_entry_size(entry), 0))); if (size > 0) { var opened = dir.dir.openFileZ(pathname, .{ .mode = .write_only }) catch continue :loop; var stat = try opened.stat(); @@ -490,7 +490,7 @@ pub const Archive = struct { const dir_fd = dir.fd; loop: while (true) { - const r = @enumFromInt(Status, lib.archive_read_next_header(archive, &entry)); + const r = @as(Status, @enumFromInt(lib.archive_read_next_header(archive, &entry))); switch (r) { Status.eof => break :loop, @@ -513,7 +513,7 @@ pub const Archive = struct { } var pathname_ = tokenizer.rest(); - pathname = @ptrFromInt([*]const u8, @intFromPtr(pathname_.ptr))[0..pathname_.len :0]; + pathname = @as([*]const u8, @ptrFromInt(@intFromPtr(pathname_.ptr)))[0..pathname_.len :0]; if (pathname.len == 0) continue; const kind = C.kindFromMode(lib.archive_entry_filetype(entry)); @@ -528,7 +528,7 @@ pub const Archive = struct { switch (kind) { Kind.directory => { - var mode = @intCast(i32, lib.archive_entry_perm(entry)); + var mode = @as(i32, @intCast(lib.archive_entry_perm(entry))); // if dirs are readable, then they should be listable // https://github.com/npm/node-tar/blob/main/lib/mode-fix.js @@ -539,7 +539,7 @@ pub const Archive = struct { if ((mode & 0o4) != 0) mode |= 0o1; - std.os.mkdiratZ(dir_fd, pathname, @intCast(u32, mode)) catch |err| { + std.os.mkdiratZ(dir_fd, pathname, @as(u32, @intCast(mode))) catch |err| { if (err == error.PathAlreadyExists or err == error.NotDir) break; try dir.makePath(std.fs.path.dirname(slice) orelse return err); try std.os.mkdiratZ(dir_fd, pathname, 0o777); @@ -561,7 +561,7 @@ pub const Archive = struct { }; }, Kind.file => { - const mode = @intCast(std.os.mode_t, lib.archive_entry_perm(entry)); + const mode = @as(std.os.mode_t, @intCast(lib.archive_entry_perm(entry))); const file = dir.createFileZ(pathname, .{ .truncate = true, .mode = mode }) catch |err| brk: { switch (err) { error.AccessDenied, error.FileNotFound => { @@ -579,7 +579,7 @@ pub const Archive = struct { defer if (comptime close_handles) file.close(); const entry_size = @max(lib.archive_entry_size(entry), 0); - const size = @intCast(usize, entry_size); + const size = @as(usize, @intCast(entry_size)); if (size > 0) { if (ctx) |ctx_| { const hash: u64 = if (ctx_.pluckers.len > 0) @@ -599,7 +599,7 @@ pub const Archive = struct { try plucker_.contents.inflate(size); plucker_.contents.list.expandToCapacity(); var read = lib.archive_read_data(archive, plucker_.contents.list.items.ptr, size); - try plucker_.contents.inflate(@intCast(usize, read)); + try plucker_.contents.inflate(@as(usize, @intCast(read))); plucker_.found = read > 0; plucker_.fd = file.handle; continue :loop; diff --git a/src/linker.zig b/src/linker.zig index fa1c504d7..744c5eabc 100644 --- a/src/linker.zig +++ b/src/linker.zig @@ -234,7 +234,7 @@ pub const Linker = struct { switch (result.loader) { .jsx, .js, .ts, .tsx => { var record_i: u32 = 0; - const record_count = @truncate(u32, import_records.items.len); + const record_count = @as(u32, @truncate(import_records.items.len)); outer: while (record_i < record_count) : (record_i += 1) { var import_record = &import_records.items[record_i]; @@ -569,7 +569,7 @@ pub const Linker = struct { // But we need to at least tell the printer that this needs to happen. if (loader != .napi and resolved_import.shouldAssumeCommonJS(import_record.kind) and !is_bun) { import_record.do_commonjs_transform_in_printer = true; - import_record.module_id = @truncate(u32, bun.hash(path.pretty)); + import_record.module_id = @as(u32, @truncate(bun.hash(path.pretty))); } } else |err| { switch (err) { diff --git a/src/linux_c.zig b/src/linux_c.zig index 12e3c9b73..0c0631738 100644 --- a/src/linux_c.zig +++ b/src/linux_c.zig @@ -148,7 +148,7 @@ pub const SystemErrno = enum(u8) { } if (code >= max) return null; - return @enumFromInt(SystemErrno, code); + return @as(SystemErrno, @enumFromInt(code)); } pub fn label(this: SystemErrno) ?[]const u8 { @@ -373,7 +373,7 @@ pub fn preallocate_file(fd: std.os.fd_t, offset: std.os.off_t, len: std.os.off_t // './micro 65432000 temp --preallocate' ran // 1.18 ± 0.06 times faster than './micro 65432000 temp' // - _ = std.os.linux.fallocate(fd, 0, @intCast(i64, offset), len); + _ = std.os.linux.fallocate(fd, 0, @as(i64, @intCast(offset)), len); } /// splice() moves data between two file descriptors without copying @@ -384,9 +384,9 @@ pub fn preallocate_file(fd: std.os.fd_t, offset: std.os.off_t, len: std.os.off_t pub fn splice(fd_in: std.os.fd_t, off_in: ?*i64, fd_out: std.os.fd_t, off_out: ?*i64, len: usize, flags: u32) usize { return std.os.linux.syscall6( .splice, - @bitCast(usize, @as(isize, fd_in)), + @as(usize, @bitCast(@as(isize, fd_in))), @intFromPtr(off_in), - @bitCast(usize, @as(isize, fd_out)), + @as(usize, @bitCast(@as(isize, fd_out))), @intFromPtr(off_out), len, flags, @@ -411,26 +411,26 @@ pub const struct_sysinfo = extern struct { pub fn _f(self: anytype) @import("std").zig.c_translation.FlexibleArrayType(@TypeOf(self), u8) { const Intermediate = @import("std").zig.c_translation.FlexibleArrayType(@TypeOf(self), u8); const ReturnType = @import("std").zig.c_translation.FlexibleArrayType(@TypeOf(self), u8); - return @ptrCast(ReturnType, @alignCast(@alignOf(u8), @ptrCast(Intermediate, self) + 108)); + return @as(ReturnType, @ptrCast(@alignCast(@as(Intermediate, @ptrCast(self)) + 108))); } }; pub extern fn sysinfo(__info: [*c]struct_sysinfo) c_int; pub fn get_free_memory() u64 { var info: struct_sysinfo = undefined; - if (sysinfo(&info) == @as(c_int, 0)) return @bitCast(u64, info.freeram) *% @bitCast(c_ulong, @as(c_ulong, info.mem_unit)); + if (sysinfo(&info) == @as(c_int, 0)) return @as(u64, @bitCast(info.freeram)) *% @as(c_ulong, @bitCast(@as(c_ulong, info.mem_unit))); return 0; } pub fn get_total_memory() u64 { var info: struct_sysinfo = undefined; - if (sysinfo(&info) == @as(c_int, 0)) return @bitCast(u64, info.totalram) *% @bitCast(c_ulong, @as(c_ulong, info.mem_unit)); + if (sysinfo(&info) == @as(c_int, 0)) return @as(u64, @bitCast(info.totalram)) *% @as(c_ulong, @bitCast(@as(c_ulong, info.mem_unit))); return 0; } pub fn get_system_uptime() u64 { var info: struct_sysinfo = undefined; - if (sysinfo(&info) == @as(c_int, 0)) return @bitCast(u64, info.uptime); + if (sysinfo(&info) == @as(c_int, 0)) return @as(u64, @bitCast(info.uptime)); return 0; } @@ -438,9 +438,9 @@ pub fn get_system_loadavg() [3]f64 { var info: struct_sysinfo = undefined; if (sysinfo(&info) == @as(c_int, 0)) { return [3]f64{ - std.math.ceil((@floatFromInt(f64, info.loads[0]) / 65536.0) * 100.0) / 100.0, - std.math.ceil((@floatFromInt(f64, info.loads[1]) / 65536.0) * 100.0) / 100.0, - std.math.ceil((@floatFromInt(f64, info.loads[2]) / 65536.0) * 100.0) / 100.0, + std.math.ceil((@as(f64, @floatFromInt(info.loads[0])) / 65536.0) * 100.0) / 100.0, + std.math.ceil((@as(f64, @floatFromInt(info.loads[1])) / 65536.0) * 100.0) / 100.0, + std.math.ceil((@as(f64, @floatFromInt(info.loads[2])) / 65536.0) * 100.0) / 100.0, }; } return [3]f64{ 0, 0, 0 }; diff --git a/src/logger.zig b/src/logger.zig index fc25541de..5a9e5b973 100644 --- a/src/logger.zig +++ b/src/logger.zig @@ -75,7 +75,7 @@ pub const Loc = struct { pub const toUsize = i; pub inline fn i(self: *const Loc) usize { - return @intCast(usize, @max(self.start, 0)); + return @as(usize, @intCast(@max(self.start, 0))); } pub const Empty = Loc{ .start = -1 }; @@ -151,7 +151,7 @@ pub const Location = struct { .column = this.column, .line_text = this.line_text orelse "", .suggestion = this.suggestion orelse "", - .offset = @truncate(u32, this.offset), + .offset = @as(u32, @truncate(this.offset)), }; } @@ -194,7 +194,7 @@ pub const Location = struct { .column = usize2Loc(data.column_count).start, .length = full_line.len, .line_text = full_line, - .offset = @intCast(usize, @max(r.loc.start, 0)), + .offset = @as(usize, @intCast(@max(r.loc.start, 0))), }; } else { return null; @@ -293,7 +293,7 @@ pub const Data = struct { if (location.line_text) |line_text_| { const line_text = std.mem.trimRight(u8, line_text_, "\r\n\t"); - const location_in_line_text = @intCast(u32, @max(location.column, 1) - 1); + const location_in_line_text = @as(u32, @intCast(@max(location.column, 1) - 1)); const has_position = location.column > -1 and line_text.len > 0 and location_in_line_text < line_text.len; if (has_position) { @@ -400,8 +400,8 @@ pub const BabyString = packed struct { pub fn in(parent: string, text: string) BabyString { return BabyString{ - .offset = @truncate(u16, std.mem.indexOf(u8, parent, text) orelse unreachable), - .len = @truncate(u16, text.len), + .offset = @as(u16, @truncate(std.mem.indexOf(u8, parent, text) orelse unreachable)), + .len = @as(u16, @truncate(text.len)), }; } @@ -597,8 +597,8 @@ pub const Range = struct { pub fn in(this: Range, buf: []const u8) []const u8 { if (this.loc.start < 0 or this.len <= 0) return ""; - const slice = buf[@intCast(usize, this.loc.start)..]; - return slice[0..@min(@intCast(usize, this.len), buf.len)]; + const slice = buf[@as(usize, @intCast(this.loc.start))..]; + return slice[0..@min(@as(usize, @intCast(this.len)), buf.len)]; } pub fn contains(this: Range, k: i32) bool { @@ -650,8 +650,8 @@ pub const Log = struct { var warnings: u32 = 0; var errors: u32 = 0; for (this.msgs.items) |msg| { - errors += @intCast(u32, @intFromBool(msg.kind == .err)); - warnings += @intCast(u32, @intFromBool(msg.kind == .warn)); + errors += @as(u32, @intCast(@intFromBool(msg.kind == .err))); + warnings += @as(u32, @intCast(@intFromBool(msg.kind == .warn))); } return Api.Log{ @@ -715,7 +715,7 @@ pub const Log = struct { const msgs: []const Msg = this.msgs.items; var errors_stack: [256]*anyopaque = undefined; - const count = @intCast(u16, @min(msgs.len, errors_stack.len)); + const count = @as(u16, @intCast(@min(msgs.len, errors_stack.len))); switch (count) { 0 => return JSC.JSValue.jsUndefined(), 1 => { @@ -743,11 +743,11 @@ pub const Log = struct { const msgs: []const Msg = this.msgs.items; var errors_stack: [256]*anyopaque = undefined; - const count = @intCast(u16, @min(msgs.len, errors_stack.len)); + const count = @as(u16, @intCast(@min(msgs.len, errors_stack.len))); var arr = JSC.JSValue.createEmptyArray(global, count); for (msgs[0..count], 0..) |msg, i| { - arr.putIndex(global, @intCast(u32, i), msg.toJS(global, allocator)); + arr.putIndex(global, @as(u32, @intCast(i)), msg.toJS(global, allocator)); } return arr; @@ -760,7 +760,7 @@ pub const Log = struct { const msg: Msg = msg_; if (msg.notes) |notes| { for (notes) |note| { - notes_count += @intCast(usize, @intFromBool(note.text.len > 0)); + notes_count += @as(usize, @intCast(@intFromBool(note.text.len > 0))); } } } @@ -1228,7 +1228,7 @@ pub const Log = struct { }; pub inline fn usize2Loc(loc: usize) Loc { - return Loc{ .start = @intCast(i32, loc) }; + return Loc{ .start = @as(i32, @intCast(loc)) }; } pub const Source = struct { @@ -1267,7 +1267,7 @@ pub const Source = struct { pub fn isWebAssembly(this: *const Source) bool { if (this.contents.len < 4) return false; - const bytes = @bitCast(u32, this.contents[0..4].*); + const bytes = @as(u32, @bitCast(this.contents[0..4].*)); return bytes == 0x6d736100; // "\0asm" } @@ -1320,7 +1320,7 @@ pub const Source = struct { if (index >= 0) { return Range{ .loc = Loc{ .start = loc.start + index, - }, .len = @intCast(i32, op.len) }; + }, .len = @as(i32, @intCast(op.len)) }; } return Range{ .loc = loc }; @@ -1344,7 +1344,7 @@ pub const Source = struct { c = text[i]; if (c == quote) { - return Range{ .loc = loc, .len = @intCast(i32, i + 1) }; + return Range{ .loc = loc, .len = @as(i32, @intCast(i + 1)) }; } else if (c == '\\') { i += 1; } @@ -1369,7 +1369,7 @@ pub const Source = struct { pub fn initErrorPosition(self: *const Source, _offset: Loc) ErrorPosition { var prev_code_point: i32 = 0; - var offset: usize = @min(if (_offset.start < 0) 0 else @intCast(usize, _offset.start), @max(self.contents.len, 1) - 1); + var offset: usize = @min(if (_offset.start < 0) 0 else @as(usize, @intCast(_offset.start)), @max(self.contents.len, 1) - 1); const contents = self.contents; diff --git a/src/main_wasm.zig b/src/main_wasm.zig index c9e4666e8..d58ce60a0 100644 --- a/src/main_wasm.zig +++ b/src/main_wasm.zig @@ -30,15 +30,15 @@ pub const Uint8Array = extern struct { len: usize = 0, pub fn fromSlice(slice: []const u8) u64 { - return @bitCast(u64, [2]u32{ + return @as(u64, @bitCast([2]u32{ @intFromPtr(slice.ptr), slice.len, - }); + })); } pub fn fromJS(data: u64) []u8 { - const ptrs = @bitCast([2]u32, data); - return @ptrFromInt([*]u8, ptrs[0])[0..ptrs[1]]; + const ptrs = @as([2]u32, @bitCast(data)); + return @as([*]u8, @ptrFromInt(ptrs[0]))[0..ptrs[1]]; } }; @@ -166,10 +166,10 @@ var buffer_writer: JSPrinter.BufferWriter = undefined; var writer: JSPrinter.BufferPrinter = undefined; var define: *Define.Define = undefined; export fn bun_malloc(size: usize) u64 { - return @bitCast(u64, [2]u32{ + return @as(u64, @bitCast([2]u32{ @intFromPtr((default_allocator.alloc(u8, size) catch unreachable).ptr), size, - }); + })); } export fn bun_free(bytes: u64) void { @@ -270,7 +270,7 @@ export fn transform(opts_array: u64) u64 { const Encoder = ApiWriter(@TypeOf(output_writer)); var encoder = Encoder.init(output_writer); transform_response.encode(&encoder) catch unreachable; - return @bitCast(u64, [2]u32{ @intFromPtr(output.items.ptr), output.items.len }); + return @as(u64, @bitCast([2]u32{ @intFromPtr(output.items.ptr), output.items.len })); } export fn scan(opts_array: u64) u64 { @@ -325,7 +325,7 @@ export fn scan(opts_array: u64) u64 { var encoder = Encoder.init(output_writer); scan_result.encode(&encoder) catch unreachable; - return @bitCast(u64, [2]u32{ @intFromPtr(output.items.ptr), output.items.len }); + return @as(u64, @bitCast([2]u32{ @intFromPtr(output.items.ptr), output.items.len })); } // pub fn main() anyerror!void {} diff --git a/src/memory_allocator.zig b/src/memory_allocator.zig index 391446f5e..dbcc492e9 100644 --- a/src/memory_allocator.zig +++ b/src/memory_allocator.zig @@ -71,7 +71,7 @@ const CAllocator = struct { } } - return @ptrCast(?[*]u8, ptr); + return @as(?[*]u8, @ptrCast(ptr)); } fn alignedAllocSize(ptr: [*]u8) usize { @@ -83,7 +83,7 @@ const CAllocator = struct { return alignedAlloc(len, log2_align); } - const alignment = @as(usize, 1) << @intCast(Allocator.Log2Align, log2_align); + const alignment = @as(usize, 1) << @as(Allocator.Log2Align, @intCast(log2_align)); return alignedAlloc(len, alignment); } @@ -132,7 +132,7 @@ const ZAllocator = struct { } } - return @ptrCast(?[*]u8, ptr); + return @as(?[*]u8, @ptrCast(ptr)); } fn alignedAllocSize(ptr: [*]u8) usize { @@ -211,7 +211,7 @@ const HugeAllocator = struct { _: u29, _: usize, ) void { - std.os.munmap(@alignCast(std.meta.alignment([]align(std.mem.page_size) u8), buf)); + std.os.munmap(@alignCast(buf)); } }; diff --git a/src/mimalloc_arena.zig b/src/mimalloc_arena.zig index d0d0bbeab..dc71a887e 100644 --- a/src/mimalloc_arena.zig +++ b/src/mimalloc_arena.zig @@ -217,7 +217,7 @@ pub const Arena = struct { } return if (ptr) |p| - @ptrCast([*]u8, p) + @as([*]u8, @ptrCast(p)) else null; } @@ -234,7 +234,7 @@ pub const Arena = struct { return alignedAlloc(this, len, log2_align); } - const alignment = @as(usize, 1) << @intCast(Allocator.Log2Align, log2_align); + const alignment = @as(usize, 1) << @as(Allocator.Log2Align, @intCast(log2_align)); return alignedAlloc( this, diff --git a/src/multi_array_list.zig b/src/multi_array_list.zig index cff601bb8..96bd17819 100644 --- a/src/multi_array_list.zig +++ b/src/multi_array_list.zig @@ -47,7 +47,7 @@ pub fn MultiArrayList(comptime S: type) type { const casted_ptr: [*]F = if (@sizeOf(F) == 0) undefined else - @ptrCast([*]F, @alignCast(@alignOf(F), byte_ptr)); + @as([*]F, @ptrCast(@alignCast(byte_ptr))); return casted_ptr[0..self.len]; } @@ -56,8 +56,7 @@ pub fn MultiArrayList(comptime S: type) type { return .{}; } const unaligned_ptr = self.ptrs[sizes.fields[0]]; - const aligned_ptr = @alignCast(@alignOf(S), unaligned_ptr); - const casted_ptr = @ptrCast([*]align(@alignOf(S)) u8, aligned_ptr); + const casted_ptr: [*]align(@alignOf(S)) u8 = @ptrCast(@alignCast(unaligned_ptr)); return .{ .bytes = casted_ptr, .len = self.len, @@ -151,7 +150,7 @@ pub fn MultiArrayList(comptime S: type) type { pub fn set(self: *Self, index: usize, elem: S) void { const slices = self.slice(); inline for (fields, 0..) |field_info, i| { - slices.items(@enumFromInt(Field, i))[index] = @field(elem, field_info.name); + slices.items(@as(Field, @enumFromInt(i)))[index] = @field(elem, field_info.name); } } @@ -160,7 +159,7 @@ pub fn MultiArrayList(comptime S: type) type { const slices = self.slice(); var result: S = undefined; inline for (fields, 0..) |field_info, i| { - @field(result, field_info.name) = slices.items(@enumFromInt(Field, i))[index]; + @field(result, field_info.name) = slices.items(@as(Field, @enumFromInt(i)))[index]; } return result; } @@ -233,7 +232,7 @@ pub fn MultiArrayList(comptime S: type) type { self.len += 1; const slices = self.slice(); inline for (fields, 0..) |field_info, field_index| { - const field_slice = slices.items(@enumFromInt(Field, field_index)); + const field_slice = slices.items(@as(Field, @enumFromInt(field_index))); var i: usize = self.len - 1; while (i > index) : (i -= 1) { field_slice[i] = field_slice[i - 1]; @@ -248,7 +247,7 @@ pub fn MultiArrayList(comptime S: type) type { pub fn swapRemove(self: *Self, index: usize) void { const slices = self.slice(); inline for (fields, 0..) |_, i| { - const field_slice = slices.items(@enumFromInt(Field, i)); + const field_slice = slices.items(@as(Field, @enumFromInt(i))); field_slice[index] = field_slice[self.len - 1]; field_slice[self.len - 1] = undefined; } @@ -260,7 +259,7 @@ pub fn MultiArrayList(comptime S: type) type { pub fn orderedRemove(self: *Self, index: usize) void { const slices = self.slice(); inline for (fields, 0..) |_, field_index| { - const field_slice = slices.items(@enumFromInt(Field, field_index)); + const field_slice = slices.items(@as(Field, @enumFromInt(field_index))); var i = index; while (i < self.len - 1) : (i += 1) { field_slice[i] = field_slice[i + 1]; @@ -297,7 +296,7 @@ pub fn MultiArrayList(comptime S: type) type { const self_slice = self.slice(); inline for (fields, 0..) |field_info, i| { if (@sizeOf(field_info.type) != 0) { - const field = @enumFromInt(Field, i); + const field = @as(Field, @enumFromInt(i)); const dest_slice = self_slice.items(field)[new_len..]; // We use memset here for more efficient codegen in safety-checked, // valgrind-enabled builds. Otherwise the valgrind client request @@ -318,7 +317,7 @@ pub fn MultiArrayList(comptime S: type) type { const other_slice = other.slice(); inline for (fields, 0..) |field_info, i| { if (@sizeOf(field_info.type) != 0) { - const field = @enumFromInt(Field, i); + const field = @as(Field, @enumFromInt(i)); mem.copy(field_info.type, other_slice.items(field), self_slice.items(field)); } } @@ -379,7 +378,7 @@ pub fn MultiArrayList(comptime S: type) type { const other_slice = other.slice(); inline for (fields, 0..) |field_info, i| { if (@sizeOf(field_info.type) != 0) { - const field = @enumFromInt(Field, i); + const field = @as(Field, @enumFromInt(i)); mem.copy(field_info.type, other_slice.items(field), self_slice.items(field)); } } @@ -398,7 +397,7 @@ pub fn MultiArrayList(comptime S: type) type { const result_slice = result.slice(); inline for (fields, 0..) |field_info, i| { if (@sizeOf(field_info.type) != 0) { - const field = @enumFromInt(Field, i); + const field = @as(Field, @enumFromInt(i)); mem.copy(field_info.type, result_slice.items(field), self_slice.items(field)); } } @@ -419,7 +418,7 @@ pub fn MultiArrayList(comptime S: type) type { pub fn swap(sc: @This(), a_index: usize, b_index: usize) void { inline for (fields, 0..) |field_info, i| { if (@sizeOf(field_info.type) != 0) { - const field = @enumFromInt(Field, i); + const field = @as(Field, @enumFromInt(i)); const ptr = sc.slice.items(field); mem.swap(field_info.type, &ptr[a_index], &ptr[b_index]); } @@ -444,7 +443,7 @@ pub fn MultiArrayList(comptime S: type) type { return bytes; } else { const sizes_vector: @Vector(sizes.bytes.len, usize) = sizes.bytes; - const capacity_vector = @splat(sizes.bytes.len, capacity); + const capacity_vector: @Vector(sizes.bytes.len, usize) = @splat(capacity); return @reduce(.Add, capacity_vector * sizes_vector); } } @@ -456,7 +455,7 @@ pub fn MultiArrayList(comptime S: type) type { const this_slice = this.slice(); inline for (fields, 0..) |field_info, i| { if (@sizeOf(field_info.type) != 0) { - const field = @enumFromInt(Field, i); + const field = @as(Field, @enumFromInt(i)); mem.copy(field_info.type, this_slice.items(field)[offset..], other_slice.items(field)); } } @@ -550,9 +549,9 @@ test "basic usage" { var i: usize = 0; while (i < 6) : (i += 1) { try list.append(ally, .{ - .a = @intCast(u32, 4 + i), + .a = @as(u32, @intCast(4 + i)), .b = "whatever", - .c = @intCast(u8, 'd' + i), + .c = @as(u8, @intCast('d' + i)), }); } diff --git a/src/napi/napi.zig b/src/napi/napi.zig index 5caef4547..bb8f19df2 100644 --- a/src/napi/napi.zig +++ b/src/napi/napi.zig @@ -233,7 +233,7 @@ const prefilled_undefined_args_array: [128]JSC.JSValue = brk: { }; pub export fn napi_create_array_with_length(env: napi_env, length: usize, result: *napi_value) napi_status { log("napi_create_array_with_length", .{}); - const len = @intCast(u32, length); + const len = @as(u32, @intCast(length)); const array = JSC.JSValue.createEmptyArray(env, len); array.ensureStillAlive(); @@ -274,7 +274,7 @@ inline fn setNapiValue(result: *napi_value, value: JSValue) void { pub export fn napi_create_string_latin1(env: napi_env, str: [*]const u8, length: usize, result: *napi_value) napi_status { log("napi_create_string_latin1", .{}); const slice = if (NAPI_AUTO_LENGTH == length) - bun.sliceTo(@ptrCast([*:0]const u8, str), 0) + bun.sliceTo(@as([*:0]const u8, @ptrCast(str)), 0) else str[0..length]; @@ -283,7 +283,7 @@ pub export fn napi_create_string_latin1(env: napi_env, str: [*]const u8, length: } pub export fn napi_create_string_utf8(env: napi_env, str: [*]const u8, length: usize, result: *napi_value) napi_status { const slice = if (NAPI_AUTO_LENGTH == length) - bun.sliceTo(@ptrCast([*:0]const u8, str), 0) + bun.sliceTo(@as([*:0]const u8, @ptrCast(str)), 0) else str[0..length]; @@ -297,7 +297,7 @@ pub export fn napi_create_string_utf8(env: napi_env, str: [*]const u8, length: u pub export fn napi_create_string_utf16(env: napi_env, str: [*]const char16_t, length: usize, result: *napi_value) napi_status { log("napi_create_string_utf16", .{}); const slice = if (NAPI_AUTO_LENGTH == length) - bun.sliceTo(@ptrCast([*:0]const char16_t, str), 0) + bun.sliceTo(@as([*:0]const char16_t, @ptrCast(str)), 0) else str[0..length]; @@ -342,7 +342,7 @@ inline fn maybeAppendNull(ptr: anytype, doit: bool) void { pub export fn napi_get_value_string_latin1(env: napi_env, value: napi_value, buf_ptr_: ?[*:0]c_char, bufsize: usize, result_ptr: ?*usize) napi_status { log("napi_get_value_string_latin1", .{}); defer value.ensureStillAlive(); - var buf_ptr = @ptrCast(?[*:0]u8, buf_ptr_); + var buf_ptr = @as(?[*:0]u8, @ptrCast(buf_ptr_)); const str = value.toBunString(env); var buf = buf_ptr orelse { @@ -418,7 +418,7 @@ pub export fn napi_get_value_string_utf16(env: napi_env, value: napi_value, buf_ var buf_ = buf[0..bufsize]; if (bufsize == NAPI_AUTO_LENGTH) { - buf_ = bun.sliceTo(@ptrCast([*:0]u16, buf_ptr.?), 0); + buf_ = bun.sliceTo(@as([*:0]u16, @ptrCast(buf_ptr.?)), 0); if (buf_.len == 0) { if (result_ptr) |result| { result.* = 0; @@ -505,7 +505,7 @@ pub export fn napi_get_array_length(env: napi_env, value: napi_value, result: [* return .array_expected; } - result.* = @truncate(u32, value.getLength(env)); + result.* = @as(u32, @truncate(value.getLength(env))); return .ok; } pub export fn napi_strict_equals(env: napi_env, lhs: napi_value, rhs: napi_value, result: *bool) napi_status { @@ -530,7 +530,7 @@ pub export fn napi_new_instance(env: napi_env, constructor: napi_value, argc: us constructor.asObjectRef(), argc, if (argv != null) - @ptrCast([*]const JSC.C.JSValueRef, argv) + @as([*]const JSC.C.JSValueRef, @ptrCast(argv)) else null, &exception, @@ -614,7 +614,7 @@ pub export fn napi_make_callback(env: napi_env, _: *anyopaque, recv: napi_value, else JSC.JSValue.jsUndefined(), if (arg_count > 0 and args != null) - @ptrCast([*]const JSC.JSValue, args.?)[0..arg_count] + @as([*]const JSC.JSValue, @ptrCast(args.?))[0..arg_count] else &.{}, ); @@ -701,7 +701,7 @@ pub export fn napi_create_arraybuffer(env: napi_env, byte_length: usize, data: [ log("napi_create_arraybuffer", .{}); var typed_array = JSC.C.JSObjectMakeTypedArray(env.ref(), .kJSTypedArrayTypeArrayBuffer, byte_length, TODO_EXCEPTION); var array_buffer = JSValue.c(typed_array).asArrayBuffer(env) orelse return genericFailure(); - const len = @min(array_buffer.len, @truncate(u32, byte_length)); + const len = @min(array_buffer.len, @as(u32, @truncate(byte_length))); @memcpy(array_buffer.ptr[0..len], data[0..len]); result.* = JSValue.c(typed_array); return .ok; @@ -711,7 +711,7 @@ pub export fn napi_create_external_arraybuffer(env: napi_env, external_data: ?*a log("napi_create_external_arraybuffer", .{}); var external = JSC.ExternalBuffer.create( finalize_hint, - @ptrCast([*]u8, external_data.?)[0..byte_length], + @as([*]u8, @ptrCast(external_data.?))[0..byte_length], env, finalize_cb, env.bunVM().allocator, @@ -1074,7 +1074,7 @@ pub export fn napi_create_buffer(env: napi_env, length: usize, data: ?**anyopaqu } pub export fn napi_create_external_buffer(env: napi_env, length: usize, data: ?*anyopaque, finalize_cb: napi_finalize, finalize_hint: ?*anyopaque, result: *napi_value) napi_status { log("napi_create_external_buffer: {d}", .{length}); - var buf = JSC.ExternalBuffer.create(finalize_hint, @ptrCast([*]u8, data.?)[0..length], env, finalize_cb, bun.default_allocator) catch { + var buf = JSC.ExternalBuffer.create(finalize_hint, @as([*]u8, @ptrCast(data.?))[0..length], env, finalize_cb, bun.default_allocator) catch { return genericFailure(); }; diff --git a/src/network_thread.zig b/src/network_thread.zig index 49711c469..e932bc414 100644 --- a/src/network_thread.zig +++ b/src/network_thread.zig @@ -144,7 +144,7 @@ fn processEvents_(this: *@This()) !void { this.io.wait(this, queueEvents); if (comptime Environment.isDebug) { var end = std.time.nanoTimestamp(); - log("Waited {any}\n", .{std.fmt.fmtDurationSigned(@truncate(i64, end - start))}); + log("Waited {any}\n", .{std.fmt.fmtDurationSigned(@as(i64, @truncate(end - start)))}); Output.flush(); } } @@ -161,7 +161,7 @@ pub fn schedule(this: *@This(), batch: Batch) void { } if (comptime Environment.isLinux) { - const one = @bitCast([8]u8, @as(usize, batch.len)); + const one = @as([8]u8, @bitCast(@as(usize, batch.len))); _ = std.os.write(this.waker.fd, &one) catch @panic("Failed to write to eventfd"); } else { this.waker.wake() catch @panic("Failed to wake"); diff --git a/src/node_fallbacks.zig b/src/node_fallbacks.zig index 51da04be0..a8f125943 100644 --- a/src/node_fallbacks.zig +++ b/src/node_fallbacks.zig @@ -68,7 +68,7 @@ const assert_package_json = PackageJSON{ .name = "assert", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("assert@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("assert@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/assert/package.json", ""), @@ -77,7 +77,7 @@ const buffer_package_json = PackageJSON{ .name = "buffer", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("buffer@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("buffer@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/buffer/package.json", ""), @@ -86,7 +86,7 @@ const console_package_json = PackageJSON{ .name = "console", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("console@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("console@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/console/package.json", ""), @@ -95,7 +95,7 @@ const constants_package_json = PackageJSON{ .name = "constants", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("constants@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("constants@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/constants/package.json", ""), @@ -104,7 +104,7 @@ const crypto_package_json = PackageJSON{ .name = "crypto", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("crypto@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("crypto@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/crypto/package.json", ""), @@ -113,7 +113,7 @@ const domain_package_json = PackageJSON{ .name = "domain", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("domain@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("domain@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/domain/package.json", ""), @@ -122,7 +122,7 @@ const events_package_json = PackageJSON{ .name = "events", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("events@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("events@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/events/package.json", ""), @@ -131,7 +131,7 @@ const http_package_json = PackageJSON{ .name = "http", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("http@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("http@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/http/package.json", ""), @@ -140,7 +140,7 @@ const https_package_json = PackageJSON{ .name = "https", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("https@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("https@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/https/package.json", ""), @@ -149,7 +149,7 @@ const net_package_json = PackageJSON{ .name = "net", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("net@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("net@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/net/package.json", ""), @@ -158,7 +158,7 @@ const os_package_json = PackageJSON{ .name = "os", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("os@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("os@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/os/package.json", ""), @@ -167,7 +167,7 @@ const path_package_json = PackageJSON{ .name = "path", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("path@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("path@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/path/package.json", ""), @@ -176,7 +176,7 @@ const process_package_json = PackageJSON{ .name = "process", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("process@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("process@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/process/package.json", ""), @@ -185,7 +185,7 @@ const punycode_package_json = PackageJSON{ .name = "punycode", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("punycode@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("punycode@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/punycode/package.json", ""), @@ -194,7 +194,7 @@ const querystring_package_json = PackageJSON{ .name = "querystring", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("querystring@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("querystring@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/querystring/package.json", ""), @@ -203,7 +203,7 @@ const stream_package_json = PackageJSON{ .name = "stream", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("stream@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("stream@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/stream/package.json", ""), @@ -214,7 +214,7 @@ const string_decoder_package_json = PackageJSON{ .module_type = .esm, .hash = brk: { @setEvalBranchQuota(9999); - break :brk @truncate(u32, bun.hash("string_decoder@0.0.0-polyfill")); + break :brk @as(u32, @truncate(bun.hash("string_decoder@0.0.0-polyfill"))); }, .main_fields = undefined, @@ -226,7 +226,7 @@ const sys_package_json = PackageJSON{ .name = "sys", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("sys@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("sys@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/sys/package.json", ""), @@ -235,7 +235,7 @@ const timers_package_json = PackageJSON{ .name = "timers", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("timers@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("timers@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/timers/package.json", ""), @@ -244,7 +244,7 @@ const tty_package_json = PackageJSON{ .name = "tty", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("tty@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("tty@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/tty/package.json", ""), @@ -253,7 +253,7 @@ const url_package_json = PackageJSON{ .name = "url", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("url@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("url@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/url/package.json", ""), @@ -262,7 +262,7 @@ const util_package_json = PackageJSON{ .name = "util", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("util@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("util@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/util/package.json", ""), @@ -271,7 +271,7 @@ const zlib_package_json = PackageJSON{ .name = "zlib", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("zlib@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("zlib@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/zlib/package.json", ""), @@ -281,7 +281,7 @@ const node_fetch_package_json = PackageJSON{ .name = "node-fetch", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("node-fetch@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("node-fetch@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/node-fetch/package.json", ""), @@ -290,7 +290,7 @@ const isomorphic_fetch_package_json = PackageJSON{ .name = "isomorphic-fetch", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("isomorphic-fetch@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("isomorphic-fetch@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/isomorphic-fetch/package.json", ""), @@ -299,7 +299,7 @@ const supports_color_package_json = PackageJSON{ .name = "supports-color", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("supports-color@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("supports-color@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/supports-color/package.json", ""), @@ -309,7 +309,7 @@ const vercel_fetch_package_json = PackageJSON{ .name = "@vercel/fetch", .version = "0.0.0-polyfill", .module_type = .esm, - .hash = @truncate(u32, bun.hash("@vercel/fetch@0.0.0-polyfill")), + .hash = @as(u32, @truncate(bun.hash("@vercel/fetch@0.0.0-polyfill"))), .main_fields = undefined, .browser_map = undefined, .source = logger.Source.initPathString("/bun-vfs/node_modules/@vercel/fetch/package.json", ""), diff --git a/src/node_module_bundle.zig b/src/node_module_bundle.zig index 6682e2dff..e785cb61d 100644 --- a/src/node_module_bundle.zig +++ b/src/node_module_bundle.zig @@ -71,7 +71,7 @@ pub const NodeModuleBundle = struct { var buf = try allocator.alloc(u8, this.code_end_pos); const count = try file.preadAll(buf, this.codeStartOffset()); - this.code_string = AllocatedString{ .str = buf[0..count], .len = @truncate(u32, buf.len), .allocator = allocator }; + this.code_string = AllocatedString{ .str = buf[0..count], .len = @as(u32, @truncate(buf.len)), .allocator = allocator }; return this.code_string.?.str; } @@ -79,7 +79,7 @@ pub const NodeModuleBundle = struct { this.package_name_map = PackageNameMap.init(this.allocator); this.package_id_map = PackageIDMap.init(this.allocator); - const package_count = @truncate(u32, this.bundle.packages.len); + const package_count = @as(u32, @truncate(this.bundle.packages.len)); // this.package_has_multiple_versions = try std.bit_set.DynamicBitSet.initFull(package_count, this.allocator); @@ -94,9 +94,9 @@ pub const NodeModuleBundle = struct { var prev_package_ids_for_name: []u32 = &[_]u32{}; for (this.bundle.packages, 0..) |package, _package_id| { - const package_id = @truncate(u32, _package_id); + const package_id = @as(u32, @truncate(_package_id)); std.debug.assert(package.hash != 0); - this.package_id_map.putAssumeCapacityNoClobber(package.hash, @truncate(u32, package_id)); + this.package_id_map.putAssumeCapacityNoClobber(package.hash, @as(u32, @truncate(package_id))); const package_name = this.str(package.name); var entry = this.package_name_map.getOrPutAssumeCapacity(package_name); @@ -147,12 +147,12 @@ pub const NodeModuleBundle = struct { pub fn getPackage(this: *const NodeModuleBundle, name: string) ?*const Api.JavascriptBundledPackage { const package_id = this.getPackageIDByName(name) orelse return null; - return &this.bundle.packages[@intCast(usize, package_id[0])]; + return &this.bundle.packages[@as(usize, @intCast(package_id[0]))]; } pub fn hasModule(this: *const NodeModuleBundle, name: string) ?*const Api.JavascriptBundledPackage { const package_id = this.getPackageID(name) orelse return null; - return &this.bundle.packages[@intCast(usize, package_id)]; + return &this.bundle.packages[@as(usize, @intCast(package_id))]; } pub const ModuleQuery = struct { @@ -197,7 +197,7 @@ pub const NodeModuleBundle = struct { ) ?u32 { for (modulesIn(&this.bundle, package), 0..) |mod, i| { if (strings.eql(this.str(mod.path), _query)) { - return @truncate(u32, i + package.modules_offset); + return @as(u32, @truncate(i + package.modules_offset)); } } @@ -243,20 +243,20 @@ pub const NodeModuleBundle = struct { .package_id = 0, .code = .{}, .path = .{ - .offset = @truncate(u32, this.bundle.manifest_string.len), + .offset = @as(u32, @truncate(this.bundle.manifest_string.len)), }, }; var finder = ModuleFinder{ .ctx = this, .pkg = package, .query = _query }; const modules = modulesIn(&this.bundle, package); - return @intCast(u32, std.sort.binarySearch( + return @as(u32, @intCast(std.sort.binarySearch( Api.JavascriptBundledModule, to_find, modules, finder, ModuleFinder.cmpAsc, - ) orelse return null) + package.modules_offset; + ) orelse return null)) + package.modules_offset; } pub fn findModuleIDInPackageIgnoringExtension( @@ -301,20 +301,20 @@ pub const NodeModuleBundle = struct { .package_id = 0, .code = .{}, .path = .{ - .offset = @truncate(u32, this.bundle.manifest_string.len), + .offset = @as(u32, @truncate(this.bundle.manifest_string.len)), }, }; var finder = ModuleFinder{ .ctx = this, .pkg = package, .query = _query[0 .. _query.len - std.fs.path.extension(_query).len] }; const modules = modulesIn(&this.bundle, package); - return @intCast(u32, std.sort.binarySearch( + return @as(u32, @intCast(std.sort.binarySearch( Api.JavascriptBundledModule, to_find, modules, finder, ModuleFinder.cmpAsc, - ) orelse return null) + package.modules_offset; + ) orelse return null)) + package.modules_offset; } pub fn init(container: Api.JavascriptBundleContainer, allocator: std.mem.Allocator) NodeModuleBundle { @@ -355,7 +355,7 @@ pub const NodeModuleBundle = struct { .bundle = container.bundle.?, .fd = stream.handle, // sorry you can't have 4 GB of node_modules - .code_end_pos = end - @intCast(u32, jsbundle_prefix.len), + .code_end_pos = end - @as(u32, @intCast(jsbundle_prefix.len)), .bytes = read_bytes, .bytes_ptr = file_bytes, .package_id_map = undefined, @@ -402,7 +402,7 @@ pub const NodeModuleBundle = struct { Output.print("\n", .{}); } - const source_code_size = this.container.code_length.? - @intCast(u32, jsbundle_prefix.len); + const source_code_size = this.container.code_length.? - @as(u32, @intCast(jsbundle_prefix.len)); Output.pretty("<b>", .{}); prettySize(source_code_size, .neutral, ">"); @@ -412,7 +412,7 @@ pub const NodeModuleBundle = struct { } pub inline fn codeStartOffset(_: *const NodeModuleBundle) u32 { - return @intCast(u32, jsbundle_prefix.len); + return @as(u32, @intCast(jsbundle_prefix.len)); } pub fn printSummaryFromDisk( @@ -431,16 +431,16 @@ pub const NodeModuleBundle = struct { switch (size) { 0...1024 * 1024 => { switch (level) { - .bad => Output.pretty("<red>{d: " ++ align_char ++ "6.2} KB</r>", .{@floatFromInt(f64, size) / 1024.0}), - .neutral => Output.pretty("{d: " ++ align_char ++ "6.2} KB</r>", .{@floatFromInt(f64, size) / 1024.0}), - .good => Output.pretty("<green>{d: " ++ align_char ++ "6.2} KB</r>", .{@floatFromInt(f64, size) / 1024.0}), + .bad => Output.pretty("<red>{d: " ++ align_char ++ "6.2} KB</r>", .{@as(f64, @floatFromInt(size)) / 1024.0}), + .neutral => Output.pretty("{d: " ++ align_char ++ "6.2} KB</r>", .{@as(f64, @floatFromInt(size)) / 1024.0}), + .good => Output.pretty("<green>{d: " ++ align_char ++ "6.2} KB</r>", .{@as(f64, @floatFromInt(size)) / 1024.0}), } }, else => { switch (level) { - .bad => Output.pretty("<red>{d: " ++ align_char ++ "6.2} MB</r>", .{@floatFromInt(f64, size) / (1024 * 1024.0)}), - .neutral => Output.pretty("{d: " ++ align_char ++ "6.2} MB</r>", .{@floatFromInt(f64, size) / (1024 * 1024.0)}), - .good => Output.pretty("<green>{d: " ++ align_char ++ "6.2} MB</r>", .{@floatFromInt(f64, size) / (1024 * 1024.0)}), + .bad => Output.pretty("<red>{d: " ++ align_char ++ "6.2} MB</r>", .{@as(f64, @floatFromInt(size)) / (1024 * 1024.0)}), + .neutral => Output.pretty("{d: " ++ align_char ++ "6.2} MB</r>", .{@as(f64, @floatFromInt(size)) / (1024 * 1024.0)}), + .good => Output.pretty("<green>{d: " ++ align_char ++ "6.2} MB</r>", .{@as(f64, @floatFromInt(size)) / (1024 * 1024.0)}), } }, } @@ -455,11 +455,11 @@ pub const NodeModuleBundle = struct { const BufferStreamContext = struct { pub fn run(in: StreamType, out: DestinationStreamType, end_at: u32) !void { var buf: [4096]u8 = undefined; - var remain = @intCast(i64, end_at); + var remain = @as(i64, @intCast(end_at)); var read_amount: i64 = 99999; while (remain > 0 and read_amount > 0) { - read_amount = @intCast(i64, in.read(&buf) catch 0); - remain -= @intCast(i64, try out.write(buf[0..@intCast(usize, @min(read_amount, remain))])); + read_amount = @as(i64, @intCast(in.read(&buf) catch 0)); + remain -= @as(i64, @intCast(try out.write(buf[0..@as(usize, @intCast(@min(read_amount, remain)))]))); } } }; @@ -468,7 +468,7 @@ pub const NodeModuleBundle = struct { // darwin only allows reading ahead on/off, not specific amount _ = std.os.fcntl(input.handle, std.os.F.RDAHEAD, 1) catch 0; } - const end = (try getCodeEndPosition(input, false)) - @intCast(u32, jsbundle_prefix.len); + const end = (try getCodeEndPosition(input, false)) - @as(u32, @intCast(jsbundle_prefix.len)); try BufferStreamContext.run( input, diff --git a/src/options.zig b/src/options.zig index 38fac946c..f6b955a47 100644 --- a/src/options.zig +++ b/src/options.zig @@ -69,7 +69,7 @@ pub fn validatePath( pub fn stringHashMapFromArrays(comptime t: type, allocator: std.mem.Allocator, keys: anytype, values: anytype) !t { var hash_map = t.init(allocator); if (keys.len > 0) { - try hash_map.ensureTotalCapacity(@intCast(u32, keys.len)); + try hash_map.ensureTotalCapacity(@as(u32, @intCast(keys.len))); for (keys, 0..) |key, i| { hash_map.putAssumeCapacity(key, values[i]); } @@ -1710,7 +1710,7 @@ pub const BundleOptions = struct { opts.node_modules_bundle_pretty_path = try allocator.dupe(u8, pretty_path); } - const elapsed = @floatFromInt(f64, (std.time.nanoTimestamp() - time_start)) / std.time.ns_per_ms; + const elapsed = @as(f64, @floatFromInt((std.time.nanoTimestamp() - time_start))) / std.time.ns_per_ms; Output.printElapsed(elapsed); Output.prettyErrorln( " <b><d>\"{s}\"<r><d> - {d} modules, {d} packages<r>", @@ -2083,7 +2083,7 @@ pub const OutputFile = struct { if (mime_type) |mime| { blob.content_type = mime.value; } - blob.size = @truncate(JSC.WebCore.Blob.SizeType, byte_size); + blob.size = @as(JSC.WebCore.Blob.SizeType, @truncate(byte_size)); blob.allocator = bun.default_allocator; return blob.toJS(globalThis); } @@ -2283,7 +2283,7 @@ pub const OutputFile = struct { blob.content_type = this.loader.toMimeType().value; } - blob.size = @truncate(JSC.WebCore.Blob.SizeType, buffer.bytes.len); + blob.size = @as(JSC.WebCore.Blob.SizeType, @truncate(buffer.bytes.len)); var build_output = bun.default_allocator.create(JSC.API.BuildArtifact) catch @panic("Unable to allocate Artifact"); build_output.* = JSC.API.BuildArtifact{ diff --git a/src/output.zig b/src/output.zig index cf58cbccf..cffa2c414 100644 --- a/src/output.zig +++ b/src/output.zig @@ -270,21 +270,21 @@ pub const ElapsedFormatter = struct { 0...std.time.ns_per_ms * 10 => { const fmt_str = "<r><d>[{d:>.2}ms<r><d>]<r>"; switch (self.colors) { - inline else => |colors| try writer_.print(comptime prettyFmt(fmt_str, colors), .{@floatFromInt(f64, self.duration_ns) / std.time.ns_per_ms}), + inline else => |colors| try writer_.print(comptime prettyFmt(fmt_str, colors), .{@as(f64, @floatFromInt(self.duration_ns)) / std.time.ns_per_ms}), } }, std.time.ns_per_ms * 8_000...std.math.maxInt(u64) => { const fmt_str = "<r><d>[<r><yellow>{d:>.2}ms<r><d>]<r>"; switch (self.colors) { - inline else => |colors| try writer_.print(comptime prettyFmt(fmt_str, colors), .{@floatFromInt(f64, self.duration_ns) / std.time.ns_per_ms}), + inline else => |colors| try writer_.print(comptime prettyFmt(fmt_str, colors), .{@as(f64, @floatFromInt(self.duration_ns)) / std.time.ns_per_ms}), } }, else => { const fmt_str = "<r><d>[<b>{d:>.2}ms<r><d>]<r>"; switch (self.colors) { - inline else => |colors| try writer_.print(comptime prettyFmt(fmt_str, colors), .{@floatFromInt(f64, self.duration_ns) / std.time.ns_per_ms}), + inline else => |colors| try writer_.print(comptime prettyFmt(fmt_str, colors), .{@as(f64, @floatFromInt(self.duration_ns)) / std.time.ns_per_ms}), } }, } @@ -292,7 +292,7 @@ pub const ElapsedFormatter = struct { }; inline fn printElapsedToWithCtx(elapsed: f64, comptime printerFn: anytype, comptime has_ctx: bool, ctx: anytype) void { - switch (@intFromFloat(i64, @round(elapsed))) { + switch (@as(i64, @intFromFloat(@round(elapsed)))) { 0...1500 => { const fmt = "<r><d>[<b>{d:>.2}ms<r><d>]<r>"; const args = .{elapsed}; @@ -328,7 +328,7 @@ pub fn printElapsedStdout(elapsed: f64) void { } pub fn printElapsedStdoutTrim(elapsed: f64) void { - switch (@intFromFloat(i64, @round(elapsed))) { + switch (@as(i64, @intFromFloat(@round(elapsed)))) { 0...1500 => { const fmt = "<r><d>[<b>{d:>}ms<r><d>]<r>"; const args = .{elapsed}; @@ -344,19 +344,19 @@ pub fn printElapsedStdoutTrim(elapsed: f64) void { } pub fn printStartEnd(start: i128, end: i128) void { - const elapsed = @divTrunc(@truncate(i64, end - start), @as(i64, std.time.ns_per_ms)); - printElapsed(@floatFromInt(f64, elapsed)); + const elapsed = @divTrunc(@as(i64, @truncate(end - start)), @as(i64, std.time.ns_per_ms)); + printElapsed(@as(f64, @floatFromInt(elapsed))); } pub fn printStartEndStdout(start: i128, end: i128) void { - const elapsed = @divTrunc(@truncate(i64, end - start), @as(i64, std.time.ns_per_ms)); - printElapsedStdout(@floatFromInt(f64, elapsed)); + const elapsed = @divTrunc(@as(i64, @truncate(end - start)), @as(i64, std.time.ns_per_ms)); + printElapsedStdout(@as(f64, @floatFromInt(elapsed))); } pub fn printTimer(timer: *SystemTimer) void { if (comptime Environment.isWasm) return; const elapsed = @divTrunc(timer.read(), @as(u64, std.time.ns_per_ms)); - printElapsed(@floatFromInt(f64, elapsed)); + printElapsed(@as(f64, @floatFromInt(elapsed))); } pub noinline fn printErrorable(comptime fmt: string, args: anytype) !void { @@ -692,7 +692,7 @@ pub const DebugTimer = struct { var _opts = opts; _opts.precision = 3; std.fmt.formatFloatDecimal( - @floatCast(f64, @floatFromInt(f64, timer.read()) / std.time.ns_per_ms), + @as(f64, @floatCast(@as(f64, @floatFromInt(timer.read())) / std.time.ns_per_ms)), _opts, writer_, ) catch unreachable; diff --git a/src/renamer.zig b/src/renamer.zig index 5c7177577..b2164703d 100644 --- a/src/renamer.zig +++ b/src/renamer.zig @@ -96,7 +96,7 @@ pub const SymbolSlot = struct { pub fn init(str: []const u8) InlineString { var this: InlineString = .{}; - this.len = @intCast(u8, @min(str.len, 15)); + this.len = @as(u8, @intCast(@min(str.len, 15))); for (this.bytes[0..this.len], str[0..this.len]) |*b, c| { b.* = c; } @@ -293,7 +293,7 @@ pub const MinifyRenamer = struct { for (sorted.items, slots.items, 0..) |*elem, slot, i| { elem.* = SlotAndCount{ - .slot = @intCast(u32, i), + .slot = @as(u32, @intCast(i)), .count = slot.count, }; } @@ -596,7 +596,7 @@ pub const NumberRenamer = struct { std.sort.block(u32, sorted.items, {}, std.sort.asc(u32)); for (sorted.items) |inner_index| { - r.assignName(s, Ref.init(@intCast(Ref.Int, inner_index), source_index, false)); + r.assignName(s, Ref.init(@as(Ref.Int, @intCast(inner_index)), source_index, false)); } } @@ -884,7 +884,7 @@ pub fn computeInitialReservedNames( try names.ensureTotalCapacityContext( allocator, - @truncate(u32, JSLexer.Keywords.keys().len + JSLexer.StrictModeReservedWords.keys().len + 1 + extras.len), + @as(u32, @truncate(JSLexer.Keywords.keys().len + JSLexer.StrictModeReservedWords.keys().len + 1 + extras.len)), bun.StringHashMapContext{}, ); diff --git a/src/report.zig b/src/report.zig index c2f466b03..827f8072d 100644 --- a/src/report.zig +++ b/src/report.zig @@ -69,7 +69,7 @@ pub const CrashReportWriter = struct { const file_path = std.fmt.bufPrintZ( &crash_reporter_path, "{s}/.bun-crash/v{s}-{d}.crash", - .{ base_dir, Global.package_json_version, @intCast(u64, @max(std.time.milliTimestamp(), 0)) }, + .{ base_dir, Global.package_json_version, @as(u64, @intCast(@max(std.time.milliTimestamp(), 0))) }, ) catch return; std.fs.cwd().makeDir(std.fs.path.dirname(bun.asByteSlice(file_path)).?) catch {}; @@ -296,7 +296,7 @@ pub noinline fn handleCrash(signal: i32, addr: usize) void { } } - std.c._exit(128 + @truncate(u8, @intCast(u8, @max(signal, 0)))); + std.c._exit(128 + @as(u8, @truncate(@as(u8, @intCast(@max(signal, 0)))))); } pub noinline fn globalError(err: anyerror, trace_: @TypeOf(@errorReturnTrace())) noreturn { diff --git a/src/resolver/package_json.zig b/src/resolver/package_json.zig index e759374e7..75e6a7c98 100644 --- a/src/resolver/package_json.zig +++ b/src/resolver/package_json.zig @@ -1026,7 +1026,7 @@ pub const PackageJSON = struct { hasher.update(std.mem.asBytes(&this.hash)); hasher.update(module); - return @truncate(u32, hasher.final()); + return @as(u32, @truncate(hasher.final())); } }; @@ -1359,14 +1359,14 @@ pub const ESModule = struct { pub fn parseName(specifier: string) ?string { var slash = strings.indexOfCharNeg(specifier, '/'); if (!strings.startsWithChar(specifier, '@')) { - slash = if (slash == -1) @intCast(i32, specifier.len) else slash; - return specifier[0..@intCast(usize, slash)]; + slash = if (slash == -1) @as(i32, @intCast(specifier.len)) else slash; + return specifier[0..@as(usize, @intCast(slash))]; } else { if (slash == -1) return null; - const slash2 = strings.indexOfChar(specifier[@intCast(usize, slash) + 1 ..], '/') orelse - specifier[@intCast(u32, slash + 1)..].len; - return specifier[0 .. @intCast(usize, slash + 1) + slash2]; + const slash2 = strings.indexOfChar(specifier[@as(usize, @intCast(slash)) + 1 ..], '/') orelse + specifier[@as(u32, @intCast(slash + 1))..].len; + return specifier[0 .. @as(usize, @intCast(slash + 1)) + slash2]; } } diff --git a/src/resolver/resolve_path.zig b/src/resolver/resolve_path.zig index e63318887..877f32ded 100644 --- a/src/resolver/resolve_path.zig +++ b/src/resolver/resolve_path.zig @@ -25,11 +25,11 @@ const IsSeparatorFunc = fn (char: u8) bool; const LastSeparatorFunction = fn (slice: []const u8) ?usize; inline fn @"is .."(slice: []const u8) bool { - return slice.len >= 2 and @bitCast(u16, slice[0..2].*) == comptime std.mem.readIntNative(u16, ".."); + return slice.len >= 2 and @as(u16, @bitCast(slice[0..2].*)) == comptime std.mem.readIntNative(u16, ".."); } inline fn isDotSlash(slice: []const u8) bool { - return @bitCast(u16, slice[0..2].*) == comptime std.mem.readIntNative(u16, "./"); + return @as(u16, @bitCast(slice[0..2].*)) == comptime std.mem.readIntNative(u16, "./"); } inline fn @"is ../"(slice: []const u8) bool { @@ -376,7 +376,7 @@ pub fn relativeToCommonPath( var out_slice: []u8 = buf[0..0]; if (normalized_from.len > 0) { - var i: usize = @intCast(usize, @intFromBool(normalized_from[0] == separator)) + 1 + last_common_separator; + var i: usize = @as(usize, @intCast(@intFromBool(normalized_from[0] == separator))) + 1 + last_common_separator; while (i <= normalized_from.len) : (i += 1) { if (i == normalized_from.len or (normalized_from[i] == separator and i + 1 < normalized_from.len)) { @@ -878,14 +878,14 @@ inline fn _joinAbsStringBuf(comptime is_sentinel: bool, comptime ReturnType: typ { var part_i: u16 = 0; - var part_len: u16 = @truncate(u16, parts.len); + var part_len: u16 = @as(u16, @truncate(parts.len)); while (part_i < part_len) { if (_platform.isAbsolute(parts[part_i])) { cwd = parts[part_i]; parts = parts[part_i + 1 ..]; - part_len = @truncate(u16, parts.len); + part_len = @as(u16, @truncate(parts.len)); part_i = 0; continue; } @@ -959,7 +959,7 @@ pub fn lastIndexOfNonSeparatorPosix(slice: []const u8) ?u32 { var i: usize = slice.len; while (i != 0) : (i -= 1) { if (slice[i] != std.fs.path.sep_posix) { - return @intCast(u32, i); + return @as(u32, @intCast(i)); } } diff --git a/src/resolver/resolver.zig b/src/resolver/resolver.zig index ee65a23cb..cf337d324 100644 --- a/src/resolver/resolver.zig +++ b/src/resolver/resolver.zig @@ -283,10 +283,10 @@ pub const Result = struct { if (strings.lastIndexOf(module, node_module_root)) |end_| { var end: usize = end_ + node_module_root.len; - return @truncate(u32, bun.hash(module[end..])); + return @as(u32, @truncate(bun.hash(module[end..]))); } - return @truncate(u32, bun.hash(this.path_pair.primary.text)); + return @as(u32, @truncate(bun.hash(this.path_pair.primary.text))); } }; @@ -1262,7 +1262,7 @@ pub const Resolver = struct { if (NodeFallbackModules.Map.get(import_path_without_node_prefix)) |*fallback_module| { result.path_pair.primary = fallback_module.path; result.module_type = .cjs; - result.package_json = @ptrFromInt(*PackageJSON, @intFromPtr(fallback_module.package_json)); + result.package_json = @as(*PackageJSON, @ptrFromInt(@intFromPtr(fallback_module.package_json))); result.is_from_node_modules = true; return .{ .success = result }; // "node:* @@ -1693,7 +1693,7 @@ pub const Resolver = struct { // check the global cache directory for a package.json file. var manager = r.getPackageManager(); var dependency_version = Dependency.Version{}; - var dependency_behavior = @enumFromInt(Dependency.Behavior, Dependency.Behavior.normal); + var dependency_behavior = @as(Dependency.Behavior, @enumFromInt(Dependency.Behavior.normal)); var string_buf = esm.version; // const initial_pending_tasks = manager.pending_tasks; @@ -2466,15 +2466,15 @@ pub const Resolver = struct { top_parent = result; break; } - bufs(.dir_entry_paths_to_resolve)[@intCast(usize, i)] = DirEntryResolveQueueItem{ + bufs(.dir_entry_paths_to_resolve)[@as(usize, @intCast(i))] = DirEntryResolveQueueItem{ .unsafe_path = top, .result = result, .fd = 0, }; if (rfs.entries.get(top)) |top_entry| { - bufs(.dir_entry_paths_to_resolve)[@intCast(usize, i)].safe_path = top_entry.entries.dir; - bufs(.dir_entry_paths_to_resolve)[@intCast(usize, i)].fd = top_entry.entries.fd; + bufs(.dir_entry_paths_to_resolve)[@as(usize, @intCast(i))].safe_path = top_entry.entries.dir; + bufs(.dir_entry_paths_to_resolve)[@as(usize, @intCast(i))].fd = top_entry.entries.fd; } i += 1; } @@ -2484,21 +2484,21 @@ pub const Resolver = struct { if (result.status != .unknown) { top_parent = result; } else { - bufs(.dir_entry_paths_to_resolve)[@intCast(usize, i)] = DirEntryResolveQueueItem{ + bufs(.dir_entry_paths_to_resolve)[@as(usize, @intCast(i))] = DirEntryResolveQueueItem{ .unsafe_path = root_path, .result = result, .fd = 0, }; if (rfs.entries.get(top)) |top_entry| { - bufs(.dir_entry_paths_to_resolve)[@intCast(usize, i)].safe_path = top_entry.entries.dir; - bufs(.dir_entry_paths_to_resolve)[@intCast(usize, i)].fd = top_entry.entries.fd; + bufs(.dir_entry_paths_to_resolve)[@as(usize, @intCast(i))].safe_path = top_entry.entries.dir; + bufs(.dir_entry_paths_to_resolve)[@as(usize, @intCast(i))].fd = top_entry.entries.fd; } i += 1; } } - var queue_slice: []DirEntryResolveQueueItem = bufs(.dir_entry_paths_to_resolve)[0..@intCast(usize, i)]; + var queue_slice: []DirEntryResolveQueueItem = bufs(.dir_entry_paths_to_resolve)[0..@as(usize, @intCast(i))]; if (Environment.allow_assert) std.debug.assert(queue_slice.len > 0); var open_dir_count: usize = 0; @@ -2626,7 +2626,7 @@ pub const Resolver = struct { // Directories must always end in a trailing slash or else various bugs can occur. // This covers "what happens when the trailing" - end += @intCast(usize, @intFromBool(safe_path.len > end and end > 0 and safe_path[end - 1] != std.fs.path.sep and safe_path[end] == std.fs.path.sep)); + end += @as(usize, @intCast(@intFromBool(safe_path.len > end and end > 0 and safe_path[end - 1] != std.fs.path.sep and safe_path[end] == std.fs.path.sep))); break :brk safe_path[dir_path_i..end]; }; @@ -2779,8 +2779,8 @@ pub const Resolver = struct { (prefix.len >= longest_match_prefix_length and suffix.len > longest_match_suffix_length)) { - longest_match_prefix_length = @intCast(i32, prefix.len); - longest_match_suffix_length = @intCast(i32, suffix.len); + longest_match_prefix_length = @as(i32, @intCast(prefix.len)); + longest_match_suffix_length = @as(i32, @intCast(suffix.len)); longest_match = TSConfigMatch{ .prefix = prefix, .suffix = suffix, .original_paths = original_paths }; } } diff --git a/src/router.zig b/src/router.zig index 8ed16f102..685de061a 100644 --- a/src/router.zig +++ b/src/router.zig @@ -28,7 +28,7 @@ const URLPath = @import("./http/url_path.zig"); const PathnameScanner = @import("./url.zig").PathnameScanner; const CodepointIterator = @import("./string_immutable.zig").CodepointIterator; -const index_route_hash = @truncate(u32, bun.hash("$$/index-route$$-!(@*@#&*%-901823098123")); +const index_route_hash = @as(u32, @truncate(bun.hash("$$/index-route$$-!(@*@#&*%-901823098123"))); const arbitrary_max_route = 4096; pub const Param = struct { @@ -335,7 +335,7 @@ const RouteLoader = struct { const relative_dir = FileSystem.instance.relative(base_dir, config.dir); if (!strings.hasPrefixComptime(relative_dir, "..")) { - route_dirname_len = @truncate(u16, relative_dir.len + @as(usize, @intFromBool(config.dir[config.dir.len - 1] != std.fs.path.sep))); + route_dirname_len = @as(u16, @truncate(relative_dir.len + @as(usize, @intFromBool(config.dir[config.dir.len - 1] != std.fs.path.sep)))); } var this = RouteLoader{ @@ -515,7 +515,7 @@ pub const TinyPtr = packed struct { } pub inline fn eql(a: TinyPtr, b: TinyPtr) bool { - return @bitCast(u32, a) == @bitCast(u32, b); + return @as(u32, @bitCast(a)) == @as(u32, @bitCast(b)); } pub fn from(parent: string, in: string) TinyPtr { @@ -529,7 +529,7 @@ pub const TinyPtr = packed struct { const length = @max(end, right) - right; const offset = @max(@intFromPtr(in.ptr), @intFromPtr(parent.ptr)) - @intFromPtr(parent.ptr); - return TinyPtr{ .offset = @truncate(u16, offset), .len = @truncate(u16, length) }; + return TinyPtr{ .offset = @as(u16, @truncate(offset)), .len = @as(u16, @truncate(length)) }; } }; @@ -571,7 +571,7 @@ pub const Route = struct { var table: [std.math.maxInt(u8)]u8 = undefined; var i: u16 = 0; while (i < @as(u16, table.len)) { - table[i] = @intCast(u8, i); + table[i] = @as(u8, @intCast(i)); i += 1; } // move dynamic routes to the bottom @@ -770,7 +770,7 @@ pub const Route = struct { .full_hash = if (is_index) index_route_hash else - @truncate(u32, bun.hash(name)), + @as(u32, @truncate(bun.hash(name))), .param_count = validation_result.param_count, .kind = validation_result.kind, .abs_path = entry.abs_path, @@ -1184,7 +1184,7 @@ const Pattern = struct { var offset: RoutePathInt = 0; std.debug.assert(input.len > 0); var kind: u4 = @intFromEnum(Tag.static); - const end = @truncate(u32, input.len - 1); + const end = @as(u32, @truncate(input.len - 1)); while (offset < end) { const pattern: Pattern = Pattern.initUnhashed(input, offset) catch |err| { const source = Logger.Source.initEmptyFile(input); @@ -1248,10 +1248,10 @@ const Pattern = struct { }; offset = pattern.len; kind = @max(@intFromEnum(@as(Pattern.Tag, pattern.value)), kind); - count += @intCast(u16, @intFromBool(@intFromEnum(@as(Pattern.Tag, pattern.value)) > @intFromEnum(Pattern.Tag.static))); + count += @as(u16, @intCast(@intFromBool(@intFromEnum(@as(Pattern.Tag, pattern.value)) > @intFromEnum(Pattern.Tag.static)))); } - return ValidationResult{ .param_count = count, .kind = @enumFromInt(Tag, kind) }; + return ValidationResult{ .param_count = count, .kind = @as(Tag, @enumFromInt(kind)) }; } pub fn eql(a: Pattern, b: Pattern) bool { @@ -1292,13 +1292,13 @@ const Pattern = struct { if (input.len == 0 or input.len <= @as(usize, offset)) return Pattern{ .value = .{ .static = HashedString.empty }, - .len = @truncate(RoutePathInt, @min(input.len, @as(usize, offset))), + .len = @as(RoutePathInt, @truncate(@min(input.len, @as(usize, offset)))), }; var i: RoutePathInt = offset; var tag = Tag.static; - const end = @intCast(RoutePathInt, input.len - 1); + const end = @as(RoutePathInt, @intCast(input.len - 1)); if (offset == end) return Pattern{ .len = offset, .value = .{ .static = HashedString.empty } }; diff --git a/src/runtime.zig b/src/runtime.zig index 072258747..89fd66e77 100644 --- a/src/runtime.zig +++ b/src/runtime.zig @@ -105,11 +105,11 @@ pub const Fallback = struct { acc_len += 8; while (acc_len >= 6) { acc_len -= 6; - try writer.writeByte(alphabet_chars[@truncate(u6, (acc >> acc_len))]); + try writer.writeByte(alphabet_chars[@as(u6, @truncate((acc >> acc_len)))]); } } if (acc_len > 0) { - try writer.writeByte(alphabet_chars[@truncate(u6, (acc << 6 - acc_len))]); + try writer.writeByte(alphabet_chars[@as(u6, @truncate((acc << 6 - acc_len)))]); } } }; @@ -142,7 +142,7 @@ pub const Fallback = struct { var version_hash_int: u32 = 0; pub fn versionHash() u32 { if (version_hash_int == 0) { - version_hash_int = @truncate(u32, std.fmt.parseInt(u64, version(), 16) catch unreachable); + version_hash_int = @as(u32, @truncate(std.fmt.parseInt(u64, version(), 16) catch unreachable)); } return version_hash_int; } @@ -267,7 +267,7 @@ pub const Runtime = struct { var version_hash_int: u32 = 0; pub fn versionHash() u32 { if (version_hash_int == 0) { - version_hash_int = @truncate(u32, version_hash); + version_hash_int = @as(u32, @truncate(version_hash)); } return version_hash_int; } @@ -400,6 +400,7 @@ pub const Runtime = struct { "$$typeof", }; const all_sorted: [all.len]string = brk: { + @setEvalBranchQuota(1000000); var list = all; const Sorter = struct { fn compare(_: void, a: []const u8, b: []const u8) bool { diff --git a/src/sha.zig b/src/sha.zig index 8faf9fbb2..542dc494e 100644 --- a/src/sha.zig +++ b/src/sha.zig @@ -251,10 +251,10 @@ pub fn main() anyerror!void { var digest2: DigestType = undefined; var digest3: DigestType = undefined; var digest4: DigestType = undefined; - @memset(@ptrCast([*]u8, &digest1)[0..@sizeOf(DigestType)], 0); - @memset(@ptrCast([*]u8, &digest2)[0..@sizeOf(DigestType)], 0); - @memset(@ptrCast([*]u8, &digest3)[0..@sizeOf(DigestType)], 0); - @memset(@ptrCast([*]u8, &digest4)[0..@sizeOf(DigestType)], 0); + @memset(@as([*]u8, @ptrCast(&digest1))[0..@sizeOf(DigestType)], 0); + @memset(@as([*]u8, @ptrCast(&digest2))[0..@sizeOf(DigestType)], 0); + @memset(@as([*]u8, @ptrCast(&digest3))[0..@sizeOf(DigestType)], 0); + @memset(@as([*]u8, @ptrCast(&digest4))[0..@sizeOf(DigestType)], 0); defer { std.mem.doNotOptimizeAway(&digest1); std.mem.doNotOptimizeAway(&digest2); diff --git a/src/sourcemap/sourcemap.zig b/src/sourcemap/sourcemap.zig index 0b245d8c7..178422848 100644 --- a/src/sourcemap/sourcemap.zig +++ b/src/sourcemap/sourcemap.zig @@ -221,7 +221,7 @@ pub const Mapping = struct { .msg = "Missing generated column value", .err = error.MissingGeneratedColumnValue, .value = generated.columns, - .loc = .{ .start = @intCast(i32, bytes.len - remain.len) }, + .loc = .{ .start = @as(i32, @intCast(bytes.len - remain.len)) }, }, }; } @@ -235,7 +235,7 @@ pub const Mapping = struct { .msg = "Invalid generated column value", .err = error.InvalidGeneratedColumnValue, .value = generated.columns, - .loc = .{ .start = @intCast(i32, bytes.len - remain.len) }, + .loc = .{ .start = @as(i32, @intCast(bytes.len - remain.len)) }, }, }; } @@ -267,7 +267,7 @@ pub const Mapping = struct { .fail = .{ .msg = "Invalid source index delta", .err = error.InvalidSourceIndexDelta, - .loc = .{ .start = @intCast(i32, bytes.len - remain.len) }, + .loc = .{ .start = @as(i32, @intCast(bytes.len - remain.len)) }, }, }; } @@ -279,7 +279,7 @@ pub const Mapping = struct { .msg = "Invalid source index value", .err = error.InvalidSourceIndexValue, .value = source_index, - .loc = .{ .start = @intCast(i32, bytes.len - remain.len) }, + .loc = .{ .start = @as(i32, @intCast(bytes.len - remain.len)) }, }, }; } @@ -297,7 +297,7 @@ pub const Mapping = struct { .fail = .{ .msg = "Missing original line", .err = error.MissingOriginalLine, - .loc = .{ .start = @intCast(i32, bytes.len - remain.len) }, + .loc = .{ .start = @as(i32, @intCast(bytes.len - remain.len)) }, }, }; } @@ -309,7 +309,7 @@ pub const Mapping = struct { .msg = "Invalid original line value", .err = error.InvalidOriginalLineValue, .value = original.lines, - .loc = .{ .start = @intCast(i32, bytes.len - remain.len) }, + .loc = .{ .start = @as(i32, @intCast(bytes.len - remain.len)) }, }, }; } @@ -323,7 +323,7 @@ pub const Mapping = struct { .msg = "Missing original column value", .err = error.MissingOriginalColumnValue, .value = original.columns, - .loc = .{ .start = @intCast(i32, bytes.len - remain.len) }, + .loc = .{ .start = @as(i32, @intCast(bytes.len - remain.len)) }, }, }; } @@ -335,7 +335,7 @@ pub const Mapping = struct { .msg = "Invalid original column value", .err = error.InvalidOriginalColumnValue, .value = original.columns, - .loc = .{ .start = @intCast(i32, bytes.len - remain.len) }, + .loc = .{ .start = @as(i32, @intCast(bytes.len - remain.len)) }, }, }; } @@ -352,8 +352,8 @@ pub const Mapping = struct { .fail = .{ .msg = "Invalid character after mapping", .err = error.InvalidSourceMap, - .value = @intCast(i32, c), - .loc = .{ .start = @intCast(i32, bytes.len - remain.len) }, + .value = @as(i32, @intCast(c)), + .loc = .{ .start = @as(i32, @intCast(bytes.len - remain.len)) }, }, }; }, @@ -431,7 +431,7 @@ pub const LineColumnOffset = struct { std.debug.assert(i < input.len); var iter = strings.CodepointIterator.initOffset(input, i); - var cursor = strings.CodepointIterator.Cursor{ .i = @truncate(u32, iter.i) }; + var cursor = strings.CodepointIterator.Cursor{ .i = @as(u32, @truncate(iter.i)) }; _ = iter.next(&cursor); offset = i + cursor.width; @@ -596,7 +596,7 @@ pub fn appendSourceMapChunk(j: *Joiner, allocator: std.mem.Allocator, prev_end_s var start_state = start_state_; // Handle line breaks in between this mapping and the previous one if (start_state.generated_line > 0) { - j.append(try strings.repeatingAlloc(allocator, @intCast(usize, start_state.generated_line), ';'), 0, allocator); + j.append(try strings.repeatingAlloc(allocator, @as(usize, @intCast(start_state.generated_line)), ';'), 0, allocator); prev_end_state.generated_column = 0; } @@ -668,7 +668,7 @@ pub fn encodeVLQWithLookupTable( value: i32, ) VLQ { return if (value >= 0 and value <= 255) - vlq_lookup_table[@intCast(usize, value)] + vlq_lookup_table[@as(usize, @intCast(value))] else encodeVLQ(value); } @@ -727,9 +727,9 @@ pub fn encodeVLQ( var bytes: [vlq_max_in_bytes]u8 = undefined; var vlq: u32 = if (value >= 0) - @bitCast(u32, value << 1) + @as(u32, @bitCast(value << 1)) else - @bitCast(u32, (-value << 1) | 1); + @as(u32, @bitCast((-value << 1) | 1)); // source mappings are limited to i32 comptime var i: usize = 0; @@ -783,10 +783,10 @@ pub fn decodeVLQ(encoded: []const u8, start: usize) VLQResult { // inlining helps for the 1 or 2 byte case, hurts a little for larger comptime var i: usize = 0; inline while (i < vlq_max_in_bytes + 1) : (i += 1) { - const index = @as(u32, base64_lut[@truncate(u7, encoded_[i])]); + const index = @as(u32, base64_lut[@as(u7, @truncate(encoded_[i]))]); // decode a byte - vlq |= (index & 31) << @truncate(u5, shift); + vlq |= (index & 31) << @as(u5, @truncate(shift)); shift += 5; // Stop if there's no continuation bit @@ -794,9 +794,9 @@ pub fn decodeVLQ(encoded: []const u8, start: usize) VLQResult { return VLQResult{ .start = start + comptime (i + 1), .value = if ((vlq & 1) == 0) - @intCast(i32, vlq >> 1) + @as(i32, @intCast(vlq >> 1)) else - -@intCast(i32, (vlq >> 1)), + -@as(i32, @intCast((vlq >> 1))), }; } } @@ -825,10 +825,10 @@ pub const LineOffsetTable = struct { pub fn findLine(byte_offsets_to_start_of_line: []const u32, loc: Logger.Loc) i32 { std.debug.assert(loc.start > -1); // checked by caller var original_line: usize = 0; - const loc_start = @intCast(usize, loc.start); + const loc_start = @as(usize, @intCast(loc.start)); { - var count = @truncate(usize, byte_offsets_to_start_of_line.len); + var count = @as(usize, @truncate(byte_offsets_to_start_of_line.len)); var i: usize = 0; while (count > 0) { const step = count / 2; @@ -842,13 +842,13 @@ pub const LineOffsetTable = struct { } } - return @intCast(i32, original_line) - 1; + return @as(i32, @intCast(original_line)) - 1; } pub fn generate(allocator: std.mem.Allocator, contents: []const u8, approximate_line_count: i32) List { var list = List{}; // Preallocate the top-level table using the approximate line count from the lexer - list.ensureUnusedCapacity(allocator, @intCast(usize, @max(approximate_line_count, 1))) catch unreachable; + list.ensureUnusedCapacity(allocator, @as(usize, @intCast(@max(approximate_line_count, 1)))) catch unreachable; var column: i32 = 0; var byte_offset_to_first_non_ascii: u32 = 0; var column_byte_offset: u32 = 0; @@ -869,9 +869,9 @@ pub const LineOffsetTable = struct { const cp_len = @as(usize, len_); if (column == 0) { - line_byte_offset = @truncate( + line_byte_offset = @as( u32, - @intFromPtr(remaining.ptr) - @intFromPtr(contents.ptr), + @truncate(@intFromPtr(remaining.ptr) - @intFromPtr(contents.ptr)), ); } @@ -884,23 +884,23 @@ pub const LineOffsetTable = struct { // we have a non-ASCII character, so we need to keep track of the // mapping from byte offsets to UTF-16 code unit counts columns_for_non_ascii.appendAssumeCapacity(column); - column_byte_offset = @intCast( + column_byte_offset = @as( u32, - (@intFromPtr( + @intCast((@intFromPtr( remaining.ptr, ) - @intFromPtr( contents.ptr, - )) - line_byte_offset, + )) - line_byte_offset), ); byte_offset_to_first_non_ascii = line_byte_offset; } // Update the per-byte column offsets if (columns_for_non_ascii.items.len > 0) { - const line_bytes_so_far = @intCast(u32, @truncate( + const line_bytes_so_far = @as(u32, @intCast(@as( u32, - @intFromPtr(remaining.ptr) - @intFromPtr(contents.ptr), - )) - line_byte_offset; + @truncate(@intFromPtr(remaining.ptr) - @intFromPtr(contents.ptr)), + ))) - line_byte_offset; columns_for_non_ascii.ensureUnusedCapacity((line_bytes_so_far - column_byte_offset) + 1) catch unreachable; while (column_byte_offset <= line_bytes_so_far) : (column_byte_offset += 1) { columns_for_non_ascii.appendAssumeCapacity(column); @@ -910,11 +910,11 @@ pub const LineOffsetTable = struct { (@max('\r', '\n') + 1)...127 => { // skip ahead to the next newline or non-ascii character if (strings.indexOfNewlineOrNonASCIICheckStart(remaining, @as(u32, len_), false)) |j| { - column += @intCast(i32, j); + column += @as(i32, @intCast(j)); remaining = remaining[j..]; } else { // if there are no more lines, we are done! - column += @intCast(i32, remaining.len); + column += @as(i32, @intCast(remaining.len)); remaining = remaining[remaining.len..]; } @@ -965,11 +965,11 @@ pub const LineOffsetTable = struct { // Mark the start of the next line if (column == 0) { - line_byte_offset = @intCast(u32, contents.len); + line_byte_offset = @as(u32, @intCast(contents.len)); } if (columns_for_non_ascii.items.len > 0) { - const line_bytes_so_far = @intCast(u32, contents.len) - line_byte_offset; + const line_bytes_so_far = @as(u32, @intCast(contents.len)) - line_byte_offset; columns_for_non_ascii.ensureUnusedCapacity((line_bytes_so_far - column_byte_offset) + 1) catch unreachable; while (column_byte_offset <= line_bytes_so_far) : (column_byte_offset += 1) { columns_for_non_ascii.appendAssumeCapacity(column); @@ -1216,8 +1216,8 @@ pub const Chunk = struct { pub noinline fn generateChunk(b: *ThisBuilder, output: []const u8) Chunk { b.updateGeneratedLineAndColumn(output); if (b.prepend_count) { - b.source_map.getBuffer().list.items[0..8].* = @bitCast([8]u8, b.source_map.getBuffer().list.items.len); - b.source_map.getBuffer().list.items[8..16].* = @bitCast([8]u8, b.source_map.getCount()); + b.source_map.getBuffer().list.items[0..8].* = @as([8]u8, @bitCast(b.source_map.getBuffer().list.items.len)); + b.source_map.getBuffer().list.items[8..16].* = @as([8]u8, @bitCast(b.source_map.getCount())); } return Chunk{ .buffer = b.source_map.getBuffer(), @@ -1235,7 +1235,7 @@ pub const Chunk = struct { var needs_mapping = b.cover_lines_without_mappings and !b.line_starts_with_mapping and b.has_prev_state; var i: usize = 0; - const n = @intCast(usize, slice.len); + const n = @as(usize, @intCast(slice.len)); var c: i32 = 0; while (i < n) { const len = strings.wtf8ByteSequenceLengthWithInvalid(slice[i]); @@ -1244,12 +1244,12 @@ pub const Chunk = struct { switch (c) { 14...127 => { - if (strings.indexOfNewlineOrNonASCII(slice, @intCast(u32, i))) |j| { - b.generated_column += @intCast(i32, (@as(usize, j) - i) + 1); + if (strings.indexOfNewlineOrNonASCII(slice, @as(u32, @intCast(i)))) |j| { + b.generated_column += @as(i32, @intCast((@as(usize, j) - i) + 1)); i = j; continue; } else { - b.generated_column += @intCast(i32, slice[i..].len) + 1; + b.generated_column += @as(i32, @intCast(slice[i..].len)) + 1; i = n; break; } @@ -1293,7 +1293,7 @@ pub const Chunk = struct { } } - b.last_generated_update = @truncate(u32, output.len); + b.last_generated_update = @as(u32, @truncate(output.len)); } pub fn appendMapping(b: *ThisBuilder, current_state_: SourceMapState) void { @@ -1327,12 +1327,12 @@ pub const Chunk = struct { b.prev_loc = loc; const list = b.line_offset_tables; const original_line = LineOffsetTable.findLine(b.line_offset_table_byte_offset_list, loc); - const line = list.get(@intCast(usize, @max(original_line, 0))); + const line = list.get(@as(usize, @intCast(@max(original_line, 0)))); // Use the line to compute the column - var original_column = loc.start - @intCast(i32, line.byte_offset_to_start_of_line); - if (line.columns_for_non_ascii.len > 0 and original_column >= @intCast(i32, line.byte_offset_to_first_non_ascii)) { - original_column = line.columns_for_non_ascii.ptr[@intCast(u32, original_column) - line.byte_offset_to_first_non_ascii]; + var original_column = loc.start - @as(i32, @intCast(line.byte_offset_to_start_of_line)); + if (line.columns_for_non_ascii.len > 0 and original_column >= @as(i32, @intCast(line.byte_offset_to_first_non_ascii))) { + original_column = line.columns_for_non_ascii.ptr[@as(u32, @intCast(original_column)) - line.byte_offset_to_first_non_ascii]; } b.updateGeneratedLineAndColumn(output); diff --git a/src/sourcemap/vlq_bench.zig b/src/sourcemap/vlq_bench.zig index ca5b1ed8e..4da9db8ff 100644 --- a/src/sourcemap/vlq_bench.zig +++ b/src/sourcemap/vlq_bench.zig @@ -30,7 +30,7 @@ const SourceMap = struct { value: i32, ) VLQ { return if (value >= 0 and value <= 255) - vlq_lookup_table[@intCast(usize, value)] + vlq_lookup_table[@as(usize, @intCast(value))] else encodeVLQ(value); } @@ -54,9 +54,9 @@ const SourceMap = struct { var bytes: [vlq_max_in_bytes]u8 = undefined; var vlq: u32 = if (value >= 0) - @bitCast(u32, value << 1) + @as(u32, @bitCast(value << 1)) else - @bitCast(u32, (-value << 1) | 1); + @as(u32, @bitCast((-value << 1) | 1)); // source mappings are limited to i32 comptime var i: usize = 0; @@ -111,10 +111,10 @@ const SourceMap = struct { // inlining helps for the 1 or 2 byte case, hurts a little for larger comptime var i: usize = 0; inline while (i < vlq_max_in_bytes + 1) : (i += 1) { - const index = @as(u32, base64_lut[@truncate(u7, encoded_[i])]); + const index = @as(u32, base64_lut[@as(u7, @truncate(encoded_[i]))]); // decode a byte - vlq |= (index & 31) << @truncate(u5, shift); + vlq |= (index & 31) << @as(u5, @truncate(shift)); shift += 5; // Stop if there's no continuation bit @@ -122,9 +122,9 @@ const SourceMap = struct { return VLQResult{ .start = i + start, .value = if ((vlq & 1) == 0) - @intCast(i32, vlq >> 1) + @as(i32, @intCast(vlq >> 1)) else - -@intCast(i32, (vlq >> 1)), + -@as(i32, @intCast((vlq >> 1))), }; } } diff --git a/src/standalone_bun.zig b/src/standalone_bun.zig index b18fe384e..03cec9370 100644 --- a/src/standalone_bun.zig +++ b/src/standalone_bun.zig @@ -211,7 +211,7 @@ pub const StandaloneModuleGraph = struct { } var offsets = Offsets{ - .entry_point_id = @truncate(u32, entry_point_id.?), + .entry_point_id = @as(u32, @truncate(entry_point_id.?)), .modules_ptr = string_builder.appendCount(std.mem.sliceAsBytes(modules.items)), .byte_count = string_builder.len, }; @@ -230,7 +230,7 @@ pub const StandaloneModuleGraph = struct { pub fn inject(bytes: []const u8) i32 { var buf: [bun.MAX_PATH_BYTES]u8 = undefined; - var zname: [:0]const u8 = bun.span(bun.fs.FileSystem.instance.tmpname("bun-build", &buf, @bitCast(u64, std.time.milliTimestamp())) catch |err| { + var zname: [:0]const u8 = bun.span(bun.fs.FileSystem.instance.tmpname("bun-build", &buf, @as(u64, @bitCast(std.time.milliTimestamp()))) catch |err| { Output.prettyErrorln("<r><red>error<r><d>:<r> failed to get temporary file name: {s}", .{@errorName(err)}); Global.exit(1); return -1; @@ -338,7 +338,7 @@ pub const StandaloneModuleGraph = struct { break :brk fd; }; - const seek_position = @intCast(u64, brk: { + const seek_position = @as(u64, @intCast(brk: { const fstat = switch (Syscall.fstat(cloned_executable_fd)) { .result => |res| res, .err => |err| { @@ -349,7 +349,7 @@ pub const StandaloneModuleGraph = struct { }; break :brk @max(fstat.size, 0); - }); + })); const total_byte_count = seek_position + bytes.len + 8; @@ -479,7 +479,7 @@ pub const StandaloneModuleGraph = struct { return null; var end = @as([]u8, &trailer_bytes).ptr + read_amount - @sizeOf(usize); - const total_byte_count: usize = @bitCast(usize, end[0..8].*); + const total_byte_count: usize = @as(usize, @bitCast(end[0..8].*)); if (total_byte_count > std.math.maxInt(u32) or total_byte_count < 4096) { // sanity check: the total byte count should never be more than 4 GB @@ -511,7 +511,7 @@ pub const StandaloneModuleGraph = struct { // if you have not a ton of code, we only do a single read() call if (Environment.allow_assert or offsets.byte_count > 1024 * 3) { const offset_from_end = trailer_bytes.len - (@intFromPtr(end) - @intFromPtr(@as([]u8, &trailer_bytes).ptr)); - std.os.lseek_END(self_exe, -@intCast(i64, offset_from_end + offsets.byte_count)) catch return null; + std.os.lseek_END(self_exe, -@as(i64, @intCast(offset_from_end + offsets.byte_count))) catch return null; if (comptime Environment.allow_assert) { // actually we just want to verify this logic is correct in development diff --git a/src/string.zig b/src/string.zig index 26cd86d8c..e592537c2 100644 --- a/src/string.zig +++ b/src/string.zig @@ -706,7 +706,7 @@ pub const String = extern struct { if (uchar > 255) return null; - buffer[i] = @intCast(u8, uchar); + buffer[i] = @as(u8, @intCast(uchar)); } inline for (0..values.len) |i| { @@ -747,7 +747,7 @@ pub const String = extern struct { if (uchar > 255) return null; - byte.* = @intCast(u8, uchar); + byte.* = @as(u8, @intCast(uchar)); } break :brk bytes; }; diff --git a/src/string_builder.zig b/src/string_builder.zig index 7aba5cd89..8acef5f07 100644 --- a/src/string_builder.zig +++ b/src/string_builder.zig @@ -64,7 +64,7 @@ pub fn add(this: *StringBuilder, len: usize) bun.StringPointer { if (comptime Environment.allow_assert) assert(this.len <= this.cap); - return bun.StringPointer{ .offset = @truncate(u32, start), .length = @truncate(u32, len) }; + return bun.StringPointer{ .offset = @as(u32, @truncate(start)), .length = @as(u32, @truncate(len)) }; } pub fn appendCount(this: *StringBuilder, slice: string) bun.StringPointer { if (comptime Environment.allow_assert) { @@ -80,7 +80,7 @@ pub fn appendCount(this: *StringBuilder, slice: string) bun.StringPointer { if (comptime Environment.allow_assert) assert(this.len <= this.cap); - return bun.StringPointer{ .offset = @truncate(u32, start), .length = @truncate(u32, slice.len) }; + return bun.StringPointer{ .offset = @as(u32, @truncate(start)), .length = @as(u32, @truncate(slice.len)) }; } pub fn fmt(this: *StringBuilder, comptime str: string, args: anytype) string { @@ -112,8 +112,8 @@ pub fn fmtAppendCount(this: *StringBuilder, comptime str: string, args: anytype) if (comptime Environment.allow_assert) assert(this.len <= this.cap); return bun.StringPointer{ - .offset = @truncate(u32, off), - .length = @truncate(u32, out.len), + .offset = @as(u32, @truncate(off)), + .length = @as(u32, @truncate(out.len)), }; } diff --git a/src/string_immutable.zig b/src/string_immutable.zig index 6c4eaa943..9ca60c860 100644 --- a/src/string_immutable.zig +++ b/src/string_immutable.zig @@ -52,16 +52,16 @@ pub fn indexOfAny(slice: string, comptime str: anytype) ?OptionalUsize { if (comptime Environment.enableSIMD) { while (remaining.len >= ascii_vector_size) { const vec: AsciiVector = remaining[0..ascii_vector_size].*; - var cmp = @bitCast(AsciiVectorU1, vec == @splat(ascii_vector_size, @as(u8, str[0]))); + var cmp: AsciiVectorU1 = @bitCast(vec == @as(AsciiVector, @splat(@as(u8, str[0])))); inline for (str[1..]) |c| { - cmp |= @bitCast(AsciiVectorU1, vec == @splat(ascii_vector_size, @as(u8, c))); + cmp |= @bitCast(vec == @as(AsciiVector, @splat(@as(u8, c)))); } if (@reduce(.Max, cmp) > 0) { - const bitmask = @bitCast(AsciiVectorInt, cmp); + const bitmask = @as(AsciiVectorInt, @bitCast(cmp)); const first = @ctz(bitmask); - return @intCast(OptionalUsize, first + slice.len - remaining.len); + return @as(OptionalUsize, @intCast(first + slice.len - remaining.len)); } remaining = remaining[ascii_vector_size..]; @@ -72,7 +72,7 @@ pub fn indexOfAny(slice: string, comptime str: anytype) ?OptionalUsize { for (remaining, 0..) |c, i| { if (strings.indexOfChar(str, c) != null) { - return @intCast(OptionalUsize, i + slice.len - remaining.len); + return @as(OptionalUsize, @intCast(i + slice.len - remaining.len)); } } @@ -82,7 +82,7 @@ pub fn indexOfAny16(self: []const u16, comptime str: anytype) ?OptionalUsize { for (self, 0..) |c, i| { inline for (str) |a| { if (c == a) { - return @intCast(OptionalUsize, i); + return @as(OptionalUsize, @intCast(i)); } } } @@ -94,7 +94,7 @@ pub inline fn containsComptime(self: string, comptime str: string) bool { const Int = std.meta.Int(.unsigned, str.len * 8); while (remain.len >= comptime str.len) { - if (@bitCast(Int, remain.ptr[0..str.len].*) == @bitCast(Int, str.ptr[0..str.len].*)) { + if (@as(Int, @bitCast(remain.ptr[0..str.len].*)) == @as(Int, @bitCast(str.ptr[0..str.len].*))) { return true; } remain = remain[str.len..]; @@ -179,7 +179,7 @@ pub fn repeatingBuf(self: []u8, char: u8) void { pub fn indexOfCharNeg(self: string, char: u8) i32 { var i: u32 = 0; while (i < self.len) : (i += 1) { - if (self[i] == char) return @intCast(i32, i); + if (self[i] == char) return @as(i32, @intCast(i)); } return -1; } @@ -259,7 +259,7 @@ pub const FormatValidIdentifier = struct { pub fn indexOfSigned(self: string, str: string) i32 { const i = std.mem.indexOf(u8, self, str) orelse return -1; - return @intCast(i32, i); + return @as(i32, @intCast(i)); } pub inline fn lastIndexOfChar(self: string, char: u8) ?usize { @@ -291,7 +291,7 @@ pub inline fn indexOf(self: string, str: string) ?usize { const i = @intFromPtr(start) - @intFromPtr(self_ptr); std.debug.assert(i < self_len); - return @intCast(usize, i); + return @as(usize, @intCast(i)); } pub fn split(self: string, delimiter: string) SplitIterator { @@ -400,7 +400,7 @@ pub const StringOrTinyString = struct { // This is a switch expression instead of a statement to make sure it uses the faster assembly return switch (this.is_tiny_string) { 1 => this.remainder_buf[0..this.remainder_len], - 0 => @ptrFromInt([*]const u8, std.mem.readIntNative(usize, this.remainder_buf[0..@sizeOf(usize)]))[0..std.mem.readIntNative(usize, this.remainder_buf[@sizeOf(usize) .. @sizeOf(usize) * 2])], + 0 => @as([*]const u8, @ptrFromInt(std.mem.readIntNative(usize, this.remainder_buf[0..@sizeOf(usize)])))[0..std.mem.readIntNative(usize, this.remainder_buf[@sizeOf(usize) .. @sizeOf(usize) * 2])], }; } @@ -436,7 +436,7 @@ pub const StringOrTinyString = struct { @setRuntimeSafety(false); var tiny = StringOrTinyString{ .is_tiny_string = 1, - .remainder_len = @truncate(u7, stringy.len), + .remainder_len = @as(u7, @truncate(stringy.len)), }; @memcpy(tiny.remainder_buf[0..tiny.remainder_len], stringy[0..tiny.remainder_len]); return tiny; @@ -462,7 +462,7 @@ pub const StringOrTinyString = struct { @setRuntimeSafety(false); var tiny = StringOrTinyString{ .is_tiny_string = 1, - .remainder_len = @truncate(u7, stringy.len), + .remainder_len = @as(u7, @truncate(stringy.len)), }; _ = copyLowercase(stringy, &tiny.remainder_buf); return tiny; @@ -734,9 +734,9 @@ pub fn endsWithAny(self: string, str: string) bool { // - Strips ANSI output as it will appear malformed. pub fn githubActionWriter(writer: anytype, self: string) !void { var offset: usize = 0; - const end = @truncate(u32, self.len); + const end = @as(u32, @truncate(self.len)); while (offset < end) { - if (indexOfNewlineOrNonASCIIOrANSI(self, @truncate(u32, offset))) |i| { + if (indexOfNewlineOrNonASCIIOrANSI(self, @as(u32, @truncate(offset)))) |i| { const byte = self[i]; if (byte > 0x7F) { offset += @max(wtf8ByteSequenceLength(byte), 1); @@ -842,11 +842,11 @@ pub fn countChar(self: string, char: u8) usize { var total: usize = 0; var remaining = self; - const splatted: AsciiVector = @splat(ascii_vector_size, char); + const splatted: AsciiVector = @splat(char); while (remaining.len >= 16) { const vec: AsciiVector = remaining[0..ascii_vector_size].*; - const cmp = @popCount(@bitCast(@Vector(ascii_vector_size, u1), vec == splatted)); + const cmp = @popCount(@as(@Vector(ascii_vector_size, u1), @bitCast(vec == splatted))); total += @as(usize, @reduce(.Add, cmp)); remaining = remaining[ascii_vector_size..]; } @@ -936,7 +936,7 @@ inline fn eqlComptimeCheckLenWithKnownType(comptime Type: type, a: []const Type, comptime var b_ptr: usize = 0; inline while (dword_length > 0) : (dword_length -= 1) { - if (@bitCast(usize, a[b_ptr..][0 .. @sizeOf(usize) / divisor].*) != comptime @bitCast(usize, (slice[b_ptr..])[0 .. @sizeOf(usize) / divisor].*)) + if (@as(usize, @bitCast(a[b_ptr..][0 .. @sizeOf(usize) / divisor].*)) != comptime @as(usize, @bitCast((slice[b_ptr..])[0 .. @sizeOf(usize) / divisor].*))) return false; comptime b_ptr += @sizeOf(usize); if (comptime b_ptr == b.len) return true; @@ -944,7 +944,7 @@ inline fn eqlComptimeCheckLenWithKnownType(comptime Type: type, a: []const Type, if (comptime @sizeOf(usize) == 8) { if (comptime (len & 4) != 0) { - if (@bitCast(u32, a[b_ptr..][0 .. @sizeOf(u32) / divisor].*) != comptime @bitCast(u32, (slice[b_ptr..])[0 .. @sizeOf(u32) / divisor].*)) + if (@as(u32, @bitCast(a[b_ptr..][0 .. @sizeOf(u32) / divisor].*)) != comptime @as(u32, @bitCast((slice[b_ptr..])[0 .. @sizeOf(u32) / divisor].*))) return false; comptime b_ptr += @sizeOf(u32); @@ -954,7 +954,7 @@ inline fn eqlComptimeCheckLenWithKnownType(comptime Type: type, a: []const Type, } if (comptime (len & 2) != 0) { - if (@bitCast(u16, a[b_ptr..][0 .. @sizeOf(u16) / divisor].*) != comptime @bitCast(u16, slice[b_ptr .. b_ptr + (@sizeOf(u16) / divisor)].*)) + if (@as(u16, @bitCast(a[b_ptr..][0 .. @sizeOf(u16) / divisor].*)) != comptime @as(u16, @bitCast(slice[b_ptr .. b_ptr + (@sizeOf(u16) / divisor)].*))) return false; comptime b_ptr += @sizeOf(u16); @@ -1027,7 +1027,7 @@ pub fn eqlLong(a_str: string, b_str: string, comptime check_len: bool) bool { { var dword_length = len >> 3; while (dword_length > 0) : (dword_length -= 1) { - if (@bitCast(usize, a[0..@sizeOf(usize)].*) != @bitCast(usize, b[0..@sizeOf(usize)].*)) + if (@as(usize, @bitCast(a[0..@sizeOf(usize)].*)) != @as(usize, @bitCast(b[0..@sizeOf(usize)].*))) return false; b += @sizeOf(usize); if (b == end) return true; @@ -1037,7 +1037,7 @@ pub fn eqlLong(a_str: string, b_str: string, comptime check_len: bool) bool { if (comptime @sizeOf(usize) == 8) { if ((len & 4) != 0) { - if (@bitCast(u32, a[0..@sizeOf(u32)].*) != @bitCast(u32, b[0..@sizeOf(u32)].*)) + if (@as(u32, @bitCast(a[0..@sizeOf(u32)].*)) != @as(u32, @bitCast(b[0..@sizeOf(u32)].*))) return false; b += @sizeOf(u32); @@ -1047,7 +1047,7 @@ pub fn eqlLong(a_str: string, b_str: string, comptime check_len: bool) bool { } if ((len & 2) != 0) { - if (@bitCast(u16, a[0..@sizeOf(u16)].*) != @bitCast(u16, b[0..@sizeOf(u16)].*)) + if (@as(u16, @bitCast(a[0..@sizeOf(u16)].*)) != @as(u16, @bitCast(b[0..@sizeOf(u16)].*))) return false; b += @sizeOf(u16); @@ -1098,7 +1098,7 @@ pub inline fn joinBuf(out: []u8, parts: anytype, comptime parts_len: usize) []u8 pub fn index(self: string, str: string) i32 { if (strings.indexOf(self, str)) |i| { - return @intCast(i32, i); + return @as(i32, @intCast(i)); } else { return -1; } @@ -1117,12 +1117,12 @@ pub fn toUTF8Alloc(allocator: std.mem.Allocator, js: []const u16) !string { } pub inline fn appendUTF8MachineWordToUTF16MachineWord(output: *[@sizeOf(usize) / 2]u16, input: *const [@sizeOf(usize) / 2]u8) void { - output[0 .. @sizeOf(usize) / 2].* = @bitCast( + output[0 .. @sizeOf(usize) / 2].* = @as( [4]u16, - @as( + @bitCast(@as( @Vector(4, u16), - @bitCast(@Vector(4, u8), input[0 .. @sizeOf(usize) / 2].*), - ), + @as(@Vector(4, u8), @bitCast(input[0 .. @sizeOf(usize) / 2].*)), + )), ); } @@ -1160,7 +1160,7 @@ pub fn copyU8IntoU16WithAlignment(comptime alignment: u21, output_: []align(alig } if (std.mem.isAligned(@intFromPtr(output.ptr), @alignOf(u16)) and input.len > 0) { - copyU8IntoU16(@alignCast(@alignOf(u16), output.ptr)[0..output.len], input); + copyU8IntoU16(@as([*]u16, @alignCast(output.ptr))[0..output.len], input); return; } @@ -1213,7 +1213,7 @@ pub inline fn copyU16IntoU8(output_: []u8, comptime InputType: type, input_: Inp while (last_vector_ptr != input_ptr) { const input_vec1: @Vector(group, u16) = input_ptr[0..group].*; inline for (0..group) |i| { - output_ptr[i] = @truncate(u8, input_vec1[i]); + output_ptr[i] = @as(u8, @truncate(input_vec1[i])); } output_ptr += group; @@ -1227,7 +1227,7 @@ pub inline fn copyU16IntoU8(output_: []u8, comptime InputType: type, input_: Inp const last_input_ptr = input_ptr + @min(input.len, output.len); while (last_input_ptr != input_ptr) { - output_ptr[0] = @truncate(u8, input_ptr[0]); + output_ptr[0] = @as(u8, @truncate(input_ptr[0])); output_ptr += 1; input_ptr += 1; } @@ -1239,7 +1239,7 @@ pub fn copyLatin1IntoASCII(dest: []u8, src: []const u8) void { var remain = src; var to = dest; - const non_ascii_offset = strings.firstNonASCII(remain) orelse @truncate(u32, remain.len); + const non_ascii_offset = strings.firstNonASCII(remain) orelse @as(u32, @truncate(remain.len)); if (non_ascii_offset > 0) { @memcpy(to[0..non_ascii_offset], remain[0..non_ascii_offset]); remain = remain[non_ascii_offset..]; @@ -1277,7 +1277,7 @@ pub fn copyLatin1IntoASCII(dest: []u8, src: []const u8) void { } for (to) |*to_byte| { - to_byte.* = @as(u8, @truncate(u7, remain[0])); + to_byte.* = @as(u8, @as(u7, @truncate(remain[0]))); remain = remain[1..]; } } @@ -1349,7 +1349,7 @@ pub fn toUTF16Alloc(allocator: std.mem.Allocator, bytes: []const u8, comptime fa //#define U16_LENGTH(c) ((uint32_t)(c)<=0xffff ? 1 : 2) switch (replacement.code_point) { 0...0xffff => |c| { - try output.append(@intCast(u16, c)); + try output.append(@as(u16, @intCast(c))); }, else => |c| { try output.appendSlice(&[_]u16{ strings.u16Lead(c), strings.u16Trail(c) }); @@ -1384,7 +1384,7 @@ pub fn toUTF16Alloc(allocator: std.mem.Allocator, bytes: []const u8, comptime fa //#define U16_LENGTH(c) ((uint32_t)(c)<=0xffff ? 1 : 2) switch (replacement.code_point) { 0...0xffff => |c| { - try output.append(@intCast(u16, c)); + try output.append(@as(u16, @intCast(c))); }, else => |c| { try output.appendSlice(&[_]u16{ strings.u16Lead(c), strings.u16Trail(c) }); @@ -1529,7 +1529,7 @@ pub fn toUTF8ListWithTypeBun(list_: std.ArrayList(u8), comptime Type: type, utf1 utf16_remaining = utf16_remaining[replacement.len..]; const count: usize = replacement.utf8Width(); - try list.ensureTotalCapacityPrecise(i + count + list.items.len + @intFromFloat(usize, (@floatFromInt(f64, @truncate(u52, utf16_remaining.len)) * 1.2))); + try list.ensureTotalCapacityPrecise(i + count + list.items.len + @as(usize, @intFromFloat((@as(f64, @floatFromInt(@as(u52, @truncate(utf16_remaining.len)))) * 1.2)))); list.items.len += i; copyU16IntoU8( @@ -1597,7 +1597,7 @@ pub fn allocateLatin1IntoUTF8WithList(list_: std.ArrayList(u8), offset_into_list // zig or LLVM doesn't do @ctz nicely with SIMD if (comptime ascii_vector_size >= 8) { { - const bytes = @bitCast(Int, latin1[0..size].*); + const bytes = @as(Int, @bitCast(latin1[0..size].*)); // https://dotat.at/@/2022-06-27-tolower-swar.html const mask = bytes & 0x8080808080808080; @@ -1605,19 +1605,19 @@ pub fn allocateLatin1IntoUTF8WithList(list_: std.ArrayList(u8), offset_into_list const first_set_byte = @ctz(mask) / 8; if (comptime Environment.allow_assert) std.debug.assert(latin1[first_set_byte] >= 127); - buf[0..size].* = @bitCast([size]u8, bytes); + buf[0..size].* = @as([size]u8, @bitCast(bytes)); buf = buf[first_set_byte..]; latin1 = latin1[first_set_byte..]; break :inner; } - buf[0..size].* = @bitCast([size]u8, bytes); + buf[0..size].* = @as([size]u8, @bitCast(bytes)); latin1 = latin1[size..]; buf = buf[size..]; } if (comptime ascii_vector_size >= 16) { - const bytes = @bitCast(Int, latin1[0..size].*); + const bytes = @as(Int, @bitCast(latin1[0..size].*)); // https://dotat.at/@/2022-06-27-tolower-swar.html const mask = bytes & 0x8080808080808080; @@ -1625,7 +1625,7 @@ pub fn allocateLatin1IntoUTF8WithList(list_: std.ArrayList(u8), offset_into_list const first_set_byte = @ctz(mask) / 8; if (comptime Environment.allow_assert) std.debug.assert(latin1[first_set_byte] >= 127); - buf[0..size].* = @bitCast([size]u8, bytes); + buf[0..size].* = @as([size]u8, @bitCast(bytes)); buf = buf[first_set_byte..]; latin1 = latin1[first_set_byte..]; break :inner; @@ -1635,7 +1635,7 @@ pub fn allocateLatin1IntoUTF8WithList(list_: std.ArrayList(u8), offset_into_list unreachable; } - buf[0..ascii_vector_size].* = @bitCast([ascii_vector_size]u8, vec)[0..ascii_vector_size].*; + buf[0..ascii_vector_size].* = @as([ascii_vector_size]u8, @bitCast(vec))[0..ascii_vector_size].*; latin1 = latin1[ascii_vector_size..]; buf = buf[ascii_vector_size..]; } @@ -1644,7 +1644,7 @@ pub fn allocateLatin1IntoUTF8WithList(list_: std.ArrayList(u8), offset_into_list const Int = u64; const size = @sizeOf(Int); - const bytes = @bitCast(Int, latin1[0..size].*); + const bytes = @as(Int, @bitCast(latin1[0..size].*)); // https://dotat.at/@/2022-06-27-tolower-swar.html const mask = bytes & 0x8080808080808080; @@ -1652,13 +1652,13 @@ pub fn allocateLatin1IntoUTF8WithList(list_: std.ArrayList(u8), offset_into_list const first_set_byte = @ctz(mask) / 8; if (comptime Environment.allow_assert) std.debug.assert(latin1[first_set_byte] >= 127); - buf[0..size].* = @bitCast([size]u8, bytes); + buf[0..size].* = @as([size]u8, @bitCast(bytes)); latin1 = latin1[first_set_byte..]; buf = buf[first_set_byte..]; break :inner; } - buf[0..size].* = @bitCast([size]u8, bytes); + buf[0..size].* = @as([size]u8, @bitCast(bytes)); latin1 = latin1[size..]; buf = buf[size..]; } @@ -1808,7 +1808,7 @@ pub fn copyLatin1IntoUTF8(buf_: []u8, comptime Type: type, latin1_: Type) Encode pub fn copyLatin1IntoUTF8StopOnNonASCII(buf_: []u8, comptime Type: type, latin1_: Type, comptime stop: bool) EncodeIntoResult { if (comptime bun.FeatureFlags.latin1_is_now_ascii) { - const to_copy = @truncate(u32, @min(buf_.len, latin1_.len)); + const to_copy = @as(u32, @truncate(@min(buf_.len, latin1_.len))); @memcpy(buf_[0..to_copy], latin1_[0..to_copy]); return .{ .written = to_copy, .read = to_copy }; @@ -1834,11 +1834,11 @@ pub fn copyLatin1IntoUTF8StopOnNonASCII(buf_: []u8, comptime Type: type, latin1_ const size = @sizeOf(Int); { - const bytes = @bitCast(Int, latin1[0..size].*); + const bytes = @as(Int, @bitCast(latin1[0..size].*)); // https://dotat.at/@/2022-06-27-tolower-swar.html const mask = bytes & 0x8080808080808080; - buf[0..size].* = @bitCast([size]u8, bytes); + buf[0..size].* = @as([size]u8, @bitCast(bytes)); if (mask > 0) { const first_set_byte = @ctz(mask) / 8; @@ -1854,11 +1854,11 @@ pub fn copyLatin1IntoUTF8StopOnNonASCII(buf_: []u8, comptime Type: type, latin1_ } if (comptime ascii_vector_size >= 16) { - const bytes = @bitCast(Int, latin1[0..size].*); + const bytes = @as(Int, @bitCast(latin1[0..size].*)); // https://dotat.at/@/2022-06-27-tolower-swar.html const mask = bytes & 0x8080808080808080; - buf[0..size].* = @bitCast([size]u8, bytes); + buf[0..size].* = @as([size]u8, @bitCast(bytes)); if (comptime Environment.allow_assert) std.debug.assert(mask > 0); const first_set_byte = @ctz(mask) / 8; @@ -1872,7 +1872,7 @@ pub fn copyLatin1IntoUTF8StopOnNonASCII(buf_: []u8, comptime Type: type, latin1_ unreachable; } - buf[0..ascii_vector_size].* = @bitCast([ascii_vector_size]u8, vec)[0..ascii_vector_size].*; + buf[0..ascii_vector_size].* = @as([ascii_vector_size]u8, @bitCast(vec))[0..ascii_vector_size].*; latin1 = latin1[ascii_vector_size..]; buf = buf[ascii_vector_size..]; } @@ -1881,8 +1881,8 @@ pub fn copyLatin1IntoUTF8StopOnNonASCII(buf_: []u8, comptime Type: type, latin1_ const Int = u64; const size = @sizeOf(Int); while (@min(buf.len, latin1.len) >= size) { - const bytes = @bitCast(Int, latin1[0..size].*); - buf[0..size].* = @bitCast([size]u8, bytes); + const bytes = @as(Int, @bitCast(latin1[0..size].*)); + buf[0..size].* = @as([size]u8, @bitCast(bytes)); // https://dotat.at/@/2022-06-27-tolower-swar.html @@ -1931,8 +1931,8 @@ pub fn copyLatin1IntoUTF8StopOnNonASCII(buf_: []u8, comptime Type: type, latin1_ } return .{ - .written = @truncate(u32, buf_.len - buf.len), - .read = @truncate(u32, latin1_.len - latin1.len), + .written = @as(u32, @truncate(buf_.len - buf.len)), + .read = @as(u32, @truncate(latin1_.len - latin1.len)), }; } @@ -1959,16 +1959,14 @@ pub fn elementLengthLatin1IntoUTF8(comptime Type: type, latin1_: Type) usize { const vec: AsciiVector = latin1[0..ascii_vector_size].*; // Shifting a unsigned 8 bit integer to the right by 7 bits always produces a value of 0 or 1. - const cmp = vec >> @splat( - ascii_vector_size, + const cmp = vec >> @as(AsciiVector, @splat( @as(u8, 7), - ); + )); // Anding that value rather than converting it into a @Vector(16, u1) produces better code from LLVM. - const mask = cmp & @splat( - ascii_vector_size, + const mask: AsciiVector = cmp & @as(AsciiVector, @splat( @as(u8, 1), - ); + )); total_non_ascii_count += @as(usize, @reduce(.Add, mask)); latin1 = latin1[ascii_vector_size..]; @@ -1992,7 +1990,7 @@ pub fn copyLatin1IntoUTF16(comptime Buffer: type, buf_: Buffer, comptime Type: t var buf = buf_; var latin1 = latin1_; while (buf.len > 0 and latin1.len > 0) { - const to_write = strings.firstNonASCII(latin1) orelse @truncate(u32, @min(latin1.len, buf.len)); + const to_write = strings.firstNonASCII(latin1) orelse @as(u32, @truncate(@min(latin1.len, buf.len))); if (comptime std.meta.alignment(Buffer) != @alignOf(u16)) { strings.copyU8IntoU16WithAlignment(std.meta.alignment(Buffer), buf, latin1[0..to_write]); } else { @@ -2009,8 +2007,8 @@ pub fn copyLatin1IntoUTF16(comptime Buffer: type, buf_: Buffer, comptime Type: t } return .{ - .read = @truncate(u32, buf_.len - buf.len), - .written = @truncate(u32, latin1_.len - latin1.len), + .read = @as(u32, @truncate(buf_.len - buf.len)), + .written = @as(u32, @truncate(latin1_.len - latin1.len)), }; } @@ -2024,7 +2022,7 @@ pub fn elementLengthLatin1IntoUTF16(comptime Type: type, latin1_: Type) usize { var latin1 = latin1_; while (latin1.len > 0) { const function = comptime if (std.meta.Child(Type) == u8) strings.firstNonASCIIWithType else strings.firstNonASCII16; - const to_write = function(Type, latin1) orelse @truncate(u32, latin1.len); + const to_write = function(Type, latin1) orelse @as(u32, @truncate(latin1.len)); count += to_write; latin1 = latin1[to_write..]; if (latin1.len > 0) { @@ -2186,7 +2184,7 @@ pub fn escapeHTMLForLatin1Input(allocator: std.mem.Allocator, latin1: []const u8 const vecs: [vec_chars.len]AsciiVector = comptime brk: { var _vecs: [vec_chars.len]AsciiVector = undefined; for (vec_chars, 0..) |c, i| { - _vecs[i] = @splat(ascii_vector_size, c); + _vecs[i] = @splat(c); } break :brk _vecs; }; @@ -2204,11 +2202,11 @@ pub fn escapeHTMLForLatin1Input(allocator: std.mem.Allocator, latin1: []const u8 scan_and_allocate_lazily: while (remaining.len >= ascii_vector_size) { if (comptime Environment.allow_assert) std.debug.assert(!any_needs_escape); const vec: AsciiVector = remaining[0..ascii_vector_size].*; - if (@reduce(.Max, @bitCast(AsciiVectorU1, (vec == vecs[0])) | - @bitCast(AsciiVectorU1, (vec == vecs[1])) | - @bitCast(AsciiVectorU1, (vec == vecs[2])) | - @bitCast(AsciiVectorU1, (vec == vecs[3])) | - @bitCast(AsciiVectorU1, (vec == vecs[4]))) == 1) + if (@reduce(.Max, @as(AsciiVectorU1, @bitCast((vec == vecs[0]))) | + @as(AsciiVectorU1, @bitCast((vec == vecs[1]))) | + @as(AsciiVectorU1, @bitCast((vec == vecs[2]))) | + @as(AsciiVectorU1, @bitCast((vec == vecs[3]))) | + @as(AsciiVectorU1, @bitCast((vec == vecs[4])))) == 1) { if (comptime Environment.allow_assert) std.debug.assert(buf.capacity == 0); @@ -2264,11 +2262,11 @@ pub fn escapeHTMLForLatin1Input(allocator: std.mem.Allocator, latin1: []const u8 // so we'll go ahead and copy the buffer into a new buffer while (remaining.len >= ascii_vector_size) { const vec: AsciiVector = remaining[0..ascii_vector_size].*; - if (@reduce(.Max, @bitCast(AsciiVectorU1, (vec == vecs[0])) | - @bitCast(AsciiVectorU1, (vec == vecs[1])) | - @bitCast(AsciiVectorU1, (vec == vecs[2])) | - @bitCast(AsciiVectorU1, (vec == vecs[3])) | - @bitCast(AsciiVectorU1, (vec == vecs[4]))) == 1) + if (@reduce(.Max, @as(AsciiVectorU1, @bitCast((vec == vecs[0]))) | + @as(AsciiVectorU1, @bitCast((vec == vecs[1]))) | + @as(AsciiVectorU1, @bitCast((vec == vecs[2]))) | + @as(AsciiVectorU1, @bitCast((vec == vecs[3]))) | + @as(AsciiVectorU1, @bitCast((vec == vecs[4])))) == 1) { buf.ensureUnusedCapacity(ascii_vector_size + 6) catch unreachable; comptime var i: usize = 0; @@ -2448,7 +2446,7 @@ pub fn escapeHTMLForUTF16Input(allocator: std.mem.Allocator, utf16: []const u16) const vecs: [vec_chars.len]AsciiU16Vector = brk: { var _vecs: [vec_chars.len]AsciiU16Vector = undefined; for (vec_chars, 0..) |c, i| { - _vecs[i] = @splat(ascii_u16_vector_size, @as(u16, c)); + _vecs[i] = @splat(@as(u16, c)); } break :brk _vecs; }; @@ -2457,12 +2455,12 @@ pub fn escapeHTMLForUTF16Input(allocator: std.mem.Allocator, utf16: []const u16) scan_and_allocate_lazily: while (remaining.len >= ascii_u16_vector_size) { if (comptime Environment.allow_assert) std.debug.assert(!any_needs_escape); const vec: AsciiU16Vector = remaining[0..ascii_u16_vector_size].*; - if (@reduce(.Max, @bitCast(AsciiVectorU16U1, vec > @splat(ascii_u16_vector_size, @as(u16, 127))) | - @bitCast(AsciiVectorU16U1, (vec == vecs[0])) | - @bitCast(AsciiVectorU16U1, (vec == vecs[1])) | - @bitCast(AsciiVectorU16U1, (vec == vecs[2])) | - @bitCast(AsciiVectorU16U1, (vec == vecs[3])) | - @bitCast(AsciiVectorU16U1, (vec == vecs[4]))) == 1) + if (@reduce(.Max, @as(AsciiVectorU16U1, @bitCast(vec > @as(AsciiU16Vector, @splat(@as(u16, 127))))) | + @as(AsciiVectorU16U1, @bitCast((vec == vecs[0]))) | + @as(AsciiVectorU16U1, @bitCast((vec == vecs[1]))) | + @as(AsciiVectorU16U1, @bitCast((vec == vecs[2]))) | + @as(AsciiVectorU16U1, @bitCast((vec == vecs[3]))) | + @as(AsciiVectorU16U1, @bitCast((vec == vecs[4])))) == 1) { var i: u16 = 0; lazy: { @@ -2536,12 +2534,12 @@ pub fn escapeHTMLForUTF16Input(allocator: std.mem.Allocator, utf16: []const u16) // so we'll go ahead and copy the buffer into a new buffer while (remaining.len >= ascii_u16_vector_size) { const vec: AsciiU16Vector = remaining[0..ascii_u16_vector_size].*; - if (@reduce(.Max, @bitCast(AsciiVectorU16U1, vec > @splat(ascii_u16_vector_size, @as(u16, 127))) | - @bitCast(AsciiVectorU16U1, (vec == vecs[0])) | - @bitCast(AsciiVectorU16U1, (vec == vecs[1])) | - @bitCast(AsciiVectorU16U1, (vec == vecs[2])) | - @bitCast(AsciiVectorU16U1, (vec == vecs[3])) | - @bitCast(AsciiVectorU16U1, (vec == vecs[4]))) == 1) + if (@reduce(.Max, @as(AsciiVectorU16U1, @bitCast(vec > @as(AsciiU16Vector, @splat(@as(u16, 127))))) | + @as(AsciiVectorU16U1, @bitCast((vec == vecs[0]))) | + @as(AsciiVectorU16U1, @bitCast((vec == vecs[1]))) | + @as(AsciiVectorU16U1, @bitCast((vec == vecs[2]))) | + @as(AsciiVectorU16U1, @bitCast((vec == vecs[3]))) | + @as(AsciiVectorU16U1, @bitCast((vec == vecs[4])))) == 1) { buf.ensureUnusedCapacity(ascii_u16_vector_size) catch unreachable; var i: u16 = 0; @@ -2698,9 +2696,9 @@ test "copyLatin1IntoUTF8 - latin1" { } pub fn latin1ToCodepointAssumeNotASCII(char: u8, comptime CodePointType: type) CodePointType { - return @intCast( + return @as( CodePointType, - latin1ToCodepointBytesAssumeNotASCII16(char), + @intCast(latin1ToCodepointBytesAssumeNotASCII16(char)), ); } @@ -2741,12 +2739,12 @@ const latin1_to_utf16_conversion_table = [256]u16{ pub fn latin1ToCodepointBytesAssumeNotASCII(char: u32) [2]u8 { var bytes = [4]u8{ 0, 0, 0, 0 }; - _ = encodeWTF8Rune(&bytes, @intCast(i32, char)); + _ = encodeWTF8Rune(&bytes, @as(i32, @intCast(char))); return bytes[0..2].*; } pub fn latin1ToCodepointBytesAssumeNotASCII16(char: u32) u16 { - return latin1_to_utf16_conversion_table[@truncate(u8, char)]; + return latin1_to_utf16_conversion_table[@as(u8, @truncate(char))]; } pub fn copyUTF16IntoUTF8(buf: []u8, comptime Type: type, utf16: Type, comptime allow_partial_write: bool) EncodeIntoResult { @@ -2784,8 +2782,8 @@ pub fn copyUTF16IntoUTF8WithBuffer(buf: []u8, comptime Type: type, utf16: Type, if (result.status == .surrogate) break :brk; return EncodeIntoResult{ - .read = @truncate(u32, trimmed.len), - .written = @truncate(u32, result.count), + .read = @as(u32, @truncate(trimmed.len)), + .written = @as(u32, @truncate(result.count)), }; } } @@ -2810,7 +2808,7 @@ pub fn copyUTF16IntoUTF8WithBuffer(buf: []u8, comptime Type: type, utf16: Type, 2 => { if (remaining.len > 0) { //only first will be written - remaining[0] = @truncate(u8, 0xC0 | (replacement.code_point >> 6)); + remaining[0] = @as(u8, @truncate(0xC0 | (replacement.code_point >> 6))); remaining = remaining[remaining.len..]; } }, @@ -2818,12 +2816,12 @@ pub fn copyUTF16IntoUTF8WithBuffer(buf: []u8, comptime Type: type, utf16: Type, //only first to second written switch (remaining.len) { 1 => { - remaining[0] = @truncate(u8, 0xE0 | (replacement.code_point >> 12)); + remaining[0] = @as(u8, @truncate(0xE0 | (replacement.code_point >> 12))); remaining = remaining[remaining.len..]; }, 2 => { - remaining[0] = @truncate(u8, 0xE0 | (replacement.code_point >> 12)); - remaining[1] = @truncate(u8, 0x80 | (replacement.code_point >> 6) & 0x3F); + remaining[0] = @as(u8, @truncate(0xE0 | (replacement.code_point >> 12))); + remaining[1] = @as(u8, @truncate(0x80 | (replacement.code_point >> 6) & 0x3F)); remaining = remaining[remaining.len..]; }, else => {}, @@ -2833,18 +2831,18 @@ pub fn copyUTF16IntoUTF8WithBuffer(buf: []u8, comptime Type: type, utf16: Type, //only 1 to 3 written switch (remaining.len) { 1 => { - remaining[0] = @truncate(u8, 0xF0 | (replacement.code_point >> 18)); + remaining[0] = @as(u8, @truncate(0xF0 | (replacement.code_point >> 18))); remaining = remaining[remaining.len..]; }, 2 => { - remaining[0] = @truncate(u8, 0xF0 | (replacement.code_point >> 18)); - remaining[1] = @truncate(u8, 0x80 | (replacement.code_point >> 12) & 0x3F); + remaining[0] = @as(u8, @truncate(0xF0 | (replacement.code_point >> 18))); + remaining[1] = @as(u8, @truncate(0x80 | (replacement.code_point >> 12) & 0x3F)); remaining = remaining[remaining.len..]; }, 3 => { - remaining[0] = @truncate(u8, 0xF0 | (replacement.code_point >> 18)); - remaining[1] = @truncate(u8, 0x80 | (replacement.code_point >> 12) & 0x3F); - remaining[2] = @truncate(u8, 0x80 | (replacement.code_point >> 6) & 0x3F); + remaining[0] = @as(u8, @truncate(0xF0 | (replacement.code_point >> 18))); + remaining[1] = @as(u8, @truncate(0x80 | (replacement.code_point >> 12) & 0x3F)); + remaining[2] = @as(u8, @truncate(0x80 | (replacement.code_point >> 6) & 0x3F)); remaining = remaining[remaining.len..]; }, else => {}, @@ -2869,8 +2867,8 @@ pub fn copyUTF16IntoUTF8WithBuffer(buf: []u8, comptime Type: type, utf16: Type, } return .{ - .read = @truncate(u32, utf16.len - utf16_remaining.len), - .written = @truncate(u32, buf.len - remaining.len), + .read = @as(u32, @truncate(utf16.len - utf16_remaining.len)), + .written = @as(u32, @truncate(buf.len - remaining.len)), }; } @@ -2967,7 +2965,7 @@ pub fn encodeWTF8Rune(p: *[4]u8, r: i32) u3 { .{ p, u32, - @intCast(u32, r), + @as(u32, @intCast(r)), }, ); } @@ -2975,25 +2973,25 @@ pub fn encodeWTF8Rune(p: *[4]u8, r: i32) u3 { pub fn encodeWTF8RuneT(p: *[4]u8, comptime R: type, r: R) u3 { switch (r) { 0...0x7F => { - p[0] = @intCast(u8, r); + p[0] = @as(u8, @intCast(r)); return 1; }, (0x7F + 1)...0x7FF => { - p[0] = @truncate(u8, 0xC0 | ((r >> 6))); - p[1] = @truncate(u8, 0x80 | (r & 0x3F)); + p[0] = @as(u8, @truncate(0xC0 | ((r >> 6)))); + p[1] = @as(u8, @truncate(0x80 | (r & 0x3F))); return 2; }, (0x7FF + 1)...0xFFFF => { - p[0] = @truncate(u8, 0xE0 | ((r >> 12))); - p[1] = @truncate(u8, 0x80 | ((r >> 6) & 0x3F)); - p[2] = @truncate(u8, 0x80 | (r & 0x3F)); + p[0] = @as(u8, @truncate(0xE0 | ((r >> 12)))); + p[1] = @as(u8, @truncate(0x80 | ((r >> 6) & 0x3F))); + p[2] = @as(u8, @truncate(0x80 | (r & 0x3F))); return 3; }, else => { - p[0] = @truncate(u8, 0xF0 | ((r >> 18))); - p[1] = @truncate(u8, 0x80 | ((r >> 12) & 0x3F)); - p[2] = @truncate(u8, 0x80 | ((r >> 6) & 0x3F)); - p[3] = @truncate(u8, 0x80 | (r & 0x3F)); + p[0] = @as(u8, @truncate(0xF0 | ((r >> 18)))); + p[1] = @as(u8, @truncate(0x80 | ((r >> 12) & 0x3F))); + p[2] = @as(u8, @truncate(0x80 | ((r >> 6) & 0x3F))); + p[3] = @as(u8, @truncate(0x80 | (r & 0x3F))); return 4; }, } @@ -3070,17 +3068,17 @@ pub const ascii_vector_size = if (Environment.isWasm) 8 else 16; pub const ascii_u16_vector_size = if (Environment.isWasm) 4 else 8; pub const AsciiVectorInt = std.meta.Int(.unsigned, ascii_vector_size); pub const AsciiVectorIntU16 = std.meta.Int(.unsigned, ascii_u16_vector_size); -pub const max_16_ascii = @splat(ascii_vector_size, @as(u8, 127)); -pub const min_16_ascii = @splat(ascii_vector_size, @as(u8, 0x20)); -pub const max_u16_ascii = @splat(ascii_u16_vector_size, @as(u16, 127)); -pub const min_u16_ascii = @splat(ascii_u16_vector_size, @as(u16, 0x20)); +pub const max_16_ascii: @Vector(ascii_vector_size, u8) = @splat(@as(u8, 127)); +pub const min_16_ascii: @Vector(ascii_vector_size, u8) = @splat(@as(u8, 0x20)); +pub const max_u16_ascii: @Vector(ascii_u16_vector_size, u16) = @splat(@as(u16, 127)); +pub const min_u16_ascii: @Vector(ascii_u16_vector_size, u16) = @splat(@as(u16, 0x20)); pub const AsciiVector = @Vector(ascii_vector_size, u8); pub const AsciiVectorSmall = @Vector(8, u8); pub const AsciiVectorU1 = @Vector(ascii_vector_size, u1); pub const AsciiVectorU1Small = @Vector(8, u1); pub const AsciiVectorU16U1 = @Vector(ascii_u16_vector_size, u1); pub const AsciiU16Vector = @Vector(ascii_u16_vector_size, u16); -pub const max_4_ascii = @splat(4, @as(u8, 127)); +pub const max_4_ascii: @Vector(4, u8) = @splat(@as(u8, 127)); pub fn isAllASCII(slice: []const u8) bool { if (bun.FeatureFlags.use_simdutf) return bun.simdutf.validate.ascii(slice); @@ -3103,7 +3101,7 @@ pub fn isAllASCII(slice: []const u8) bool { const size = @sizeOf(Int); const remaining_last8 = slice.ptr + slice.len - (slice.len % size); while (remaining.ptr != remaining_last8) : (remaining.ptr += size) { - const bytes = @bitCast(Int, remaining[0..size].*); + const bytes = @as(Int, @bitCast(remaining[0..size].*)); // https://dotat.at/@/2022-06-27-tolower-swar.html const mask = bytes & 0x8080808080808080; @@ -3133,12 +3131,12 @@ pub fn isAllASCIISimple(comptime slice: []const u8) bool { //#define U16_LEAD(supplementary) (UChar)(((supplementary)>>10)+0xd7c0) pub inline fn u16Lead(supplementary: anytype) u16 { - return @intCast(u16, (supplementary >> 10) + 0xd7c0); + return @as(u16, @intCast((supplementary >> 10) + 0xd7c0)); } //#define U16_TRAIL(supplementary) (UChar)(((supplementary)&0x3ff)|0xdc00) pub inline fn u16Trail(supplementary: anytype) u16 { - return @intCast(u16, (supplementary & 0x3ff) | 0xdc00); + return @as(u16, @intCast((supplementary & 0x3ff) | 0xdc00)); } pub fn firstNonASCII(slice: []const u8) ?u32 { @@ -3154,7 +3152,7 @@ pub fn firstNonASCIIWithType(comptime Type: type, slice: Type) ?u32 { return null; } - return @truncate(u32, result.count); + return @as(u32, @truncate(result.count)); } if (comptime Environment.enableSIMD) { @@ -3171,7 +3169,7 @@ pub fn firstNonASCIIWithType(comptime Type: type, slice: Type) ?u32 { remaining.len -= @intFromPtr(remaining.ptr) - @intFromPtr(remaining_start); { - const bytes = @bitCast(Int, remaining[0..size].*); + const bytes = @as(Int, @bitCast(remaining[0..size].*)); // https://dotat.at/@/2022-06-27-tolower-swar.html const mask = bytes & 0x8080808080808080; @@ -3185,12 +3183,12 @@ pub fn firstNonASCIIWithType(comptime Type: type, slice: Type) ?u32 { } } - return @as(u32, first_set_byte) + @intCast(u32, slice.len - remaining.len); + return @as(u32, first_set_byte) + @as(u32, @intCast(slice.len - remaining.len)); } remaining = remaining[size..]; } { - const bytes = @bitCast(Int, remaining[0..size].*); + const bytes = @as(Int, @bitCast(remaining[0..size].*)); const mask = bytes & 0x8080808080808080; if (mask > 0) { @@ -3203,7 +3201,7 @@ pub fn firstNonASCIIWithType(comptime Type: type, slice: Type) ?u32 { } } - return @as(u32, first_set_byte) + @intCast(u32, slice.len - remaining.len); + return @as(u32, first_set_byte) + @as(u32, @intCast(slice.len - remaining.len)); } } unreachable; @@ -3233,7 +3231,7 @@ pub fn firstNonASCIIWithType(comptime Type: type, slice: Type) ?u32 { if (remaining.len >= size) { while (remaining.ptr != remaining_end) { - const bytes = @bitCast(Int, remaining[0..size].*); + const bytes = @as(Int, @bitCast(remaining[0..size].*)); // https://dotat.at/@/2022-06-27-tolower-swar.html const mask = bytes & 0x8080808080808080; @@ -3248,7 +3246,7 @@ pub fn firstNonASCIIWithType(comptime Type: type, slice: Type) ?u32 { } } - return @as(u32, first_set_byte) + @intCast(u32, slice.len - remaining.len); + return @as(u32, first_set_byte) + @as(u32, @intCast(slice.len - remaining.len)); } remaining.ptr += size; @@ -3262,7 +3260,7 @@ pub fn firstNonASCIIWithType(comptime Type: type, slice: Type) ?u32 { for (remaining) |*char| { if (char.* > 127) { // try to prevent it from reading the length of the slice - return @truncate(u32, @intFromPtr(char) - @intFromPtr(slice.ptr)); + return @as(u32, @truncate(@intFromPtr(char) - @intFromPtr(slice.ptr))); } } @@ -3279,16 +3277,16 @@ pub fn indexOfNewlineOrNonASCIIOrANSI(slice_: []const u8, offset: u32) ?u32 { if (comptime Environment.enableSIMD) { while (remaining.len >= ascii_vector_size) { const vec: AsciiVector = remaining[0..ascii_vector_size].*; - const cmp = @bitCast(AsciiVectorU1, (vec > max_16_ascii)) | @bitCast(AsciiVectorU1, (vec < min_16_ascii)) | - @bitCast(AsciiVectorU1, vec == @splat(ascii_vector_size, @as(u8, '\r'))) | - @bitCast(AsciiVectorU1, vec == @splat(ascii_vector_size, @as(u8, '\n'))) | - @bitCast(AsciiVectorU1, vec == @splat(ascii_vector_size, @as(u8, '\x1b'))); + const cmp = @as(AsciiVectorU1, @bitCast((vec > max_16_ascii))) | @as(AsciiVectorU1, @bitCast((vec < min_16_ascii))) | + @as(AsciiVectorU1, @bitCast(vec == @as(AsciiVector, @splat(@as(u8, '\r'))))) | + @as(AsciiVectorU1, @bitCast(vec == @as(AsciiVector, @splat(@as(u8, '\n'))))) | + @as(AsciiVectorU1, @bitCast(vec == @as(AsciiVector, @splat(@as(u8, '\x1b'))))); if (@reduce(.Max, cmp) > 0) { - const bitmask = @bitCast(AsciiVectorInt, cmp); + const bitmask = @as(AsciiVectorInt, @bitCast(cmp)); const first = @ctz(bitmask); - return @as(u32, first) + @intCast(u32, slice.len - remaining.len) + offset; + return @as(u32, first) + @as(u32, @intCast(slice.len - remaining.len)) + offset; } remaining = remaining[ascii_vector_size..]; @@ -3300,7 +3298,7 @@ pub fn indexOfNewlineOrNonASCIIOrANSI(slice_: []const u8, offset: u32) ?u32 { for (remaining) |*char_| { const char = char_.*; if (char > 127 or char < 0x20 or char == '\n' or char == '\r' or char == '\x1b') { - return @truncate(u32, (@intFromPtr(char_) - @intFromPtr(slice.ptr))) + offset; + return @as(u32, @truncate((@intFromPtr(char_) - @intFromPtr(slice.ptr)))) + offset; } } @@ -3328,15 +3326,15 @@ pub fn indexOfNewlineOrNonASCIICheckStart(slice_: []const u8, offset: u32, compt if (comptime Environment.enableSIMD) { while (remaining.len >= ascii_vector_size) { const vec: AsciiVector = remaining[0..ascii_vector_size].*; - const cmp = @bitCast(AsciiVectorU1, (vec > max_16_ascii)) | @bitCast(AsciiVectorU1, (vec < min_16_ascii)) | - @bitCast(AsciiVectorU1, vec == @splat(ascii_vector_size, @as(u8, '\r'))) | - @bitCast(AsciiVectorU1, vec == @splat(ascii_vector_size, @as(u8, '\n'))); + const cmp = @as(AsciiVectorU1, @bitCast((vec > max_16_ascii))) | @as(AsciiVectorU1, @bitCast((vec < min_16_ascii))) | + @as(AsciiVectorU1, @bitCast(vec == @as(AsciiVector, @splat(@as(u8, '\r'))))) | + @as(AsciiVectorU1, @bitCast(vec == @as(AsciiVector, @splat(@as(u8, '\n'))))); if (@reduce(.Max, cmp) > 0) { - const bitmask = @bitCast(AsciiVectorInt, cmp); + const bitmask = @as(AsciiVectorInt, @bitCast(cmp)); const first = @ctz(bitmask); - return @as(u32, first) + @intCast(u32, slice.len - remaining.len) + offset; + return @as(u32, first) + @as(u32, @intCast(slice.len - remaining.len)) + offset; } remaining = remaining[ascii_vector_size..]; @@ -3348,7 +3346,7 @@ pub fn indexOfNewlineOrNonASCIICheckStart(slice_: []const u8, offset: u32, compt for (remaining) |*char_| { const char = char_.*; if (char > 127 or char < 0x20 or char == '\n' or char == '\r') { - return @truncate(u32, (@intFromPtr(char_) - @intFromPtr(slice.ptr))) + offset; + return @as(u32, @truncate((@intFromPtr(char_) - @intFromPtr(slice.ptr)))) + offset; } } @@ -3365,10 +3363,10 @@ pub fn containsNewlineOrNonASCIIOrQuote(slice_: []const u8) bool { if (comptime Environment.enableSIMD) { while (remaining.len >= ascii_vector_size) { const vec: AsciiVector = remaining[0..ascii_vector_size].*; - const cmp = @bitCast(AsciiVectorU1, (vec > max_16_ascii)) | @bitCast(AsciiVectorU1, (vec < min_16_ascii)) | - @bitCast(AsciiVectorU1, vec == @splat(ascii_vector_size, @as(u8, '\r'))) | - @bitCast(AsciiVectorU1, vec == @splat(ascii_vector_size, @as(u8, '\n'))) | - @bitCast(AsciiVectorU1, vec == @splat(ascii_vector_size, @as(u8, '"'))); + const cmp = @as(AsciiVectorU1, @bitCast((vec > max_16_ascii))) | @as(AsciiVectorU1, @bitCast((vec < min_16_ascii))) | + @as(AsciiVectorU1, @bitCast(vec == @as(AsciiVector, @splat(@as(u8, '\r'))))) | + @as(AsciiVectorU1, @bitCast(vec == @as(AsciiVector, @splat(@as(u8, '\n'))))) | + @as(AsciiVectorU1, @bitCast(vec == @as(AsciiVector, @splat(@as(u8, '"'))))); if (@reduce(.Max, cmp) > 0) { return true; @@ -3402,15 +3400,15 @@ pub fn indexOfNeedsEscape(slice: []const u8) ?u32 { if (comptime Environment.enableSIMD) { while (remaining.len >= ascii_vector_size) { const vec: AsciiVector = remaining[0..ascii_vector_size].*; - const cmp = @bitCast(AsciiVectorU1, (vec > max_16_ascii)) | @bitCast(AsciiVectorU1, (vec < min_16_ascii)) | - @bitCast(AsciiVectorU1, vec == @splat(ascii_vector_size, @as(u8, '\\'))) | - @bitCast(AsciiVectorU1, vec == @splat(ascii_vector_size, @as(u8, '"'))); + const cmp = @as(AsciiVectorU1, @bitCast((vec > max_16_ascii))) | @as(AsciiVectorU1, @bitCast((vec < min_16_ascii))) | + @as(AsciiVectorU1, @bitCast(vec == @as(AsciiVector, @splat(@as(u8, '\\'))))) | + @as(AsciiVectorU1, @bitCast(vec == @as(AsciiVector, @splat(@as(u8, '"'))))); if (@reduce(.Max, cmp) > 0) { - const bitmask = @bitCast(AsciiVectorInt, cmp); + const bitmask = @as(AsciiVectorInt, @bitCast(cmp)); const first = @ctz(bitmask); - return @as(u32, first) + @truncate(u32, @intFromPtr(remaining.ptr) - @intFromPtr(slice.ptr)); + return @as(u32, first) + @as(u32, @truncate(@intFromPtr(remaining.ptr) - @intFromPtr(slice.ptr))); } remaining = remaining[ascii_vector_size..]; @@ -3420,7 +3418,7 @@ pub fn indexOfNeedsEscape(slice: []const u8) ?u32 { for (remaining) |*char_| { const char = char_.*; if (char > 127 or char < 0x20 or char == '\\' or char == '"') { - return @truncate(u32, @intFromPtr(char_) - @intFromPtr(slice.ptr)); + return @as(u32, @truncate(@intFromPtr(char_) - @intFromPtr(slice.ptr))); } } @@ -3444,11 +3442,11 @@ pub fn indexOfCharZ(sliceZ: [:0]const u8, char: u8) ?u63 { @intFromPtr(ptr) < @intFromPtr(sliceZ.ptr + sliceZ.len) and pos <= sliceZ.len); - return @truncate(u63, pos); + return @as(u63, @truncate(pos)); } pub fn indexOfChar(slice: []const u8, char: u8) ?u32 { - return @truncate(u32, indexOfCharUsize(slice, char) orelse return null); + return @as(u32, @truncate(indexOfCharUsize(slice, char) orelse return null)); } pub fn indexOfCharUsize(slice: []const u8, char: u8) ?usize { @@ -3493,7 +3491,7 @@ test "indexOfChar" { inline for (pairs) |pair| { try std.testing.expectEqual( indexOfChar(pair.@"0", pair.@"1").?, - @truncate(u32, std.mem.indexOfScalar(u8, pair.@"0", pair.@"1").?), + @as(u32, @truncate(std.mem.indexOfScalar(u8, pair.@"0", pair.@"1").?)), ); } } @@ -3509,11 +3507,11 @@ pub fn indexOfNotChar(slice: []const u8, char: u8) ?u32 { if (comptime Environment.enableSIMD) { while (remaining.len >= ascii_vector_size) { const vec: AsciiVector = remaining[0..ascii_vector_size].*; - const cmp = @splat(ascii_vector_size, char) != vec; - if (@reduce(.Max, @bitCast(AsciiVectorU1, cmp)) > 0) { - const bitmask = @bitCast(AsciiVectorInt, cmp); + const cmp = @as(AsciiVector, @splat(char)) != vec; + if (@reduce(.Max, @as(AsciiVectorU1, @bitCast(cmp))) > 0) { + const bitmask = @as(AsciiVectorInt, @bitCast(cmp)); const first = @ctz(bitmask); - return @as(u32, first) + @intCast(u32, slice.len - remaining.len); + return @as(u32, first) + @as(u32, @intCast(slice.len - remaining.len)); } remaining = remaining[ascii_vector_size..]; @@ -3522,7 +3520,7 @@ pub fn indexOfNotChar(slice: []const u8, char: u8) ?u32 { for (remaining) |*current| { if (current.* != char) { - return @truncate(u32, @intFromPtr(current) - @intFromPtr(slice.ptr)); + return @as(u32, @truncate(@intFromPtr(current) - @intFromPtr(slice.ptr))); } } @@ -3578,8 +3576,8 @@ inline fn _decodeHexToBytes(destination: []u8, comptime Char: type, source: []co return error.InvalidByteSequence; } } - const a = hex_table[@truncate(u8, int[0])]; - const b = hex_table[@truncate(u8, int[1])]; + const a = hex_table[@as(u8, @truncate(int[0]))]; + const b = hex_table[@as(u8, @truncate(int[1]))]; if (a == invalid_char or b == invalid_char) { if (comptime truncate) break; return error.InvalidByteSequence; @@ -3617,7 +3615,7 @@ pub fn encodeBytesToHex(destination: []u8, source: []const u8) usize { test "decodeHexToBytes" { var buffer = std.mem.zeroes([1024]u8); for (buffer, 0..) |_, i| { - buffer[i] = @truncate(u8, i % 256); + buffer[i] = @as(u8, @truncate(i % 256)); } var written: [2048]u8 = undefined; var hex = std.fmt.bufPrint(&written, "{}", .{std.fmt.fmtSliceHexLower(&buffer)}) catch unreachable; @@ -3733,24 +3731,24 @@ pub fn firstNonASCII16CheckMin(comptime Slice: type, slice: Slice, comptime chec // it does it element-wise for every single u8 on the vector // instead of doing the SIMD instructions // it removes a loop, but probably is slower in the end - const cmp = @bitCast(AsciiVectorU16U1, vec > max_u16_ascii) | - @bitCast(AsciiVectorU16U1, vec < min_u16_ascii); - const bitmask: u8 = @bitCast(u8, cmp); + const cmp = @as(AsciiVectorU16U1, @bitCast(vec > max_u16_ascii)) | + @as(AsciiVectorU16U1, @bitCast(vec < min_u16_ascii)); + const bitmask: u8 = @as(u8, @bitCast(cmp)); const first = @ctz(bitmask); - return @intCast(u32, @as(u32, first) + - @intCast(u32, slice.len - remaining.len)); + return @as(u32, @intCast(@as(u32, first) + + @as(u32, @intCast(slice.len - remaining.len)))); } } else if (comptime !check_min) { if (max_value > 127) { remaining.len -= (@intFromPtr(remaining.ptr) - @intFromPtr(remaining_start)) / 2; const cmp = vec > max_u16_ascii; - const bitmask: u8 = @bitCast(u8, cmp); + const bitmask: u8 = @as(u8, @bitCast(cmp)); const first = @ctz(bitmask); - return @intCast(u32, @as(u32, first) + - @intCast(u32, slice.len - remaining.len)); + return @as(u32, @intCast(@as(u32, first) + + @as(u32, @intCast(slice.len - remaining.len)))); } } @@ -3764,7 +3762,7 @@ pub fn firstNonASCII16CheckMin(comptime Slice: type, slice: Slice, comptime chec var i: usize = 0; for (remaining) |char| { if (char > 127 or char < 0x20) { - return @truncate(u32, i); + return @as(u32, @truncate(i)); } i += 1; @@ -3773,7 +3771,7 @@ pub fn firstNonASCII16CheckMin(comptime Slice: type, slice: Slice, comptime chec var i: usize = 0; for (remaining) |char| { if (char > 127) { - return @truncate(u32, i); + return @as(u32, @truncate(i)); } i += 1; @@ -3794,17 +3792,17 @@ pub fn @"nextUTF16NonASCIIOr$`\\"( while (remaining.len >= ascii_u16_vector_size) { const vec: AsciiU16Vector = remaining[0..ascii_u16_vector_size].*; - const cmp = @bitCast(AsciiVectorU16U1, (vec > max_u16_ascii)) | - @bitCast(AsciiVectorU16U1, (vec < min_u16_ascii)) | - @bitCast(AsciiVectorU16U1, (vec == @splat(ascii_u16_vector_size, @as(u16, '$')))) | - @bitCast(AsciiVectorU16U1, (vec == @splat(ascii_u16_vector_size, @as(u16, '`')))) | - @bitCast(AsciiVectorU16U1, (vec == @splat(ascii_u16_vector_size, @as(u16, '\\')))); + const cmp = @as(AsciiVectorU16U1, @bitCast((vec > max_u16_ascii))) | + @as(AsciiVectorU16U1, @bitCast((vec < min_u16_ascii))) | + @as(AsciiVectorU16U1, @bitCast((vec == @as(AsciiU16Vector, @splat(@as(u16, '$')))))) | + @as(AsciiVectorU16U1, @bitCast((vec == @as(AsciiU16Vector, @splat(@as(u16, '`')))))) | + @as(AsciiVectorU16U1, @bitCast((vec == @as(AsciiU16Vector, @splat(@as(u16, '\\')))))); - const bitmask = @bitCast(u8, cmp); + const bitmask = @as(u8, @bitCast(cmp)); const first = @ctz(bitmask); if (first < ascii_u16_vector_size) { - return @intCast(u32, @as(u32, first) + - @intCast(u32, slice.len - remaining.len)); + return @as(u32, @intCast(@as(u32, first) + + @as(u32, @intCast(slice.len - remaining.len)))); } remaining = remaining[ascii_u16_vector_size..]; @@ -3814,7 +3812,7 @@ pub fn @"nextUTF16NonASCIIOr$`\\"( for (remaining, 0..) |char, i| { switch (char) { '$', '`', '\\', 0...0x20 - 1, 128...std.math.maxInt(u16) => { - return @truncate(u32, i + (slice.len - remaining.len)); + return @as(u32, @truncate(i + (slice.len - remaining.len))); }, else => {}, @@ -4193,7 +4191,7 @@ pub fn NewCodePointIterator(comptime CodePointType: type, comptime zeroValue: co it.i = @min(next_, bytes.len); const slice = bytes[prev..][0..cp_len]; - it.width = @intCast(u3, slice.len); + it.width = @as(u3, @intCast(slice.len)); return slice; } @@ -4235,10 +4233,10 @@ pub fn NewCodePointIterator(comptime CodePointType: type, comptime zeroValue: co it.c = switch (slice.len) { 0 => zeroValue, - 1 => @intCast(CodePointType, slice[0]), - 2 => @intCast(CodePointType, std.unicode.utf8Decode2(slice) catch unreachable), - 3 => @intCast(CodePointType, std.unicode.utf8Decode3(slice) catch unreachable), - 4 => @intCast(CodePointType, std.unicode.utf8Decode4(slice) catch unreachable), + 1 => @as(CodePointType, @intCast(slice[0])), + 2 => @as(CodePointType, @intCast(std.unicode.utf8Decode2(slice) catch unreachable)), + 3 => @as(CodePointType, @intCast(std.unicode.utf8Decode3(slice) catch unreachable)), + 4 => @as(CodePointType, @intCast(std.unicode.utf8Decode4(slice) catch unreachable)), else => unreachable, }; diff --git a/src/string_joiner.zig b/src/string_joiner.zig index 9abdc8a58..6e01ff50c 100644 --- a/src/string_joiner.zig +++ b/src/string_joiner.zig @@ -120,7 +120,7 @@ pub fn ensureNewlineAtEnd(this: *Joiner) void { pub fn append(this: *Joiner, slice: string, offset: u32, allocator: ?Allocator) void { const data = slice[offset..]; - this.len += @truncate(u32, data.len); + this.len += @as(u32, @truncate(data.len)); var new_tail = if (this.use_pool) Joinable.Pool.get(default_allocator) @@ -138,7 +138,7 @@ pub fn append(this: *Joiner, slice: string, offset: u32, allocator: ?Allocator) new_tail.* = .{ .allocator = default_allocator, .data = Joinable{ - .offset = @truncate(u31, offset), + .offset = @as(u31, @truncate(offset)), .allocator = allocator orelse undefined, .needs_deinit = allocator != null, .slice = slice, diff --git a/src/string_mutable.zig b/src/string_mutable.zig index 103f03aa3..239713407 100644 --- a/src/string_mutable.zig +++ b/src/string_mutable.zig @@ -224,7 +224,7 @@ pub const MutableString = struct { ); } pub inline fn lenI(self: *MutableString) i32 { - return @intCast(i32, self.list.items.len); + return @as(i32, @intCast(self.list.items.len)); } pub fn toOwnedSlice(self: *MutableString) string { diff --git a/src/string_types.zig b/src/string_types.zig index c091e2a86..ab048b008 100644 --- a/src/string_types.zig +++ b/src/string_types.zig @@ -40,20 +40,20 @@ pub const PathString = packed struct { pub inline fn slice(this: anytype) string { @setRuntimeSafety(false); // "cast causes pointer to be null" is fine here. if it is null, the len will be 0. - return @ptrFromInt([*]u8, @intCast(usize, this.ptr))[0..this.len]; + return @as([*]u8, @ptrFromInt(@as(usize, @intCast(this.ptr))))[0..this.len]; } pub inline fn sliceAssumeZ(this: anytype) stringZ { @setRuntimeSafety(false); // "cast causes pointer to be null" is fine here. if it is null, the len will be 0. - return @ptrFromInt([*:0]u8, @intCast(usize, this.ptr))[0..this.len :0]; + return @as([*:0]u8, @ptrFromInt(@as(usize, @intCast(this.ptr))))[0..this.len :0]; } pub inline fn init(str: string) @This() { @setRuntimeSafety(false); // "cast causes pointer to be null" is fine here. if it is null, the len will be 0. return @This(){ - .ptr = @truncate(PointerIntType, @intFromPtr(str.ptr)), - .len = @truncate(PathInt, str.len), + .ptr = @as(PointerIntType, @truncate(@intFromPtr(str.ptr))), + .len = @as(PathInt, @truncate(str.len)), }; } @@ -78,20 +78,20 @@ pub const HashedString = struct { len: u32, hash: u32, - pub const empty = HashedString{ .ptr = @ptrFromInt([*]const u8, 0xDEADBEEF), .len = 0, .hash = 0 }; + pub const empty = HashedString{ .ptr = @as([*]const u8, @ptrFromInt(0xDEADBEEF)), .len = 0, .hash = 0 }; pub fn init(buf: string) HashedString { return HashedString{ .ptr = buf.ptr, - .len = @truncate(u32, buf.len), - .hash = @truncate(u32, bun.hash(buf)), + .len = @as(u32, @truncate(buf.len)), + .hash = @as(u32, @truncate(bun.hash(buf))), }; } pub fn initNoHash(buf: string) HashedString { return HashedString{ .ptr = buf.ptr, - .len = @truncate(u32, buf.len), + .len = @as(u32, @truncate(buf.len)), .hash = 0, }; } @@ -106,7 +106,7 @@ pub const HashedString = struct { return ((@max(this.hash, other.hash) > 0 and this.hash == other.hash) or (this.ptr == other.ptr)) and this.len == other.len; }, else => { - return @as(usize, this.len) == other.len and @truncate(u32, bun.hash(other[0..other.len])) == this.hash; + return @as(usize, this.len) == other.len and @as(u32, @truncate(bun.hash(other[0..other.len]))) == this.hash; }, } } diff --git a/src/sync.zig b/src/sync.zig index ca0818744..d2ecd95bd 100644 --- a/src/sync.zig +++ b/src/sync.zig @@ -977,7 +977,7 @@ else if (@import("builtin").os.tag == .linux) } Futex.wait( - @ptrCast(*const i32, &self.state), + @as(*const i32, @ptrCast(&self.state)), @intFromEnum(new_state), ); } @@ -994,7 +994,7 @@ else if (@import("builtin").os.tag == .linux) fn unlockSlow(self: *Mutex) void { @setCold(true); - Futex.wake(@ptrCast(*const i32, &self.state)); + Futex.wake(@as(*const i32, @ptrCast(&self.state))); } } else diff --git a/src/tagged_pointer.zig b/src/tagged_pointer.zig index a246ee355..6c2462139 100644 --- a/src/tagged_pointer.zig +++ b/src/tagged_pointer.zig @@ -26,26 +26,26 @@ pub const TaggedPointer = packed struct { const address = @intFromPtr(ptr); return TaggedPointer{ - ._ptr = @truncate(AddressableSize, address), + ._ptr = @as(AddressableSize, @truncate(address)), .data = data, }; } pub inline fn get(this: TaggedPointer, comptime Type: type) *Type { - return @ptrFromInt(*Type, @intCast(usize, this._ptr)); + return @as(*Type, @ptrFromInt(@as(usize, @intCast(this._ptr)))); } pub inline fn from(val: anytype) TaggedPointer { const ValueType = @TypeOf(val); return switch (ValueType) { - f64, i64, u64 => @bitCast(TaggedPointer, val), - ?*anyopaque, *anyopaque => @bitCast(TaggedPointer, @intFromPtr(val)), + f64, i64, u64 => @as(TaggedPointer, @bitCast(val)), + ?*anyopaque, *anyopaque => @as(TaggedPointer, @bitCast(@intFromPtr(val))), else => @compileError("Unsupported type: " ++ @typeName(ValueType)), }; } pub inline fn to(this: TaggedPointer) *anyopaque { - return @ptrFromInt(*anyopaque, @bitCast(u64, this)); + return @as(*anyopaque, @ptrFromInt(@as(u64, @bitCast(this)))); } }; @@ -111,7 +111,7 @@ pub fn TaggedPointerUnion(comptime Types: anytype) type { } pub inline fn tag(this: This) TagType { - return @enumFromInt(TagType, this.repr.data); + return @as(TagType, @enumFromInt(this.repr.data)); } /// unsafely cast a tagged pointer to a specific type, without checking that it's really that type diff --git a/src/thread_pool.zig b/src/thread_pool.zig index 3359311d6..402f6b1d6 100644 --- a/src/thread_pool.zig +++ b/src/thread_pool.zig @@ -17,7 +17,7 @@ on_thread_spawn: ?OnSpawnCallback = null, threadpool_context: ?*anyopaque = null, stack_size: u32, max_threads: u32, -sync: Atomic(u32) = Atomic(u32).init(@bitCast(u32, Sync{})), +sync: Atomic(u32) = Atomic(u32).init(@as(u32, @bitCast(Sync{}))), idle_event: Event = .{}, join_event: Event = .{}, run_queue: Node.Queue = .{}, @@ -352,7 +352,7 @@ pub fn Do( } } - wait_group.counter += @intCast(u32, values.len); + wait_group.counter += @as(u32, @intCast(values.len)); this.schedule(batch); wait_group.wait(); } @@ -431,7 +431,7 @@ inline fn notify(self: *ThreadPool, is_waking: bool) void { // Fast path to check the Sync state to avoid calling into notifySlow(). // If we're waking, then we need to update the state regardless if (!is_waking) { - const sync = @bitCast(Sync, self.sync.load(.Monotonic)); + const sync = @as(Sync, @bitCast(self.sync.load(.Monotonic))); if (sync.notified) { return; } @@ -443,20 +443,20 @@ inline fn notify(self: *ThreadPool, is_waking: bool) void { /// Warm the thread pool up to the given number of threads. /// https://www.youtube.com/watch?v=ys3qcbO5KWw pub fn warm(self: *ThreadPool, count: u14) void { - var sync = @bitCast(Sync, self.sync.load(.Monotonic)); + var sync = @as(Sync, @bitCast(self.sync.load(.Monotonic))); if (sync.spawned >= count) return; - const to_spawn = @min(count - sync.spawned, @truncate(u14, self.max_threads)); + const to_spawn = @min(count - sync.spawned, @as(u14, @truncate(self.max_threads))); while (sync.spawned < to_spawn) { var new_sync = sync; new_sync.spawned += 1; - sync = @bitCast(Sync, self.sync.tryCompareAndSwap( - @bitCast(u32, sync), - @bitCast(u32, new_sync), + sync = @as(Sync, @bitCast(self.sync.tryCompareAndSwap( + @as(u32, @bitCast(sync)), + @as(u32, @bitCast(new_sync)), .Release, .Monotonic, - ) orelse break); + ) orelse break)); const spawn_config = if (Environment.isMac) // stack size must be a multiple of page_size // macOS will fail to spawn a thread if the stack size is not a multiple of page_size @@ -470,7 +470,7 @@ pub fn warm(self: *ThreadPool, count: u14) void { } noinline fn notifySlow(self: *ThreadPool, is_waking: bool) void { - var sync = @bitCast(Sync, self.sync.load(.Monotonic)); + var sync = @as(Sync, @bitCast(self.sync.load(.Monotonic))); while (sync.state != .shutdown) { const can_wake = is_waking or (sync.state == .pending); if (is_waking) { @@ -492,9 +492,9 @@ noinline fn notifySlow(self: *ThreadPool, is_waking: bool) void { // Release barrier synchronizes with Acquire in wait() // to ensure pushes to run queues happen before observing a posted notification. - sync = @bitCast(Sync, self.sync.tryCompareAndSwap( - @bitCast(u32, sync), - @bitCast(u32, new_sync), + sync = @as(Sync, @bitCast(self.sync.tryCompareAndSwap( + @as(u32, @bitCast(sync)), + @as(u32, @bitCast(new_sync)), .Release, .Monotonic, ) orelse { @@ -518,14 +518,14 @@ noinline fn notifySlow(self: *ThreadPool, is_waking: bool) void { } return; - }); + })); } } noinline fn wait(self: *ThreadPool, _is_waking: bool) error{Shutdown}!bool { var is_idle = false; var is_waking = _is_waking; - var sync = @bitCast(Sync, self.sync.load(.Monotonic)); + var sync = @as(Sync, @bitCast(self.sync.load(.Monotonic))); while (true) { if (sync.state == .shutdown) return error.Shutdown; @@ -542,44 +542,44 @@ noinline fn wait(self: *ThreadPool, _is_waking: bool) error{Shutdown}!bool { // Acquire barrier synchronizes with notify() // to ensure that pushes to run queue are observed after wait() returns. - sync = @bitCast(Sync, self.sync.tryCompareAndSwap( - @bitCast(u32, sync), - @bitCast(u32, new_sync), + sync = @as(Sync, @bitCast(self.sync.tryCompareAndSwap( + @as(u32, @bitCast(sync)), + @as(u32, @bitCast(new_sync)), .Acquire, .Monotonic, ) orelse { return is_waking or (sync.state == .signaled); - }); + })); } else if (!is_idle) { var new_sync = sync; new_sync.idle += 1; if (is_waking) new_sync.state = .pending; - sync = @bitCast(Sync, self.sync.tryCompareAndSwap( - @bitCast(u32, sync), - @bitCast(u32, new_sync), + sync = @as(Sync, @bitCast(self.sync.tryCompareAndSwap( + @as(u32, @bitCast(sync)), + @as(u32, @bitCast(new_sync)), .Monotonic, .Monotonic, ) orelse { is_waking = false; is_idle = true; continue; - }); + })); } else { if (Thread.current) |current| { current.drainIdleEvents(); } self.idle_event.wait(); - sync = @bitCast(Sync, self.sync.load(.Monotonic)); + sync = @as(Sync, @bitCast(self.sync.load(.Monotonic))); } } } /// Marks the thread pool as shutdown pub noinline fn shutdown(self: *ThreadPool) void { - var sync = @bitCast(Sync, self.sync.load(.Monotonic)); + var sync = @as(Sync, @bitCast(self.sync.load(.Monotonic))); while (sync.state != .shutdown) { var new_sync = sync; new_sync.notified = true; @@ -587,9 +587,9 @@ pub noinline fn shutdown(self: *ThreadPool) void { new_sync.idle = 0; // Full barrier to synchronize with both wait() and notify() - sync = @bitCast(Sync, self.sync.tryCompareAndSwap( - @bitCast(u32, sync), - @bitCast(u32, new_sync), + sync = @as(Sync, @bitCast(self.sync.tryCompareAndSwap( + @as(u32, @bitCast(sync)), + @as(u32, @bitCast(new_sync)), .AcqRel, .Monotonic, ) orelse { @@ -597,7 +597,7 @@ pub noinline fn shutdown(self: *ThreadPool) void { // TODO: I/O polling notification here. if (sync.idle > 0) self.idle_event.shutdown(); return; - }); + })); } } @@ -628,8 +628,8 @@ pub fn setThreadContext(noalias pool: *ThreadPool, ctx: ?*anyopaque) void { fn unregister(noalias self: *ThreadPool, noalias maybe_thread: ?*Thread) void { // Un-spawn one thread, either due to a failed OS thread spawning or the thread is exiting. - const one_spawned = @bitCast(u32, Sync{ .spawned = 1 }); - const sync = @bitCast(Sync, self.sync.fetchSub(one_spawned, .Release)); + const one_spawned = @as(u32, @bitCast(Sync{ .spawned = 1 })); + const sync = @as(Sync, @bitCast(self.sync.fetchSub(one_spawned, .Release))); assert(sync.spawned > 0); // The last thread to exit must wake up the thread pool join()er @@ -651,10 +651,10 @@ fn unregister(noalias self: *ThreadPool, noalias maybe_thread: ?*Thread) void { fn join(self: *ThreadPool) void { // Wait for the thread pool to be shutdown() then for all threads to enter a joinable state - var sync = @bitCast(Sync, self.sync.load(.Monotonic)); + var sync = @as(Sync, @bitCast(self.sync.load(.Monotonic))); if (!(sync.state == .shutdown and sync.spawned == 0)) { self.join_event.wait(); - sync = @bitCast(Sync, self.sync.load(.Monotonic)); + sync = @as(Sync, @bitCast(self.sync.load(.Monotonic))); } assert(sync.state == .shutdown); @@ -753,7 +753,7 @@ pub const Thread = struct { } // Then try work stealing from other threads - var num_threads: u32 = @bitCast(Sync, thread_pool.sync.load(.Monotonic)).spawned; + var num_threads: u32 = @as(Sync, @bitCast(thread_pool.sync.load(.Monotonic))).spawned; while (num_threads > 0) : (num_threads -= 1) { // Traverse the stack of registered threads on the thread pool const target = self.target orelse thread_pool.threads.load(.Acquire) orelse unreachable; @@ -945,7 +945,7 @@ pub const Node = struct { var stack = self.stack.load(.Monotonic); while (true) { // Attach the list to the stack (pt. 1) - list.tail.next = @ptrFromInt(?*Node, stack & PTR_MASK); + list.tail.next = @as(?*Node, @ptrFromInt(stack & PTR_MASK)); // Update the stack with the list (pt. 2). // Don't change the HAS_CACHE and IS_CONSUMING bits of the consumer. @@ -985,7 +985,7 @@ pub const Node = struct { new_stack, .Acquire, .Monotonic, - ) orelse return self.cache orelse @ptrFromInt(*Node, stack & PTR_MASK); + ) orelse return self.cache orelse @as(*Node, @ptrFromInt(stack & PTR_MASK)); } } @@ -1022,7 +1022,7 @@ pub const Node = struct { assert(stack & IS_CONSUMING != 0); assert(stack & PTR_MASK != 0); - const node = @ptrFromInt(*Node, stack & PTR_MASK); + const node = @as(*Node, @ptrFromInt(stack & PTR_MASK)); consumer_ref.* = node.next; return node; } diff --git a/src/toml/toml_lexer.zig b/src/toml/toml_lexer.zig index 7d576af86..701a91d99 100644 --- a/src/toml/toml_lexer.zig +++ b/src/toml/toml_lexer.zig @@ -150,7 +150,7 @@ pub const Lexer = struct { const code_point = switch (slice.len) { 0 => -1, 1 => @as(CodePoint, slice[0]), - else => strings.decodeWTF8RuneTMultibyte(slice.ptr[0..4], @intCast(u3, slice.len), CodePoint, strings.unicode_replacement), + else => strings.decodeWTF8RuneTMultibyte(slice.ptr[0..4], @as(u3, @intCast(slice.len)), CodePoint, strings.unicode_replacement), }; it.end = it.current; @@ -464,9 +464,9 @@ pub const Lexer = struct { // Parse a 32-bit integer (very fast path); var number: u32 = 0; for (text) |c| { - number = number * 10 + @intCast(u32, c - '0'); + number = number * 10 + @as(u32, @intCast(c - '0')); } - lexer.number = @floatFromInt(f64, number); + lexer.number = @as(f64, @floatFromInt(number)); } else { // Parse a double-precision floating-point number; if (std.fmt.parseFloat(f64, text)) |num| { @@ -910,10 +910,10 @@ pub const Lexer = struct { }, } - iter.c = @intCast(i32, value); + iter.c = @as(i32, @intCast(value)); if (is_bad) { lexer.addRangeError( - logger.Range{ .loc = .{ .start = @intCast(i32, octal_start) }, .len = @intCast(i32, iter.i - octal_start) }, + logger.Range{ .loc = .{ .start = @as(i32, @intCast(octal_start)) }, .len = @as(i32, @intCast(iter.i - octal_start)) }, "Invalid legacy octal literal", .{}, false, @@ -1025,7 +1025,7 @@ pub const Lexer = struct { if (is_out_of_range) { try lexer.addRangeError( - .{ .loc = .{ .start = @intCast(i32, start + hex_start) }, .len = @intCast(i32, (iter.i - hex_start)) }, + .{ .loc = .{ .start = @as(i32, @intCast(start + hex_start)) }, .len = @as(i32, @intCast((iter.i - hex_start))) }, "Unicode escape sequence is out of range", .{}, true, @@ -1064,7 +1064,7 @@ pub const Lexer = struct { } } - iter.c = @truncate(CodePoint, value); + iter.c = @as(CodePoint, @truncate(value)); }, '\r' => { if (comptime !allow_multiline) { @@ -1098,7 +1098,7 @@ pub const Lexer = struct { switch (iter.c) { -1 => return try lexer.addDefaultError("Unexpected end of file"), 0...127 => { - buf.append(@intCast(u8, iter.c)) catch unreachable; + buf.append(@as(u8, @intCast(iter.c))) catch unreachable; }, else => { var part: [4]u8 = undefined; @@ -1215,5 +1215,5 @@ pub fn isLatin1Identifier(comptime Buffer: type, name: Buffer) bool { } inline fn float64(num: anytype) f64 { - return @floatFromInt(f64, num); + return @as(f64, @floatFromInt(num)); } diff --git a/src/tracy.zig b/src/tracy.zig index 583a3be25..fb900442b 100644 --- a/src/tracy.zig +++ b/src/tracy.zig @@ -129,7 +129,7 @@ pub fn TracyAllocator(comptime name: ?[:0]const u8) type { } fn allocFn(ptr: *anyopaque, len: usize, ptr_align: u8, ret_addr: usize) ?[*]u8 { - const self = @ptrCast(*Self, @alignCast(@alignOf(Self), ptr)); + const self = @as(*Self, @ptrCast(@alignCast(ptr))); const result = self.parent_allocator.rawAlloc(len, ptr_align, ret_addr); if (result) |data| { if (len != 0) { @@ -146,7 +146,7 @@ pub fn TracyAllocator(comptime name: ?[:0]const u8) type { } fn resizeFn(ptr: *anyopaque, buf: []u8, buf_align: u8, new_len: usize, ret_addr: usize) bool { - const self = @ptrCast(*Self, @alignCast(@alignOf(Self), ptr)); + const self = @as(*Self, @ptrCast(@alignCast(ptr))); if (self.parent_allocator.rawResize(buf, buf_align, new_len, ret_addr)) { if (name) |n| { freeNamed(buf.ptr, n); @@ -165,7 +165,7 @@ pub fn TracyAllocator(comptime name: ?[:0]const u8) type { } fn freeFn(ptr: *anyopaque, buf: []u8, buf_align: u8, ret_addr: usize) void { - const self = @ptrCast(*Self, @alignCast(@alignOf(Self), ptr)); + const self = @as(*Self, @ptrCast(@alignCast(ptr))); self.parent_allocator.rawFree(buf, buf_align, ret_addr); // this condition is to handle free being called on an empty slice that was never even allocated // example case: `std.process.getSelfExeSharedLibPaths` can return `&[_][:0]u8{}` diff --git a/src/url.zig b/src/url.zig index af13b139c..550704491 100644 --- a/src/url.zig +++ b/src/url.zig @@ -254,14 +254,14 @@ pub const URL = struct { } if (strings.indexOfChar(base[offset..], '?')) |q| { - offset += @intCast(u31, q); + offset += @as(u31, @intCast(q)); url.path = base[path_offset..][0..q]; can_update_path = false; url.search = base[offset..]; } if (strings.indexOfChar(base[offset..], '#')) |hash| { - offset += @intCast(u31, hash); + offset += @as(u31, @intCast(hash)); hash_offset = offset; if (can_update_path) { url.path = base[path_offset..][0..hash]; @@ -304,7 +304,7 @@ pub const URL = struct { url.pathname = "/"; } - while (url.pathname.len > 1 and @bitCast(u16, url.pathname[0..2].*) == comptime std.mem.readIntNative(u16, "//")) { + while (url.pathname.len > 1 and @as(u16, @bitCast(url.pathname[0..2].*)) == comptime std.mem.readIntNative(u16, "//")) { url.pathname = url.pathname[1..]; } @@ -633,10 +633,10 @@ pub const QueryStringMap = struct { var value = result.value; const name_slice = result.rawName(scanner.pathname.routename); - name.length = @truncate(u32, name_slice.len); + name.length = @as(u32, @truncate(name_slice.len)); name.offset = buf_writer_pos; try writer.writeAll(name_slice); - buf_writer_pos += @truncate(u32, name_slice.len); + buf_writer_pos += @as(u32, @truncate(name_slice.len)); var name_hash: u64 = bun.hash(name_slice); @@ -844,7 +844,7 @@ pub const PercentEncoding = struct { // scan ahead assuming .writeAll is faster than .writeByte one at a time while (i < input.len and input[i] != '%') : (i += 1) {} try writer.writeAll(input[start..i]); - written += @truncate(u32, i - start); + written += @as(u32, @truncate(i - start)); }, } } @@ -933,7 +933,7 @@ pub const FormData = struct { if (begin.len == 0) return null; - var boundary_end = strings.indexOfChar(begin, ';') orelse @truncate(u32, begin.len); + var boundary_end = strings.indexOfChar(begin, ';') orelse @as(u32, @truncate(begin.len)); if (begin[0] == '"' and boundary_end > 0 and begin[boundary_end -| 1] == '"') { boundary_end -|= 1; return begin[1..boundary_end]; @@ -1207,8 +1207,8 @@ fn stringPointerFromStrings(parent: string, in: string) Api.StringPointer { } return Api.StringPointer{ - .offset = @truncate(u32, i), - .length = @truncate(u32, in.len), + .offset = @as(u32, @truncate(i)), + .length = @as(u32, @truncate(in.len)), }; } } @@ -1301,7 +1301,7 @@ pub const Scanner = struct { var slice = this.query_string[this.i..]; relative_i = 0; - var name = Api.StringPointer{ .offset = @truncate(u32, this.i), .length = 0 }; + var name = Api.StringPointer{ .offset = @as(u32, @truncate(this.i)), .length = 0 }; var value = Api.StringPointer{ .offset = 0, .length = 0 }; var name_needs_decoding = false; @@ -1309,10 +1309,10 @@ pub const Scanner = struct { const char = slice[relative_i]; switch (char) { '=' => { - name.length = @truncate(u32, relative_i); + name.length = @as(u32, @truncate(relative_i)); relative_i += 1; - value.offset = @truncate(u32, relative_i + this.i); + value.offset = @as(u32, @truncate(relative_i + this.i)); const offset = relative_i; var value_needs_decoding = false; @@ -1322,7 +1322,7 @@ pub const Scanner = struct { else => false, }; } - value.length = @truncate(u32, relative_i - offset); + value.length = @as(u32, @truncate(relative_i - offset)); // If the name is empty and it's just a value, skip it. // This is kind of an opinion. But, it's hard to see where that might be intentional. if (name.length == 0) return null; @@ -1334,7 +1334,7 @@ pub const Scanner = struct { '&' => { // key& if (relative_i > 0) { - name.length = @truncate(u32, relative_i); + name.length = @as(u32, @truncate(relative_i)); return Result{ .name = name, .value = value, .name_needs_decoding = name_needs_decoding, .value_needs_decoding = false }; } @@ -1355,7 +1355,7 @@ pub const Scanner = struct { return null; } - name.length = @truncate(u32, relative_i); + name.length = @as(u32, @truncate(relative_i)); return Result{ .name = name, .value = value, .name_needs_decoding = name_needs_decoding }; } } diff --git a/src/util.zig b/src/util.zig index 1664cadd9..671e9fc27 100644 --- a/src/util.zig +++ b/src/util.zig @@ -218,7 +218,7 @@ pub fn fromSlice( map.items.len = default.len; slice = map.items; } else if (comptime @hasField(Array, "len")) { - map.len = @intCast(u32, default.len); + map.len = @as(u32, @intCast(default.len)); slice = map.slice(); } else { @compileError("Cannot set length of " ++ @typeName(Array)); @@ -229,8 +229,8 @@ pub fn fromSlice( slice = try allocator.alloc(Of(Array), default.len); map = .{ .ptr = slice.ptr, - .len = @truncate(u32, default.len), - .cap = @truncate(u32, default.len), + .len = @as(u32, @truncate(default.len)), + .cap = @as(u32, @truncate(default.len)), }; } @@ -269,7 +269,7 @@ pub fn Batcher(comptime Type: type) type { } pub inline fn eat(this: *@This(), value: Type) *Type { - return @ptrCast(*Type, &this.head.eat1(value).ptr); + return @as(*Type, @ptrCast(&this.head.eat1(value).ptr)); } pub inline fn eat1(this: *@This(), value: Type) []Type { diff --git a/src/watcher.zig b/src/watcher.zig index e3b3600ad..aded993e8 100644 --- a/src/watcher.zig +++ b/src/watcher.zig @@ -73,7 +73,7 @@ pub const INotify = struct { // it includes alignment / padding // but it is a sentineled value // so we can just trim it to the first null byte - return bun.sliceTo(@ptrFromInt([*:0]u8, @intFromPtr(&this.name_len) + @sizeOf(u32)), 0)[0.. :0]; + return bun.sliceTo(@as([*:0]u8, @ptrFromInt(@intFromPtr(&this.name_len) + @sizeOf(u32))), 0)[0.. :0]; } }; pub var inotify_fd: EventListIndex = 0; @@ -131,13 +131,13 @@ pub const INotify = struct { Futex.wait(&watch_count, 0, null) catch unreachable; const rc = std.os.system.read( inotify_fd, - @ptrCast([*]u8, @alignCast(@alignOf([*]u8), &eventlist)), + @as([*]u8, @ptrCast(@alignCast(&eventlist))), @sizeOf(EventListBuffer), ); switch (std.os.errno(rc)) { .SUCCESS => { - var len = @intCast(usize, rc); + var len = @as(usize, @intCast(rc)); if (len == 0) return &[_]*INotifyEvent{}; @@ -154,12 +154,12 @@ pub const INotify = struct { while (true) { const new_rc = std.os.system.read( inotify_fd, - @ptrCast([*]u8, @alignCast(@alignOf([*]u8), &eventlist)) + len, + @as([*]u8, @ptrCast(@alignCast(&eventlist))) + len, @sizeOf(EventListBuffer) - len, ); switch (std.os.errno(new_rc)) { .SUCCESS => { - len += @intCast(usize, new_rc); + len += @as(usize, @intCast(new_rc)); }, .AGAIN => continue, .INTR => continue, @@ -186,7 +186,7 @@ pub const INotify = struct { var i: u32 = 0; while (i < len) : (i += @sizeOf(INotifyEvent)) { @setRuntimeSafety(false); - var event = @ptrCast(*INotifyEvent, @alignCast(@alignOf(*INotifyEvent), eventlist[i..][0..@sizeOf(INotifyEvent)])); + var event = @as(*INotifyEvent, @ptrCast(@alignCast(eventlist[i..][0..@sizeOf(INotifyEvent)]))); i += event.name_len; eventlist_ptrs[count] = event; @@ -284,7 +284,7 @@ pub const WatchEvent = struct { pub fn ignoreINotifyEvent(event: INotify.INotifyEvent) bool { var stack: WatchEvent = undefined; stack.fromINotify(event, 0); - return @bitCast(std.meta.Int(.unsigned, @bitSizeOf(Op)), stack.op) == 0; + return @as(std.meta.Int(.unsigned, @bitSizeOf(Op)), @bitCast(stack.op)) == 0; } pub fn names(this: WatchEvent, buf: []?[:0]u8) []?[:0]u8 { @@ -319,7 +319,7 @@ pub const WatchEvent = struct { .rename = (kevent.fflags & (std.c.NOTE_RENAME | std.c.NOTE_LINK)) > 0, .write = (kevent.fflags & std.c.NOTE_WRITE) > 0, }, - .index = @truncate(WatchItemIndex, kevent.udata), + .index = @as(WatchItemIndex, @truncate(kevent.udata)), }; } @@ -377,7 +377,7 @@ pub fn NewWatcher(comptime ContextType: type) type { var evict_list: [WATCHER_MAX_LIST]WatchItemIndex = undefined; pub fn getHash(filepath: string) HashType { - return @truncate(HashType, bun.hash(filepath)); + return @as(HashType, @truncate(bun.hash(filepath))); } pub fn init(ctx: ContextType, fs: *Fs.FileSystem, allocator: std.mem.Allocator) !*Watcher { @@ -464,7 +464,7 @@ pub fn NewWatcher(comptime ContextType: type) type { if (comptime kind == .directory) { for (parents) |parent| { if (parent == hash) { - evict_list[evict_list_i] = @truncate(WatchItemIndex, parent); + evict_list[evict_list_i] = @as(WatchItemIndex, @truncate(parent)); evict_list_i += 1; } } @@ -538,9 +538,9 @@ pub fn NewWatcher(comptime ContextType: type) type { var timespec = std.os.timespec{ .tv_sec = 0, .tv_nsec = 100_000 }; const extra = std.os.system.kevent( DarwinWatcher.fd, - @as([*]KEvent, changelist[@intCast(usize, count_)..].ptr), + @as([*]KEvent, changelist[@as(usize, @intCast(count_))..].ptr), 0, - @as([*]KEvent, changelist[@intCast(usize, count_)..].ptr), + @as([*]KEvent, changelist[@as(usize, @intCast(count_))..].ptr), remain, ×pec, @@ -549,7 +549,7 @@ pub fn NewWatcher(comptime ContextType: type) type { count_ += extra; } - var changes = changelist[0..@intCast(usize, @max(0, count_))]; + var changes = changelist[0..@as(usize, @intCast(@max(0, count_)))]; var watchevents = this.watch_events[0..changes.len]; var out_len: usize = 0; if (changes.len > 0) { @@ -603,13 +603,13 @@ pub fn NewWatcher(comptime ContextType: type) type { for (slice) |event| { watchevents[watch_event_id].fromINotify( event.*, - @intCast( + @as( WatchItemIndex, - std.mem.indexOfScalar( + @intCast(std.mem.indexOfScalar( INotify.EventListIndex, eventlist_index, event.watch_descriptor, - ) orelse continue, + ) orelse continue), ), ); temp_name_list[temp_name_off] = if (event.name_len > 0) @@ -661,7 +661,7 @@ pub fn NewWatcher(comptime ContextType: type) type { pub fn indexOf(this: *Watcher, hash: HashType) ?u32 { for (this.watchlist.items(.hash), 0..) |other, i| { if (hash == other) { - return @truncate(u32, i); + return @as(u32, @truncate(i)); } } return null; @@ -725,10 +725,10 @@ pub fn NewWatcher(comptime ContextType: type) type { event.fflags = std.c.NOTE_WRITE | std.c.NOTE_RENAME | std.c.NOTE_DELETE; // id - event.ident = @intCast(usize, fd); + event.ident = @as(usize, @intCast(fd)); // Store the hash for fast filtering later - event.udata = @intCast(usize, watchlist_id); + event.udata = @as(usize, @intCast(watchlist_id)); var events: [1]KEvent = .{event}; // This took a lot of work to figure out the right permutation @@ -777,7 +777,7 @@ pub fn NewWatcher(comptime ContextType: type) type { if (fd_ > 0) break :brk fd_; const dir = try std.fs.cwd().openIterableDir(file_path, .{}); - break :brk @truncate(StoredFileDescriptorType, dir.dir.fd); + break :brk @as(StoredFileDescriptorType, @truncate(dir.dir.fd)); }; const parent_hash = Watcher.getHash(Fs.PathName.init(file_path).dirWithTrailingSlash()); @@ -807,10 +807,10 @@ pub fn NewWatcher(comptime ContextType: type) type { event.fflags = std.c.NOTE_WRITE | std.c.NOTE_RENAME | std.c.NOTE_DELETE; // id - event.ident = @intCast(usize, fd); + event.ident = @as(usize, @intCast(fd)); // Store the hash for fast filtering later - event.udata = @intCast(usize, watchlist_id); + event.udata = @as(usize, @intCast(watchlist_id)); var events: [1]KEvent = .{event}; // This took a lot of work to figure out the right permutation @@ -845,7 +845,7 @@ pub fn NewWatcher(comptime ContextType: type) type { .kind = .directory, .package_json = null, }); - return @truncate(WatchItemIndex, this.watchlist.len - 1); + return @as(WatchItemIndex, @truncate(this.watchlist.len - 1)); } pub inline fn isEligibleDirectory(this: *Watcher, dir: string) bool { @@ -898,18 +898,18 @@ pub fn NewWatcher(comptime ContextType: type) type { if (dir_fd > 0) { var fds = watchlist_slice.items(.fd); if (std.mem.indexOfScalar(StoredFileDescriptorType, fds, dir_fd)) |i| { - parent_watch_item = @truncate(WatchItemIndex, i); + parent_watch_item = @as(WatchItemIndex, @truncate(i)); } } if (parent_watch_item == null) { const hashes = watchlist_slice.items(.hash); if (std.mem.indexOfScalar(HashType, hashes, parent_dir_hash)) |i| { - parent_watch_item = @truncate(WatchItemIndex, i); + parent_watch_item = @as(WatchItemIndex, @truncate(i)); } } } - try this.watchlist.ensureUnusedCapacity(this.allocator, 1 + @intCast(usize, @intFromBool(parent_watch_item == null))); + try this.watchlist.ensureUnusedCapacity(this.allocator, 1 + @as(usize, @intCast(@intFromBool(parent_watch_item == null)))); if (autowatch_parent_dir) { parent_watch_item = parent_watch_item orelse try this.appendDirectoryAssumeCapacity(dir_fd, parent_dir, parent_dir_hash, copy_file_path); diff --git a/src/which.zig b/src/which.zig index 8c29e7e4a..69356e611 100644 --- a/src/which.zig +++ b/src/which.zig @@ -7,7 +7,7 @@ fn isValid(buf: *[bun.MAX_PATH_BYTES]u8, segment: []const u8, bin: []const u8) ? buf[segment.len + 1 + bin.len ..][0] = 0; const filepath = buf[0 .. segment.len + 1 + bin.len :0]; if (!checkPath(filepath)) return null; - return @intCast(u16, filepath.len); + return @as(u16, @intCast(filepath.len)); } extern "C" fn is_executable_file(path: [*:0]const u8) bool; diff --git a/src/work_pool.zig b/src/work_pool.zig index cb59c0143..7e1fda872 100644 --- a/src/work_pool.zig +++ b/src/work_pool.zig @@ -13,7 +13,7 @@ pub fn NewWorkPool(comptime max_threads: ?usize) type { @setCold(true); pool = ThreadPool.init(.{ - .max_threads = max_threads orelse @max(@truncate(u32, std.Thread.getCpuCount() catch 0), 2), + .max_threads = max_threads orelse @max(@as(u32, @truncate(std.Thread.getCpuCount() catch 0)), 2), .stack_size = 2 * 1024 * 1024, }); return &pool; diff --git a/src/wyhash.zig b/src/wyhash.zig index bd5cbf62b..acb100682 100644 --- a/src/wyhash.zig +++ b/src/wyhash.zig @@ -25,7 +25,7 @@ fn read_8bytes_swapped(data: []const u8) u64 { fn mum(a: u64, b: u64) u64 { var r = std.math.mulWide(u64, a, b); r = (r >> 64) ^ r; - return @truncate(u64, r); + return @as(u64, @truncate(r)); } fn mix0(a: u64, b: u64, seed: u64) u64 { @@ -80,7 +80,7 @@ const WyhashStateless = struct { std.debug.assert(b.len < 32); const seed = self.seed; - const rem_len = @intCast(u5, b.len); + const rem_len = @as(u5, @intCast(b.len)); const rem_key = b[0..rem_len]; self.seed = switch (rem_len) { @@ -164,7 +164,7 @@ pub const Wyhash = struct { self.state.update(b[off .. off + aligned_len]); mem.copy(u8, self.buf[self.buf_len..], b[off + aligned_len ..]); - self.buf_len += @intCast(u8, b[off + aligned_len ..].len); + self.buf_len += @as(u8, @intCast(b[off + aligned_len ..].len)); } pub fn final(self: *Wyhash) u64 { diff --git a/src/zlib.zig b/src/zlib.zig index b85ddf431..d79965a2a 100644 --- a/src/zlib.zig +++ b/src/zlib.zig @@ -242,7 +242,7 @@ pub fn NewZlibReader(comptime Writer: type, comptime buffer_size: usize) type { state: State = State.Uninitialized, pub fn alloc(ctx: *anyopaque, items: uInt, len: uInt) callconv(.C) *anyopaque { - var this = @ptrCast(*ZlibReader, @alignCast(@alignOf(*ZlibReader), ctx)); + var this = @as(*ZlibReader, @ptrCast(@alignCast(ctx))); const buf = this.arena.allocator().alloc(u8, items * len) catch unreachable; return buf.ptr; } @@ -277,8 +277,8 @@ pub fn NewZlibReader(comptime Writer: type, comptime buffer_size: usize) type { zlib_reader.zlib = zStream_struct{ .next_in = input.ptr, - .avail_in = @intCast(uInt, input.len), - .total_in = @intCast(uInt, input.len), + .avail_in = @as(uInt, @intCast(input.len)), + .total_in = @as(uInt, @intCast(input.len)), .next_out = &zlib_reader.buf, .avail_out = buffer_size, @@ -426,7 +426,7 @@ pub const ZlibReaderArrayList = struct { state: State = State.Uninitialized, pub fn alloc(ctx: *anyopaque, items: uInt, len: uInt) callconv(.C) *anyopaque { - var this = @ptrCast(*ZlibReader, @alignCast(@alignOf(*ZlibReader), ctx)); + var this = @as(*ZlibReader, @ptrCast(@alignCast(ctx))); const buf = this.allocator.alloc(u8, items * len) catch unreachable; return buf.ptr; } @@ -478,11 +478,11 @@ pub const ZlibReaderArrayList = struct { zlib_reader.zlib = zStream_struct{ .next_in = input.ptr, - .avail_in = @intCast(uInt, input.len), - .total_in = @intCast(uInt, input.len), + .avail_in = @as(uInt, @intCast(input.len)), + .total_in = @as(uInt, @intCast(input.len)), .next_out = zlib_reader.list.items.ptr, - .avail_out = @intCast(u32, zlib_reader.list.items.len), + .avail_out = @as(u32, @intCast(zlib_reader.list.items.len)), .total_out = zlib_reader.list.items.len, .err_msg = null, @@ -562,7 +562,7 @@ pub const ZlibReaderArrayList = struct { try this.list.ensureUnusedCapacity(this.list_allocator, 4096); this.list.expandToCapacity(); this.zlib.next_out = &this.list.items[initial]; - this.zlib.avail_out = @intCast(u32, this.list.items.len - initial); + this.zlib.avail_out = @as(u32, @intCast(this.list.items.len - initial)); } if (this.zlib.avail_in == 0) { @@ -833,7 +833,7 @@ pub const ZlibCompressorArrayList = struct { state: State = State.Uninitialized, pub fn alloc(ctx: *anyopaque, items: uInt, len: uInt) callconv(.C) *anyopaque { - var this = @ptrCast(*ZlibCompressor, @alignCast(@alignOf(*ZlibCompressor), ctx)); + var this = @as(*ZlibCompressor, @ptrCast(@alignCast(ctx))); const buf = this.allocator.alloc(u8, items * len) catch unreachable; return buf.ptr; } @@ -873,11 +873,11 @@ pub const ZlibCompressorArrayList = struct { zlib_reader.zlib = zStream_struct{ .next_in = input.ptr, - .avail_in = @intCast(uInt, input.len), - .total_in = @intCast(uInt, input.len), + .avail_in = @as(uInt, @intCast(input.len)), + .total_in = @as(uInt, @intCast(input.len)), .next_out = zlib_reader.list.items.ptr, - .avail_out = @intCast(u32, zlib_reader.list.items.len), + .avail_out = @as(u32, @intCast(zlib_reader.list.items.len)), .total_out = zlib_reader.list.items.len, .err_msg = null, @@ -905,7 +905,7 @@ pub const ZlibCompressorArrayList = struct { ReturnCode.Ok => { try zlib_reader.list.ensureTotalCapacityPrecise(allocator, deflateBound(&zlib_reader.zlib, input.len)); zlib_reader.list_ptr.* = zlib_reader.list; - zlib_reader.zlib.avail_out = @truncate(uInt, zlib_reader.list.capacity); + zlib_reader.zlib.avail_out = @as(uInt, @truncate(zlib_reader.list.capacity)); zlib_reader.zlib.next_out = zlib_reader.list.items.ptr; return zlib_reader; @@ -973,7 +973,7 @@ pub const ZlibCompressorArrayList = struct { try this.list.ensureUnusedCapacity(this.list_allocator, 4096); this.list.expandToCapacity(); this.zlib.next_out = &this.list.items[initial]; - this.zlib.avail_out = @intCast(u32, this.list.items.len - initial); + this.zlib.avail_out = @as(u32, @intCast(this.list.items.len - initial)); } if (this.zlib.avail_out == 0) { |