Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Forums
  - IRC
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Donate
  - Sponsors
- Resources
  - Tour
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - Visual D
  - Acknowledgments
  - D Style
  - Glossary
  - Sitemap

Search
Report a bug
If you spot a problem with this page, click here to create a Bugzilla 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.

# rt.aaA

Implementation of associative arrays.
License:
Boost License 1.0.
Authors:
Martin Nowak

immutable int `_aaVersion`;
  AA version for debuggers, bump whenever changing the layout
struct `AA`;
  Opaque `AA` wrapper
pure nothrow @nogc size_t `_aaLen`(in AA `aa`);
  Determine number of entries in associative array.
void* `_aaGetY`(AA* `aa`, const TypeInfo_AssociativeArray `ti`, in size_t `valsz`, in void* `pkey`);
  Lookup *`pkey` in `aa`. Called only from implementation of (`aa`[key]) expressions when value is mutable.
  Parameters:

  AA* `aa` | associative array opaque pointer
  TypeInfo_AssociativeArray `ti` | TypeInfo for the associative array
  size_t `valsz` | ignored
  void* `pkey` | pointer to the key value

  Returns:
  if key was in the `aa`, a mutable pointer to the existing value. If key was not in the `aa`, a mutable pointer to newly inserted value which is set to all zeros
inout(void)* `_aaGetRvalueX`(inout AA `aa`, in TypeInfo `keyti`, in size_t `valsz`, in void* `pkey`);
  Lookup *`pkey` in `aa`. Called only from implementation of (`aa`[key]) expressions when value is not mutable.
  Parameters:

  AA `aa` | associative array opaque pointer
  TypeInfo `keyti` | TypeInfo for the key
  size_t `valsz` | ignored
  void* `pkey` | pointer to the key value

  Returns:
  pointer to value if present, `null` otherwise
inout(void)* `_aaInX`(inout AA `aa`, in TypeInfo `keyti`, in void* `pkey`);
  Lookup *`pkey` in `aa`. Called only from implementation of (key in `aa`) expressions.
  Parameters:

  AA `aa` | associative array opaque pointer
  TypeInfo `keyti` | TypeInfo for the key
  void* `pkey` | pointer to the key value

  Returns:
  pointer to value if present, `null` otherwise
bool `_aaDelX`(AA `aa`, in TypeInfo `keyti`, in void* `pkey`);
  Delete entry in AA, return `true` if it was present
pure nothrow void `_aaClear`(AA `aa`);
  Remove all elements from AA.
pure nothrow void* `_aaRehash`(AA* `paa`, in TypeInfo `keyti`);
  Rehash AA
pure nothrow inout(void[]) `_aaValues`(inout AA `aa`, in size_t `keysz`, in size_t `valsz`, const TypeInfo `tiValueArray`);
  Return a GC allocated array of all values
pure nothrow inout(void[]) `_aaKeys`(inout AA `aa`, in size_t `keysz`, const TypeInfo `tiKeyArray`);
  Return a GC allocated array of all keys
int `_aaApply`(AA `aa`, in size_t `keysz`, dg_t `dg`);
  foreach opApply over all values
int `_aaApply2`(AA `aa`, in size_t `keysz`, dg2_t `dg`);
  foreach opApply over all key/value pairs
Impl* `_d_assocarrayliteralTX`(const TypeInfo_AssociativeArray `ti`, void[] `keys`, void[] `vals`);
  Construct an associative array of type `ti` from `keys` and value
int `_aaEqual`(in TypeInfo `tiRaw`, in AA `aa1`, in AA `aa2`);
  compares 2 AAs for equality
nothrow hash_t `_aaGetHash`(in AA* `aa`, in TypeInfo `tiRaw`);
  compute a hash
struct `Range`;
  aaRange implements a ForwardRange

Copyright © 1999-2018 by the D Language Foundation | Page generated by Ddoc on Sat Apr 14 16:39:11 2018