# dlangui.core.collections

DLANGUI library.
This module implements array based collection.
Synopsis:

    import dlangui.core.collections;

    // add
    Collection!Widget widgets;
    widgets ~= new Widget("id1");
    widgets ~= new Widget("id2");
    Widget w3 = new Widget("id3");
    widgets ~= w3;

    // remove by index
    widgets.remove(1);

    // foreach
    foreach(w; widgets)
        writeln("widget: ", w.id);

    // remove by value
    widgets -= w3;
    writeln(widgets[0].id);

License:
Boost License 1.0
Authors:
Vadim Lopatin, coolreader.org@gmail.com

struct Collection(T, bool ownItems = false);
  array based collection of items retains item order when during add/remove operations
  bool empty();
    returns true if there are no items in collection
  size_t length();
    returns number of items in collection
  size_t size();
    returns currently allocated capacity (may be more than length)
  void size(size_t newSize);
    change capacity (e.g. to reserve big space to avoid multiple reallocations)
  void length(size_t newSize);
    returns number of items in collection
  T opIndex(size_t index);
    access item by index
  void add(T item, size_t index = size_t.max);
    insert new item in specified position
  void addAll(ref Collection!(T, ownItems) v);
    add all items from other collection
  Collection opOpAssign(string op)(T item);
    support for appending (~=, +=) and removing by value (-=)
  size_t indexOf(T item);
    returns index of first occurence of item, size_t.max if not found
  T remove(size_t index);
    remove single item, returning removed item
  bool removeValue(T value);
    remove single item by value - if present in collection, returning true if item was found and removed
  int opApply(int delegate(ref T param) op);
    support of foreach with reference
  void clear();
    remove all items
  T popFront();
    remove first item
  void pushFront(T item);
    insert item at beginning of collection
  T popBack();
    remove last item
  void pushBack(T item);
    insert item at end of collection
  T front();
    peek first item
  T back();
    peek last item

Page generated by Ddoc. Vadim Lopatin, 2014