Report a bug
If you spot a problem with this page, click here to create a GitHub 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 using
a local clone.
mir.small_string
Small String
The module contains self-contained generic small string implementaton.
SmallString supports ASDF - Json Serialisation Library.
See also include/mir/small_series.h for a C++ version of this type.
Both C++ and D implementations have the same ABI and name mangling.
Authors:
Ilya Yaroshenko
- struct
SmallString
(uint maxLength) if (maxLength); - Self-contained generic Small String implementaton.Examples:
SmallString!16 s16; assert(s16.empty); auto s8 = SmallString!8("Hellow!!"); assert(s8 == "Hellow!!", s8[]); s16 = s8; assert(s16 == "Hellow!!", s16[]); s16[7] = '@'; s8 = null; assert(s8.empty); s8 = s16; assert(s8 == "Hellow!@"); auto s8_2 = s8; assert(s8_2 == "Hellow!@"); assert(s8_2 == s8); assert(s8 < "Hey"); assert(s8 > "Hellow!"); assert(s8.opCmp("Hey") < 0); assert(s8.opCmp(s8) == 0);
Examples:Concatenationauto a = SmallString!16("asdf"); a ~= " "; auto b = a ~ "qwerty"; static assert(is(typeof(b) == SmallString!16)); assert(b == "asdf qwerty"); b.put('!'); b.put("!"); assert(b == "asdf qwerty!!");
- this(typeof(null));
this(scope const(char)[]str
);
this(uint n)(auto ref scope const SmallString!nstr
);
this(Range)(auto ref Rangestr
)
if (isIterable!Range); - Constructor
- ref typeof(this)
opAssign
(typeof(null)) return;
ref @trusted typeof(this)opAssign
(scope const(char)[]str
) return;
ref typeof(this)opAssign
(uint n)(auto ref scope const SmallString!nrhs
) return
if (n != maxLength);
ref typeof(this)opAssign
(uint n)(const SmallString!nrhs
) return
if (n != maxLength);
nothrow @trusted voidtrustedAssign
(scope const(char)[]str
) return; - = operator
- ref @trusted typeof(this)
append
(charc
); - ref @trusted typeof(this)
append
(scope const(char)[]str
);
aliasput
= append;
templateopOpAssign
(string op : "~") - const scope SmallString
concat
(scope const(char)[]str
);
templateopBinary
(string op : "~") - inout scope @trusted inout(char)[]
opIndex
() return; - Returns an scope common string.The property is used as common string representation self alias. The alias helps with [], [i], [i .. j], ==, and != operations and implicit conversion to strings.
- inout ref scope inout(char)
opIndex
(size_tindex
) return; - @property bool
empty
(); - @property size_t
length
(); - alias
toString
= opIndex; - size_t
toHash
(); - Hash implementation
- scope bool
opEquals
(ref scope const SmallStringrhs
);
scope boolopEquals
(SmallStringrhs
);
scope boolopEquals
(uint rhsMaxLength)(auto ref scope const SmallString!rhsMaxLengthrhs
)
if (rhsMaxLength != maxLength);
scope boolopEquals
()(scope const(char)[]str
);
scope intopCmp
(uint rhsMaxLength)(auto ref scope const SmallString!rhsMaxLengthrhs
);
scope intopCmp
()(scope const(char)[]str
); - Comparisons operator overloads
Copyright © 2016-2022 by Ilya Yaroshenko | Page generated by
Ddoc on Tue Jan 11 06:37:13 2022