dmd.root.outbuffer
An expandable buffer in which you can write text or binary data.
License
Source: root/outbuffer.d
Documentation: https://dlang.org/phobos/dmd_root_outbuffer.html
-
Declaration
structOutBuffer;is a write-only output stream of untyped data. It is backed up by a contiguous array or a memory-mapped file.OutBuffer-
Declaration
booldoindent;Whether to indent
-
Declaration
boolspaces;Whether to indent by 4
spacesor by tabs; -
Declaration
intlevel;Current indent
level -
Declaration
@trusted this(const(char)*filename);Construct from
filename. Will map the file into memory (or create it anew if necessary) and start writing at the beginning of it.Parameters
const(char)*filenamezero-terminated name of file to map into memory
-
Declaration
pure nothrow @nogc @trusted char*extractData();Transfer ownership of the allocated data to the caller.
Return Value
pointer to the allocated data
-
Declaration
pure nothrow @trusted voiddestroy();Releases all resources associated with
thisand resets it as an empty memory buffer. The config variablesnotlinehead,doindentetc. are not changed. -
Declaration
pure nothrow voidreserve(size_tnbytes);Reserves
bytes of additional memory (or file space) in advance. The resulting capacity is at least the previous length plusnbytes.nbytesParameters
size_tnbytesthe number of additional bytes to
reserve -
Declaration
pure nothrow @nogc @safe voidsetsize(size_tsize);Shrink the
sizeof the data to.sizeParameters
size_tsizenew
sizeof data, must be <=.length -
Declaration
pure nothrow voidwritenl();write newline
-
Declaration
pure nothrow char[]allocate(size_tnbytes);Allocate space, but leave it uninitialized.
Parameters
size_tnbytesamount to
allocateReturn Value
slice of the allocated space to be filled in
-
Declaration
pure nothrow voidprint(ulongu);Convert
to a string and append it to the buffer.uParameters
ulonguintegral value to append
-
Declaration
pure nothrow size_tbracket(size_ti, const(char)*left, size_tj, const(char)*right);Insert
leftati, andrightatj. Return index just pastright. -
Declaration
pure nothrow size_tinsert(size_toffset, const(void)*p, size_tnbytes);Return Value
offset+nbytes -
Declaration
const pure nothrow @nogc @safe const(char)[]opSlice();Return Value
a non-owning const slice of the buffer contents
-
Declaration
pure nothrow char[]extractSlice(boolnullTerminate= false);Extract the data as a slice and take ownership of it.
Discussion
When
trueis passed as an argument, this function behaves likedmd.utils.toDString(thisbuffer.extractChars()).Parameters
boolnullTerminateWhen
true, the data will benullterminated. This is useful to call C functions or store the result inStrings. Defaults tofalse. -
Declaration
boolmoveToFile(const char*filename);Destructively saves the contents of
thisto. As an optimization, if the file already has identical contents with the buffer, no copying is done. This is because on SSD drives reading is often much faster than writing and because there's a high likelihood an identical file is written during the build process.filenameParameters
char*filenamethe name of the file to receive the contents
Return Value
trueiff the operation succeeded.
-