D Programming Language 2.0

Last update Sat May 19 02:03:02 2012

io.port

File stdin;
File stdout;
File stderr;

StdInTextPort din;
StdOutTextPort dout;
StdErrTextPort derr;

void write(Writer, T...)(auto ref Writer writer, T args);
void writef(Writer, T...)(auto ref Writer writer, T args);
void writeln(Writer, T...)(auto ref Writer writer, T args);
void writefln(Writer, T...)(auto ref Writer writer, T args);
Output args to writer.

void write(T...)(T args);
void writef(T...)(T args);
void writeln(T...)(T args);
void writefln(T...)(T args);
Output args to io.port.dout.

uint readf(Reader, Data...)(Reader reader, in char[] format, Data data);
Input datas from reader with specified format.

uint readf(Data...)(in char[] format, Data data);
Input datas from io.port.din.

auto textPort(Dev)(Dev device);
Configure text I/O port with following translations:
  • Unicode transcoding. If original device element is ubyte, treats as UTF-8 device.
  • New-line conversion, replace '\r', '\n', '\r\n' to '\n' for input, and vice versa.
  • Buffering. For output, line buffering is done.

struct TextPort(Dev);
Implementation of text port.

bool empty();
dchar front();
void popFront();
Provides character input range if original device is source.

int opApply(scope int delegate(dchar) dg);
for efficient character input range iteration.

@property auto lines(String = const(B)[])();
returns line range.

Example:
    foreach (ln; stdin.textPort().lines) {}

void put()(dchar data);
void put()(const(B)[] data);
void put()(const(dchar)[] data);
void put(C)(const(C)[] data);
Provides character output range if original device is sink.

struct LinePort(Dev,String : Char[],Char);
Generates line range over text port.

const bool empty();
const String front();
void popFront();
Provides line input range.