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_array
Small Array
The module contains self-contained generic small array implementaton.
SmallArray supports ASDF - Json Serialisation Library.
Authors:
Ilya Yaroshenko
- struct
SmallArray
(T, uint maxLength) if (maxLength); - Examples:
SmallArray!(char, 16) s16; assert(s16.empty); auto s8 = SmallArray!(char, 8)("Hellow!!"); assert(!s8.empty); assert(s8 == "Hellow!!", s8[]); s16 = s8; assert(s16 == "Hellow!!", s16[]); s16[7] = '@'; s8 = null; assert(s8.empty); assert(s8 == null); 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 = SmallArray!(char, 16)("asdf"); a ~= " "; auto b = a ~ "qwerty"; static assert(is(typeof(b) == SmallArray!(char, 16))); assert(b == "asdf qwerty"); b.put('!'); b.put("!"); assert(b == "asdf qwerty!!");
- alias
serdeKeysProxy
= T; - this(typeof(null));
this(V[]array
);
nothrow this(const SmallArrayarray
);
this(uint n)(const SmallArray!(T, n)array
);
this(uint n)(ref const SmallArray!(T, n)array
);
this(Range)(auto ref Rangearray
)
if (isIterable!Range); - Constructor
- ref typeof(this)
opAssign
(typeof(null)) return;
ref @trusted typeof(this)opAssign
(V[]array
) return;
nothrow ref typeof(this)opAssign
(ref const SmallArrayrhs
) return;
nothrow ref typeof(this)opAssign
(const SmallArrayrhs
) return;
ref typeof(this)opAssign
(uint n)(ref const SmallArray!(T, n)rhs
) return
if (n != maxLength);
ref typeof(this)opAssign
(uint n)(const SmallArray!(T, n)rhs
) return
if (n != maxLength); - = operator
- @trusted void
trustedAssign
(V[]array
); - ref typeof(this)
append
(Telem
); - void
trustedAppend
(Telem
); - ref typeof(this)
append
(V[]array
);
aliasput
= append;
templateopOpAssign
(string op : "~") - const scope SmallArray
concat
(V[]array
);
templateopBinary
(string op : "~") - inout scope @trusted inout(T)[]
opIndex
() return; - Returns an scope common array.The property is used as common array representation self alias. The alias helps with [], [i], [i .. j], ==, and != operations and implicit conversion to strings.
- inout ref scope inout(T)
opIndex
(size_tindex
) return; - @property bool
empty
(); - @property size_t
length
(); - size_t
toHash
(); - Hash implementation
- bool
opEquals
(ref const SmallArrayrhs
);
boolopEquals
(SmallArrayrhs
);
boolopEquals
()(V[]array
);
boolopEquals
(uint rhsMaxLength)(auto ref SmallArray!(T, rhsMaxLength)array
);
autoopCmp
()(V[]array
);
autoopCmp
(uint rhsMaxLength)(auto ref SmallArray!(T, rhsMaxLength)array
); - Comparisons operator overloads
Copyright © 2016-2022 by Ilya Yaroshenko | Page generated by
Ddoc on Tue Jan 11 06:37:13 2022