Serialize data to ubyte
arrays.
OutBuffer
provides a way to build up an array of bytes out of raw data. It is useful for things like preparing an array of bytes to write out to a file. OutBuffer
's byte order is the format native to the computer. To control the byte order (endianness), use a class derived from OutBuffer
. OutBuffer
's internal buffer is allocated with the GC. Pointers stored into the buffer are scanned by the GC, but you have to ensure proper alignment, e.g. by using alignSize((void*).sizeof).
import std.string : cmp; OutBuffer buf = new OutBuffer(); writeln(buf.offset); // 0 buf.write("hello"); buf.write(cast(byte) 0x20); buf.write("world"); buf.printf(" %d", 62665); writeln(cmp(buf.toString(), "hello world 62665")); // 0 buf.clear(); writeln(cmp(buf.toString(), "")); // 0 buf.write("New data"); writeln(cmp(buf.toString(), "New data")); // 0
Convert to array of bytes.
Preallocate nbytes
more to the size of the internal buffer.
This is a speed optimization, a good guess at the maximum size of the resulting buffer will improve performance by eliminating reallocations and copying.
put
enables OutBuffer to be used as an OutputRange.
Append data to the internal buffer.
Append nbytes
of 0 to the internal buffer.
0-fill to align on power of 2 boundary.
Clear the data in the buffer
Optimize common special case alignSize(2)
Optimize common special case alignSize(4)
Convert internal buffer to array of chars.
Append output of C's vprintf
() to internal buffer.
Append output of C's printf
() to internal buffer.
Formats and writes its arguments in text format to the OutBuffer.
Char[] fmt
| format string as described in std.format.formattedWrite
|
A args
| arguments to be formatted |
std.stdio.writef
; std.format.formattedWrite
;OutBuffer b = new OutBuffer(); b.writef("a%sb", 16); writeln(b.toString()); // "a16b"
Formats and writes its arguments in text format to the OutBuffer, followed by a newline.
Char[] fmt
| format string as described in std.format.formattedWrite
|
A args
| arguments to be formatted |
std.stdio.writefln
; std.format.formattedWrite
;OutBuffer b = new OutBuffer(); b.writefln("a%sb", 16); writeln(b.toString()); // "a16b\n"
At offset index
into buffer, create nbytes
of space by shifting upwards all data past index
.
© 1999–2017 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/std_outbuffer.html