dmd.common.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
nothrow this(size_tinitialSize);Construct given size.
-
Declaration
nothrow @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 @trusted voiddtor();Frees resources associated.
-
Declaration
nothrow ubyte*buf();For porting with ease from dmd.backend.outbuf.Outbuffer
-
Declaration
nothrow ubyte**bufptr();For porting with ease from dmd.backend.outbuf.Outbuffer
-
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
nothrow @trusted voidwrite16n(intv);Writes a 16 bit value, no reserve check.
-
Declaration
nothrow voidwrite16(intv);Writes a 16 bit value.
-
Declaration
nothrow @trusted voidwrite32(intv);Writes a 32 bit int.
-
Declaration
nothrow @trusted voidwrite64(longv);Writes a 64 bit int.
-
Declaration
pure nothrow voidwritestring(const(char)*s);
pure nothrow voidwritestring(const(char)[]s);
pure nothrow voidwritestring(strings);NOT zero-terminated
-
Declaration
pure nothrow voidwritestringln(const(char)[]s);
pure nothrow voidwriteString(const(char)[]s);
pure nothrow voidwriteString(strings);NOT zero-terminated, followed by newline
-
Declaration
pure nothrow voidwritenl();write newline
-
Declaration
nothrow @trusted voidwriteByten(intb);Writes an 8 bit byte, no reserve check.
-
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
nothrow 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.
-