mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 04:48:20 +00:00
io: fix compile errors
This commit is contained in:
parent
5d22c588e2
commit
1501734747
@ -1737,9 +1737,10 @@ pub fn writer_writeFile(
|
||||
const smaller_len = if (len_int == 0) max_count else @min(len_int, max_count);
|
||||
var off: std.os.linux.off_t = undefined;
|
||||
const off_ptr: ?*std.os.linux.off_t = if (in_offset.toInt()) |offset| b: {
|
||||
off = try std.math.cast(std.os.linux.off_t, offset);
|
||||
off = std.math.cast(std.os.linux.off_t, offset) orelse return error.Overflow;
|
||||
break :b &off;
|
||||
} else null;
|
||||
if (true) @panic("TODO");
|
||||
const n = std.os.linux.wrapped.sendfile(out_fd, in_fd, off_ptr, smaller_len) catch |err| switch (err) {
|
||||
error.UnsupportedOperation => break :sf,
|
||||
error.Unseekable => break :sf,
|
||||
|
||||
@ -34,7 +34,7 @@ const eof_reader: std.io.Reader.VTable = .{
|
||||
.streamReadVec = eof_streamReadVec,
|
||||
};
|
||||
|
||||
fn eof_writeSplat(context: ?*anyopaque, data: []const []const u8, splat: usize) anyerror!Reader.Status {
|
||||
fn eof_writeSplat(context: ?*anyopaque, data: []const []const u8, splat: usize) anyerror!usize {
|
||||
_ = context;
|
||||
_ = data;
|
||||
_ = splat;
|
||||
@ -44,11 +44,11 @@ fn eof_writeSplat(context: ?*anyopaque, data: []const []const u8, splat: usize)
|
||||
fn eof_writeFile(
|
||||
context: ?*anyopaque,
|
||||
file: std.fs.File,
|
||||
offset: u64,
|
||||
len: Reader.FileLen,
|
||||
offset: std.io.Writer.Offset,
|
||||
len: std.io.Writer.FileLen,
|
||||
headers_and_trailers: []const []const u8,
|
||||
headers_len: usize,
|
||||
) anyerror!Reader.Status {
|
||||
) anyerror!usize {
|
||||
_ = context;
|
||||
_ = file;
|
||||
_ = offset;
|
||||
@ -73,14 +73,14 @@ fn eof_posReadVec(ctx: ?*anyopaque, data: []const []u8, offset: u64) anyerror!Re
|
||||
return error.EndOfStream;
|
||||
}
|
||||
|
||||
fn eof_streamRead(ctx: ?*anyopaque, bw: *std.io.BufferedWriter, limit: Reader.Limit) Reader.Status {
|
||||
fn eof_streamRead(ctx: ?*anyopaque, bw: *std.io.BufferedWriter, limit: Reader.Limit) anyerror!Reader.Status {
|
||||
_ = ctx;
|
||||
_ = bw;
|
||||
_ = limit;
|
||||
return error.EndOfStream;
|
||||
}
|
||||
|
||||
fn eof_streamReadVec(ctx: ?*anyopaque, data: []const []u8) Reader.Status {
|
||||
fn eof_streamReadVec(ctx: ?*anyopaque, data: []const []u8) anyerror!Reader.Status {
|
||||
_ = ctx;
|
||||
_ = data;
|
||||
return error.EndOfStream;
|
||||
@ -91,13 +91,16 @@ pub fn initFixed(br: *BufferedReader, buffer: []const u8) void {
|
||||
br.* = .{
|
||||
.seek = 0,
|
||||
.storage = .{
|
||||
.buffer = .initBuffer(@constCast(buffer)),
|
||||
.buffer = .fromOwnedSlice(@constCast(buffer)),
|
||||
.unbuffered_writer = .{
|
||||
.context = undefined,
|
||||
.vtable = &eof_writer,
|
||||
},
|
||||
},
|
||||
.unbuffered_reader = &.{ .context = undefined, .vtable = &eof_reader },
|
||||
.unbuffered_reader = .{
|
||||
.context = undefined,
|
||||
.vtable = &eof_reader,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@ pub fn initFixed(bw: *BufferedWriter, buffer: []u8) void {
|
||||
.context = bw,
|
||||
.vtable = &fixed_vtable,
|
||||
},
|
||||
.buffer = buffer,
|
||||
.buffer = .initBuffer(buffer),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -85,6 +85,11 @@ pub fn posReadAll(r: Reader, w: *std.io.BufferedWriter, start_offset: u64) anyer
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns total number of bytes written to `w`.
|
||||
pub fn streamRead(r: Reader, w: *std.io.BufferedWriter, limit: Limit) anyerror!Status {
|
||||
return r.vtable.streamRead.?(r.context, w, limit);
|
||||
}
|
||||
|
||||
/// Returns total number of bytes written to `w`.
|
||||
pub fn streamReadAll(r: Reader, w: *std.io.BufferedWriter) anyerror!usize {
|
||||
const vtable_streamRead = r.vtable.streamRead.?;
|
||||
|
||||
@ -96,7 +96,7 @@ pub fn writeFile(
|
||||
pub fn unimplemented_writeFile(
|
||||
context: ?*anyopaque,
|
||||
file: std.fs.File,
|
||||
offset: u64,
|
||||
offset: Offset,
|
||||
len: FileLen,
|
||||
headers_and_trailers: []const []const u8,
|
||||
headers_len: usize,
|
||||
@ -136,7 +136,7 @@ fn null_writeSplat(context: ?*anyopaque, data: []const []const u8, splat: usize)
|
||||
const pattern = data[headers.len..];
|
||||
var written: usize = pattern.len * splat;
|
||||
for (headers) |bytes| written += bytes.len;
|
||||
return .{ .len = written };
|
||||
return written;
|
||||
}
|
||||
|
||||
fn null_writeFile(
|
||||
@ -156,12 +156,12 @@ fn null_writeFile(
|
||||
const stat = try file.stat();
|
||||
n += stat.size - off;
|
||||
for (headers_and_trailers[headers_len..]) |bytes| n += bytes.len;
|
||||
return .{ .len = n };
|
||||
return n;
|
||||
}
|
||||
@panic("TODO stream from file until eof, counting");
|
||||
}
|
||||
for (headers_and_trailers) |bytes| n += bytes.len;
|
||||
return .{ .len = len.int() + n };
|
||||
return len.int() + n;
|
||||
}
|
||||
|
||||
test @"null" {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user