Module sys/bufio/buf_reader

sys/bufio/buf_reader

Buffered reader for file descriptors.

Wraps a file descriptor with an internal buffer for efficient reads. Reduces the number of system calls by reading data in larger chunks.

Example

{ BufReader } :: import "std/sys/bufio/buf_reader";
IO_file :: import "std/sys/file";

reader := BufReader.new(fd);
line := io.await(reader.read_line(using(io)));
match(line,
  .Ok(.Some(s)) => println(s),
  .Ok(.None) => println("EOF"),
  .Err(e) => println(e.to_string())
);

Types

BufReader object
BufReader

Fields

NameTypeDescription
_fdi32
_bufArrayList(u8)
_posusize
_filledusize
_offsetu64
_capacityusize
impl(BufReader, ...)
new : (BufReader) fn(fd : i32) -> BufReader

Parameters

NameTypeNotes
fdi32

Returns: BufReader

with_capacity : (BufReader) fn(fd : i32, capacity : usize) -> BufReader

Parameters

NameTypeNotes
fdi32
capacityusize

Returns: BufReader

fd : (BufReader) fn(self : BufReader) -> i32

Parameters

NameTypeNotes
selfBufReader

Returns: i32

buffered : (BufReader) fn(self : BufReader) -> usize

Parameters

NameTypeNotes
selfBufReader

Returns: usize

read_line : (BufReader) fn(self : BufReader, using(io : IO)) -> Impl(Future(Result(Option(String), IOError), IO))

Parameters

NameTypeNotes
selfBufReader

Returns: Impl(Future(Result(Option(String), IOError), IO))

read : (BufReader) fn(self : BufReader, buf : *(u8), size : u32, using(io : IO)) -> Impl(Future(Result(i32, IOError), IO))

Parameters

NameTypeNotes
selfBufReader
buf*(u8)
sizeu32

Returns: Impl(Future(Result(i32, IOError), IO))

read_bytes : (BufReader) fn(self : BufReader, using(io : IO)) -> Impl(Future(Result(ArrayList(u8), IOError), IO))

Parameters

NameTypeNotes
selfBufReader

Returns: Impl(Future(Result(ArrayList(u8), IOError), IO))

read_to_string : (BufReader) fn(self : BufReader, using(io : IO)) -> Impl(Future(Result(String, IOError), IO))

Parameters

NameTypeNotes
selfBufReader

Returns: Impl(Future(Result(String, IOError), IO))