View source code
Display the source code in rt/aaA.d from which thispage was generated on github.
Report a bug
If you spot a problem with this page, click here to create aBugzilla 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 usinglocal clone.

Module rt.aaA

Implementation of associative arrays.

Functions

NameDescription
_aaApply(aa, keysz, dg) foreach opApply over all values
_aaApply2(aa, keysz, dg) foreach opApply over all key/value pairs
_aaClear(aa) Remove all elements from AA.
_aaDelX(aa, keyti, pkey) Delete entry scope const AA, return true if it was present
_aaEqual(tiRaw, aa1, aa2) compares 2 AAs for equality
_aaGetHash(paa, tiRaw) compute a hash
_aaGetRvalueX(aa, keyti, valsz, pkey) Lookup *pkey in aa. Called only from implementation of (aa[key]) expressions when value is not mutable.
_aaGetX(paa, ti, valsz, pkey, found) Lookup *pkey in aa. Called only from implementation of require
_aaGetY(paa, ti, valsz, pkey) Lookup *pkey in aa. Called only from implementation of (aa[key]) expressions when value is mutable.
_aaInX(aa, keyti, pkey) Lookup *pkey in aa. Called only from implementation of (key in aa) expressions.
_aaKeys(aa, keysz, tiKeyArray) Return a GC allocated array of all keys
_aaLen(aa) Determine number of entries in associative array.
_aaNew(ti) Allocate associative array data. Called for new SomeAA expression.
_aaRehash(paa, keyti) Rehash AA
_aaValues(aa, keysz, valsz, tiValueArray) Return a GC allocated array of all values
_d_assocarrayliteralTX(ti, keys, vals) Construct an associative array of type ti from corresponding keys and values. Called for an AA literal [k1:v1, k2:v2].

Structs

NameDescription
AA Opaque AA wrapper
Range aaRange implements a ForwardRange

Global variables

NameTypeDescription
_aaVersion immutable(int) AA version for debuggers, bump whenever changing the layout

Authors

Martin Nowak

License

Boost License 1.0.