io ~master

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:

<img src="logo.svg" width="200" alt="Logo">

Build Status Build Status codecov

Documentation std.io

IOs are thin, OS-independent abstractions over 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.isOpen);
assert(!io.isOpen);

auto rc = refCounted(io2.move);
auto rc2 = rc;
assert(rc.isOpen);
assert(rc2.isOpen);

IOs can be converted to polymorphic interfaces if necessary.

Input input = ioObject(io.move);
Authors:
  • Martin Nowak
Dependencies:
none
Versions:
0.3.5 2023-Sep-19
0.3.4 2022-Feb-04
0.3.3 2021-Nov-05
0.3.2 2021-Mar-14
0.3.1 2020-Jul-26
Show all 15 versions
Download Stats:
  • 0 downloads today

  • 10 downloads this week

  • 56 downloads this month

  • 135931 downloads total

Score:
2.3
Short URL:
io.dub.pm