Fix SList documentation for insertFront and insertBefore

This commit is contained in:
Eugen Wissner 2017-03-29 17:22:25 +02:00
parent b870179a35
commit 4cd6126d6b

View File

@ -334,13 +334,6 @@ struct SList(T)
* *
* Returns: The number of elements inserted. * Returns: The number of elements inserted.
*/ */
size_t insertFront(ref T el) @trusted
{
head = allocator.make!Entry(el, head);
return 1;
}
/// Ditto.
size_t insertFront(R)(R el) size_t insertFront(R)(R el)
if (isImplicitlyConvertible!(R, T)) if (isImplicitlyConvertible!(R, T))
{ {
@ -383,6 +376,13 @@ struct SList(T)
return insertFront!(T[])(el[]); return insertFront!(T[])(el[]);
} }
/// Ditto.
size_t insertFront(ref T el) @trusted
{
head = allocator.make!Entry(el, head);
return 1;
}
/// Ditto. /// Ditto.
alias insert = insertFront; alias insert = insertFront;
@ -422,34 +422,13 @@ struct SList(T)
* *
* Params: * Params:
* R = Type of the inserted value(s). * R = Type of the inserted value(s).
* r = Range extracted from this list.
* el = New element(s). * el = New element(s).
* *
* Returns: The number of elements inserted. * Returns: The number of elements inserted.
* *
* Precondition: $(D_PARAM r) is extracted from this list. * Precondition: $(D_PARAM r) is extracted from this list.
*/ */
size_t insertBefore(Range!Entry r, ref T el) @trusted
in
{
assert(checkRangeBelonging(r));
}
body
{
*r.head = allocator.make!Entry(el, *r.head);
return 1;
}
///
@safe @nogc unittest
{
auto l1 = SList!int([234, 5, 1]);
auto l2 = SList!int([5, 1]);
int var = 234;
l2.insertBefore(l2[], var);
assert(l1 == l2);
}
/// Ditto.
size_t insertBefore(R)(Range!Entry r, R el) size_t insertBefore(R)(Range!Entry r, R el)
if (isImplicitlyConvertible!(R, T)) if (isImplicitlyConvertible!(R, T))
in in
@ -503,6 +482,39 @@ struct SList(T)
} }
/// Ditto. /// Ditto.
size_t insertBefore(Range!Entry r, ref T el) @trusted
in
{
assert(checkRangeBelonging(r));
}
body
{
*r.head = allocator.make!Entry(el, *r.head);
return 1;
}
///
@safe @nogc unittest
{
auto l1 = SList!int([234, 5, 1]);
auto l2 = SList!int([5, 1]);
int var = 234;
l2.insertBefore(l2[], var);
assert(l1 == l2);
}
/**
* Inserts elements from a static array before $(D_PARAM r).
*
* Params:
* R = Static array size.
* r = Range extracted from this list.
* el = New elements.
*
* Returns: The number of elements inserted.
*
* Precondition: $(D_PARAM r) is extracted from this list.
*/
size_t insertBefore(size_t R)(Range!Entry r, T[R] el) size_t insertBefore(size_t R)(Range!Entry r, T[R] el)
{ {
return insertFront!(T[])(el[]); return insertFront!(T[])(el[]);