buffered
Mojo module 🡭
buffered
Buffered reading and writing.
Examples
BufferedReader:
from testing import assert_equal
from extramojo.io.buffered import BufferedReader
fn test_read_until(file: String, expected_lines: List[String]) raises:
var buffer_capacities = List(10, 100, 200, 500)
for cap in buffer_capacities:
var fh = open(file, "r")
var reader = BufferedReader(fh^, buffer_capacity=cap)
var buffer = List[UInt8]()
var counter = 0
while reader.read_until(buffer) != 0:
assert_equal(List(expected_lines[counter].as_bytes()), buffer)
counter += 1
buffer.clear()
assert_equal(counter, len(expected_lines))
print(String("Successful read_until with buffer capacity of {}").format(cap))
BufferedWriter:
from extramojo.io.buffered import BufferedWriter
fn test_buffered_writer(file: String, expected_lines: List[String]) raises:
var fh = BufferedWriter(open(String(file), "w"), buffer_capacity=128)
for i in range(len(expected_lines)):
fh.write_bytes(expected_lines[i].as_bytes())
fh.write_bytes("
".as_bytes())
fh.flush()
fh.close()
test_read_until(String(file), expected_lines)
Aliases
NEW_LINE = 10
SIMD_U8_WIDTH = simdwidthof[::DType,__mlir_type.!kgen.target]()
BUF_SIZE = 131072
Structs
BufferedReader
: BufferedReader for readying lines and bytes from a file in a buffered way.BufferedWriter
: A BufferedWriter.