← Back to the index

Module std/io/text.vv

The io/text module provides a buffered text reader using an encoding.

Example:

import text from "std/io/text.vv"
import file from "std/fs/file.vv"
import utf8 from "std/encoding/utf8.vv"

let f = try file.reader("test.txt")
let r = try text.reader(f, utf8)
// text.close also closes the internal reader (f), so no need for a separate defer for f.
defer text.close(r)
let line = try text.read_line(r)

Table of Contents

Exports

fun close(r)

Closes the reader.

  • r: The reader record.

fun read(r)

Reads a single character from the reader.

  • r: The text reader record.

Returns a result containing a record { char = c, size = n }.

fun peek(r)

Peeks a single character without advancing the position.

  • r: The text reader record.

Returns a result containing a record { char = c, size = n }.

fun read_line(r)

Reads a line from the reader.

  • r: The text reader record.

Returns a result containing a list of characters (excluding line breaks).

fun read_all(r)

Reads all remaining content as a list of characters.

  • r: The text reader record.

Returns a result containing a list of characters.

fun reader(source_reader, encoding_module)

Creates a buffered text reader using an encoding.

  • source_reader: An object with a read(length) method.
  • encoding_module: An encoding module (e.g., utf8 or sjis).

Returns a result containing a text reader record.