Io module

make_line_reader

procedureextensionexperimentalSource

A line reader over source that accepts lines of up to limit bytes (not counting the line ending). The limit stops a peer that never sends a newline from filling memory.

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), "one\r\ntwo\n");
    Io.shutdown_write(far);

    lines := Io.make_line_reader(Io.reader_of(near), limit = 1024);
    defer Io.free_line_reader(*lines);

    line, error := Io.read_line(*lines);
    assert(error == .NONE && line == "one");
});
make_line_reader :: (source: Reader, limit := DEFAULT_LINE_LIMIT) -> Line_Reader

Parameters

source: Reader

Returns

See also