Reads to the end of the source into memory from context.allocator (free it with free).
size_hint is the expected length, when it is known. On any error the bytes read so far are
freed.
Io :: #import "Extensions/Io";
Io.io_run(() {
near, far := Io.make_pipe();
defer Io.close(near);
defer Io.close(far);
Io.write(Io.writer_of(far), "everything");
Io.shutdown_write(far);
data, error := Io.read_all(Io.reader_of(near));
assert(error == .NONE && cast(string) data == "everything");
free(data.data);
});read_all :: (reader: Reader, size_hint := 0) -> ([] u8, Io_Error)
Parameters
- reader: Reader
- size_hint := 0
Returns
- [] u8