ae.utils.array

Array utility functions

Public Imports

ae.utils.aa
public import ae.utils.aa;
Undocumented in source.
ae.utils.appender
public import ae.utils.appender;
Undocumented in source.

Members

Aliases

queuePush
alias queuePush = stackPush
Undocumented in source.

Enums

OnEof
deprecated enum OnEof
Undocumented in source.

Functions

afilter
auto afilter(T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
amap
auto amap(T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
asort
auto asort(T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
auniq
auto auniq(T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
contains
bool contains(T[] arr, V val)

Whether array contains value, no BS.

contains
bool contains(T[] str, U[] what)

Ditto, for substrings

containsAt
bool containsAt(T[] haystack, T[] needle, size_t offset)

Like startsWith, but with an offset.

countSort
T[] countSort(T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
eat
deprecated bool eat(T[] arr, T[] prefix)

If arr starts with prefix, slice it off and return true. Otherwise leave arr unchaned and return false.

emptySlice
auto emptySlice()

Returns an empty, but non-null slice of T.

fromBytes
inout(T) fromBytes(inout(ubyte)[] bytes)

Reverse of bytes()

get
T get(T[] arr, size_t index)

Like AA.get - soft indexing, throws an Exception (not an Error) on out-of-bounds, even in release builds.

get
auto get(T[] arr, size_t index, T defaultValue)

Like AA.get - soft indexing, returns default value on out-of-bounds.

getExpand
T getExpand(T[] arr, size_t index)

Expand the array if index is out-of-bounds.

indexOf
sizediff_t indexOf(T[] arr, D val)

Complement to std.string.indexOf which works with arrays of non-character types. Unlike std.algorithm.countUntil, it does not auto-decode, and returns an index usable for array indexing/slicing.

indexOf
sizediff_t indexOf(T[] arr, T[] val)
Undocumented in source. Be warned that the author may not have intended to support it.
indexOfElement
sizediff_t indexOfElement(T[] arr, D val)

Index of element, no BS.

isIn
bool isIn(T val, T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
isOneOf
bool isOneOf(T val, T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
list
auto list(Args args)

Equivalent of PHP's list language construct: http://php.net/manual/en/function.list.php

Works with arrays and tuples. Specify null as an argument to ignore that index (equivalent of list(x, , y) in PHP).

memcmp
int memcmp(ubyte[] a, ubyte[] b)
Undocumented in source. Be warned that the author may not have intended to support it.
memmove
void memmove(T[] dst, T[] src)

Like std.algorithm.copy, but without the auto-decode bullshit. https://issues.dlang.org/show_bug.cgi?id=13650

nonNull
T[] nonNull(T[] arr)

Ensure that arr is non-null if empty.

padRight
T[] padRight(T[] s, size_t l, T c)
Undocumented in source. Be warned that the author may not have intended to support it.
pluck
T pluck(T[] arr)

Select and return a random element from the array, and remove it from the array.

putExpand
T putExpand(T[] arr, size_t index, T value)

Expand the array if index is out-of-bounds.

queuePeek
T queuePeek(T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
queuePeekLast
T queuePeekLast(T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
queuePop
T queuePop(T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
repeatOne
T[] repeatOne(T c, size_t l)
Undocumented in source. Be warned that the author may not have intended to support it.
sample
auto ref sample(T[] arr)

Select and return a random element from the array.

shift
T shift(T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
shift
T[] shift(T[] arr, size_t n)
Undocumented in source. Be warned that the author may not have intended to support it.
shift
T[N] shift(T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
skipUntil
T[] skipUntil(T[] source, D delim, bool orUntilEnd)

Returns the slice of source up to the first occurrence of delim, and fast-forwards source to the point after delim. If delim is not found, the behavior depends on orUntilEnd: - If orUntilEnd is false (default), it returns null and leaves source unchanged. - If orUntilEnd is true, it returns source, and then sets source to null.

slice
T[] slice(T[] arr, size_t p0, size_t p1)

Slices an array. Throws an Exception (not an Error) on out-of-bounds, even in release builds.

sliceIndex
size_t sliceIndex(T[] arr, T[] slice)

Given an array and its slice, returns the start index of the slice inside the array.

split1
auto split1(T value, S separator)

Like std.array.split, but always returns a non-empty array.

splitEmpty
auto splitEmpty(T value, S separator)

Like std.array.split, but returns null if val was empty.

splitWithPrefix
H[] splitWithPrefix(H haystack, S separator)

Include delimiter in result chunks as prefix

splitWithPrefixAndSuffix
S[] splitWithPrefixAndSuffix(S haystack, S prefix, S suffix)

Include delimiters in result chunks as prefix/suffix

splitWithSuffix
H[] splitWithSuffix(H haystack, S separator)

Include delimiter in result chunks as suffix

stackPeek
T stackPeek(T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
stackPop
T stackPop(T[] arr)
Undocumented in source. Be warned that the author may not have intended to support it.
stackPush
void stackPush(T[] arr, T val)
Undocumented in source. Be warned that the author may not have intended to support it.
staticArray
T[n] staticArray(T[n] a)
Undocumented in source. Be warned that the author may not have intended to support it.
toArray
T[] toArray(T v)

Slice a variable.

unshift
void unshift(T[] arr, T value)
Undocumented in source. Be warned that the author may not have intended to support it.
unshift
void unshift(T[] arr, T[] value)
Undocumented in source. Be warned that the author may not have intended to support it.
vector
T[] vector(T[] a, T[] b)
Undocumented in source. Be warned that the author may not have intended to support it.
vectorAssign
T[] vectorAssign(T[] a, T[] b)
Undocumented in source. Be warned that the author may not have intended to support it.

Imports

staticArray (from std.array)
public import std.array : staticArray;

std.array.staticArray shim

Properties

bytes
inout(ubyte)[] bytes [@property getter]

Return the value represented as an array of bytes.

Structs

NormalizedArray
struct NormalizedArray(T, alias normalize)

Array with normalized comparison and hashing.

Templates

eatUntil
deprecated template eatUntil(OnEof onEof = OnEof.throwException)
Undocumented in source.
mapNull
template mapNull(alias dg)

If arr is null, return null. Otherwise, return a non-null transformation dg over arr.

Meta

License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

Authors

Vladimir Panteleev <vladimir@thecybershadow.net>