dmd.common.string
Common string
functions including filename manipulation.
License
Source: common/string.d
Documentation: https://dlang.org/phobos/dmd_common_string.html
-
Declaration
struct
SmallBuffer
(Element);Defines a temporary array of
Element
s using a fixed-length buffer as back store. If the length of the buffer suffices, it is readily used. Otherwise,malloc
is used to allocate memory for the array andfree
is used for deallocation in the destructor.Discussion
This type is meant to use exclusively as an automatic variable. It is not default constructible or copyable.
Examples
ditto
char[230] buf = void; auto a = SmallBuffer!char(10, buf); assert(a[] is buf[0 .. 10]); auto b = SmallBuffer!char(1000, buf); assert(b[] !is buf[]); b.create(1000); assert(b.length == 1000); assert(b[] !is buf[]);
-
Declaration
scope this(size_t
len
, return scope Element[]buffer
);Construct a SmallBuffer
Parameters
size_t
len
number of elements in array
Element[]
buffer
slice to use as backing-store, if
len
will fit in it -
Declaration
scope void
create
(size_tlen
);Resize existing SmallBuffer.
Parameters
size_t
len
number of elements after resize
-
Declaration
pure nothrow @nogc auto
asDString
(C)(C*stringz
);Converts a zero-terminated C string to a D slice. Takes linear time and allocates no memory.
Parameters
C*
stringz
the C string to be converted
Return Value
a slice comprehending the string. The terminating 0 is not part of the slice.
Examples
const char* p = "123".ptr; assert(p.asDString == "123");