Io module

read_all

procedureextensionexperimentalSource

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.

Example↗
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

See also