View source code
Display the source code in std/outbuffer.d from which thispage was generated on github.
Report a bug
If you spot a problem with this page, click here to create aBugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.Requires a signed-in GitHub account. This works well for small changes.If you'd like to make larger changes you may want to consider usinglocal clone.

Function std.outbuffer.OutBuffer.alignSize

Append bytes until the buffer aligns on a power of 2 boundary.

void alignSize(
  ulong alignsize,
  ubyte val = cast(ubyte)0u
) pure nothrow @safe;

By default fills with 0 bytes.

Parameters

NameDescription
alignsize Alignment value. Must be power of 2.
val Value to fill, defaults to 0.

Example

OutBuffer buf = new OutBuffer();
buf.write(cast(ubyte) 1);
buf.align2();
writeln(buf.toBytes()); // "\x01\x00"
buf.write(cast(ubyte) 2);
buf.align4();
writeln(buf.toBytes()); // "\x01\x00\x02\x00"
buf.write(cast(ubyte) 3);
buf.alignSize(8);
writeln(buf.toBytes()); // "\x01\x00\x02\x00\x03\x00\x00\x00"

Example

ditto

OutBuffer buf = new OutBuffer();
buf.write(cast(ubyte) 1);
buf.align2(0x55);
writeln(buf.toBytes()); // "\x01\x55"
buf.write(cast(ubyte) 2);
buf.align4(0x55);
writeln(buf.toBytes()); // "\x01\x55\x02\x55"
buf.write(cast(ubyte) 3);
buf.alignSize(8, 0x55);
writeln(buf.toBytes()); // "\x01\x55\x02\x55\x03\x55\x55\x55"

Authors

Walter Bright

License

Boost License 1.0.