io 0.1.1
Core I/O functionality.
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
io
Documentation std.io
IOs are thin, OS-independent abstractions I/O devices.
size_t write(const scope ubyte[] buffer);
size_t read(scope ubyte[] buffer);
IOs support scatter/gather read/write.
size_t write(const scope ubyte[][] buffers...);
size_t read(scope ubyte[][] buffers...);
IOs are @safe
and @nogc
.
void read() @safe @nogc
{
auto f = File(chainPath("tmp", "file.txt"));
ubyte[128] buf;
f.read(buf[]);
// ...
}
IOs use exceptions for error handling.
try
File("");
catch (IOException e)
{}
IOs use unique ownership and are moveable but not copyable (Use refCounted for shared ownership).
io2 = io.move;
assert(!io2.isClosed);
assert(io.isClosed);
auto rc = refCounted(io2.move);
auto rc2 = rc;
IOs can be converted to polymorphic interfaces if necessary.
Input input = ioObject(io.move);
- Registered by Steven Schveighoffer
- 0.1.1 released 6 years ago
- schveiguy/io
- BSL-1.0 (Boost)
- Copyright © 2017, Martin Nowak