BasicString - multiple declarations
Struct BasicString
The BasicString
is the generalization of struct string for character of type char
, wchar
or dchar
.
struct BasicString(_Char, ulong N = 1, _Allocator)
if (isSomeChar!_Char && is(Unqual!_Char == _Char));
BasicString
use utf-8, utf-16 or utf-32 encoding.
BasicString
use SSO (Small String Optimization).
Template parameters:
_Char
Character type. (char
, wchar
or dchar
).
_Allocator
Type of the allocator object used to define the storage allocation model. By default DefaultAllocator
is used.
N
Minimal capacity of BasicString
(increase max length of small string).
Constructors
Name | Description |
---|---|
this
(nil, fw)
|
Constructs a empty BasicString object.
|
this
(allocator)
|
Constructs a empty BasicString object with allocator .
|
this
(character, fw)
|
Constructs a BasicString object, initializing its value to char value character .
|
this
(character, allocator)
|
Constructs a BasicString object, initializing its value to char value character .
|
this
(slice, fw)
|
Constructs a BasicString object from char slice slice .
|
this
(slice, allocator)
|
Constructs a BasicString object from char slice slice .
|
this
(integer, fw)
|
Constructs a BasicString object, initializing its value from integer integer .
|
this
(integer, allocator)
|
Constructs a BasicString object, initializing its value from integer integer .
|
this
(rhs)
|
Constructs a BasicString object from other BasicString object.
|
this
(rhs, )
|
Forward constructor. |
this
(rhs)
|
Copy constructor if AllocatorType is statless.
|
this
(rhs)
|
Copy constructor if AllocatorType has state.
|
Properties
Name | Type | Description |
---|---|---|
backCodePoint [get, set]
|
dchar | Returns last utf code point(dchar ) of the BasicString .
|
backCodeUnit [get, set]
|
BasicString | Returns the last character(utf8: char , utf16: wchar , utf32: dchar ) of the BasicString .
|
capacity [get]
|
size_t | Returns the size of the storage space currently allocated for the BasicString , expressed in terms of characters (utf code units).
|
empty [get]
|
bool | Returns whether the string is empty (i.e. whether its length is 0). |
frontCodePoint [get]
|
dchar | Returns first utf code point(dchar ) of the BasicString .
|
frontCodeUnit [get, set]
|
BasicString | Returns the first character(utf8: char , utf16: wchar , utf32: dchar ) of the BasicString .
|
full [get]
|
bool | Returns whether the string is full (i.e. whether its length is equal to maximalCapacity). |
length [get]
|
size_t | Returns the length of the string, in terms of number of characters (utf code units). |
ptr [get]
|
inout(BasicString | Return pointer to the first element. |
small [get]
|
bool | Return true if string is small (Small String Optimization)
|
valid [get]
|
bool | Return true if string is valid utf string.
|
Methods
Name | Description |
---|---|
append
(val, count)
|
Extends the BasicString by appending additional characters at the end of string.
|
build
(args)
|
Static function which return BasicString construct from arguments args .
|
clear
()
|
Erases the contents of the BasicString , which becomes an empty string (with a length of 0 characters).
|
contains
(elm)
|
Same as operator in
|
downsize
(n)
|
Downsizes the string to a length of n characters (utf code units).
|
erase
(pos)
|
Removes specified characters from the string. |
insert
(pos, val, count)
|
Inserts additional characters into the BasicString right before the character indicated by pos or ptr .
|
opAssign
(nil)
|
Assigns a new value rhs to the string, replacing its current contents.
|
opBinary
(rhs)
|
Returns a newly constructed BasicString object with its value being the concatenation of the characters in this followed by those of rhs .
|
opBinaryRight
(lhs)
|
Returns a newly constructed BasicString object with its value being the concatenation of the characters in lhs followed by those of this .
|
opBinaryRight
(elm)
|
Operator in
|
opCast
()
|
Support for quelifier cast. |
opCmp
(rhs)
|
Compares the contents of a string with another string, range, char/wchar/dchar or integer. |
opDollar
()
|
Returns the length of the string, in terms of number of characters. |
opEquals
(rhs)
|
Compares the contents of a string with another string, range, char/wchar/dchar or integer. |
opIndex
()
|
Return slice of all character. |
opIndex
(pos)
|
Returns character at specified location pos .
|
opIndexAssign
(val, pos)
|
Assign character at specified location pos to value val .
|
opSlice
(begin, end)
|
Returns a slice [begin .. end]. If the requested substring extends past the end of the string, the returned slice is [begin .. length()]. |
popBackCodePoint
()
|
Erases the last utf code point of the BasicString , effectively reducing its length by code point length.
|
popBackCodeUnit
()
|
Erases the last code unit of the BasicString , effectively reducing its length by 1.
|
proxySwap
(rhs)
|
Swaps the contents of this and rhs .
|
release
()
|
Erases and deallocate the contents of the BasicString , which becomes an empty string (with a length of 0 characters).
|
replace
(pos, len, val, count)
|
Replaces the portion of the string that begins at character pos and spans len characters (or the part of the string in the slice slice ) by new contents.
|
reserve
(n)
|
Requests that the string capacity be adapted to a planned change in size to a length of up to n characters (utf code units). |
resize
(n, ch)
|
Resizes the string to a length of n characters (utf code units).
|
shrinkToFit
()
|
Requests the BasicString to reduce its capacity to fit its length.
|
toHash
()
|
Calculates the hash value of string. |
upsize
(n, ch)
|
Upsizes the string to a length of n characters (utf code units).
|
Aliases
Name | Description |
---|---|
allocator
|
Returns allocator. |
AllocatorType
|
Type of the allocator object used to define the storage allocation model. By default DefaultAllocator is used.
|
allowHeap
|
Allow heap (false only if Allcoator is void)
|
back
|
Alias to backCodeUnit .
|
CharType
|
Character type. (char , wchar or dchar ).
|
front
|
Alias to frontCodeUnit .
|
maximalCapacity
|
Maximal capacity of string, in terms of number of characters (utf code units). |
minimalCapacity
|
Minimal capacity of string (same as maximum capacity of small string), in terms of number of characters (utf code units). |
opOpAssign
|
Extends the BasicString by appending additional characters at the end of its current value.
|
popBack
|
Alias to popBackCodeUnit .
|
put
|
Alias to append. |
Example
alias String = BasicString!(
char, //character type
32, //additional padding to increas max size of small string (small string does not allocate memory).
DefaultAllocator //allocator type (can be stateless or with state)
);
//copy:
{
String a = "123";
String b = a;
a = "456"d;
assert(a == "456");
assert(b == "123");
}
//append:
{
String str = "12";
str .append("34"); //same as str += "34"
str .append("56"w); //same as str += "56"w
str .append(7); //same as str += 7;
str .append('8');
assert(str == "12345678");
str .clear();
assert(str .empty);
}
//erase:
{
String str = "123456789";
str .erase(2, 2);
assert(str == "1256789");
}
//insert:
{
String str = "123456789";
str .insert(1, "xyz");
assert(str == "1xyz23456789");
}
//replace:
{
String str = "123456789";
str .replace(1, 2, "xyz");
assert(str == "1xyz456789");
}
//slice to string:
()@trusted{
String str = "123456789";
const(char)[] dstr = str[];
assert(str == dstr);
}();
Alias BasicString
Alias to BasicString
with different order of template parameters