add std::io::stream::ByteBuffer; fix std::io::Path::walk (#895)

* lib/std/io/stream: add some inlines

Signed-off-by: Pierre Curto <pierre.curto@gmail.com>

* lib/std/io/stream add ByteBuffer

Signed-off-by: Pierre Curto <pierre.curto@gmail.com>

* lib/std/io/path: fix free of paths in walk

Signed-off-by: Pierre Curto <pierre.curto@gmail.com>

* lib/std/bits: remove unnecessary receiver type

Signed-off-by: Pierre Curto <pierre.curto@gmail.com>

---------

Signed-off-by: Pierre Curto <pierre.curto@gmail.com>
This commit is contained in:
Pierre Curto
2023-07-29 21:21:45 +02:00
committed by GitHub
parent 108b2244d8
commit 6808a38c9f
8 changed files with 283 additions and 116 deletions

View File

@@ -0,0 +1,29 @@
module bytebuffer_test @test;
import std::io;
fn void! write_read_test()
{
ByteBuffer buffer;
buffer.init(0)!;
buffer.write("hello")!;
char[8] bytes;
usz n = buffer.read(bytes[..])!;
assert(n == 5);
assert((String)bytes[:n] == "hello");
buffer.write("hello world")!;
n = buffer.read(bytes[..])!;
assert(n == bytes.len);
assert((String)bytes[:n] == "hello wo");
assert(buffer.read_idx == 1);
char c = buffer.read_byte()!;
assert(c == 'r');
buffer.pushback_byte()!;
n = buffer.read(bytes[..])!;
assert((String)bytes[:n] == "rld");
assert(buffer.read_idx == 1);
}