#include <treemap.h>
Public Types | |
using | KeyType = K |
using | ValueType = V |
using | Super = TreeMapParent< TreeMap< K, V, MAP, COW, OPT >, COW > |
using | Child = typename std::conditional< COW, StrongCOWRef< TreeMap >, TreeMap >::type |
using | Ref = typename std::conditional< COW, StrongCOWRef< TreeMap >, void >::type |
using | ChildrenMap = typename MAP::template Type< K, Child > |
using | OptValueType = typename std::conditional< OPT, Opt< V >, V >::type |
Public Member Functions | |
TreeMap ()=default | |
TreeMap (TreeMap &&src) | |
MAXON_OPERATOR_MOVE_ASSIGNMENT (TreeMap) | |
Result< void > | CopyFrom (const TreeMap &src) |
void | Flush () |
void | Reset () |
Result< TreeMap & > | InsertChild (const K &key, Bool withValue=true) |
Result< Child & > | InsertChild (const K &key, Child &&child) |
template<typename PATH , typename = typename std::enable_if<!STD_IS_REPLACEMENT(base_of, K, typename std::decay<PATH>::type)>::type> | |
Result< TreeMap & > | InsertEntry (PATH &&key, Bool withValue=true) |
template<typename PATH , typename = typename std::enable_if<!STD_IS_REPLACEMENT(base_of, K, typename std::decay<PATH>::type)>::type> | |
Result< TreeMap & > | Insert (PATH &&key, const V &value) |
template<typename PATH , typename = typename std::enable_if<!STD_IS_REPLACEMENT(base_of, K, typename std::decay<PATH>::type)>::type> | |
Result< TreeMap & > | Insert (PATH &&key, V &&value) |
template<typename PATH > | |
Result< V & > | InsertKey (PATH &&key, Bool &created) |
template<typename PATH > | |
Result< V & > | InsertKey (PATH &&key) |
const TreeMap * | FindChild (const K &key) const |
TreeMap * | FindChild (const K &key) |
template<typename PATH > | |
const TreeMap * | FindEntry (PATH &&key) const |
template<typename PATH , typename = typename std::enable_if<!COW || AlwaysFalse<PATH>::value>::type> | |
TreeMap * | FindEntry (PATH &&key) |
template<typename PATH > | |
const TreeMap * | FindFirstEntryWithValue (PATH &&key) const |
template<typename PATH > | |
const TreeMap * | FindClosestEntryWithValue (PATH &&key) const |
template<typename PATH > | |
const V * | FindValue (PATH &&key) const |
template<typename PATH , typename = typename std::enable_if<!COW || AlwaysFalse<PATH>::value>::type> | |
V * | FindValue (PATH &&key) |
template<typename PATH > | |
Bool | Contains (PATH &&key) const |
template<typename PATH > | |
std::conditional< COW, Result< void >, ResultOk< void > >::type | Erase (PATH &&key, Bool withChildren=false) |
String | ToString (const FormatStatement *fs=nullptr) const |
const OptValueType & | Get () const |
OptValueType & | Get () |
V & | MakeValid () |
void | SetValue (const V &value) |
void | SetValue (V &&value) |
Bool | IsRoot () const |
Bool | IsLeaf () const |
const ChildrenMap & | GetChildren () const |
ChildrenMap & | GetChildren () |
const K * | GetKey () const |
Bool | operator== (const TreeMap &other) const |
Bool | operator!= (const TreeMap &other) const |
Bool | IsPopulated () const |
Bool | IsEmpty () const |
Bool | HasSameStructure (const TreeMap &other) const |
template<typename OP > | |
Result< Bool > | ForEachPreOrder (OP &&callback) const |
template<typename PATH , typename OP > | |
Result< Bool > | ForEachPreOrder (OP &&callback, PATH &&path=PATH()) const |
template<typename OP > | |
Result< Bool > | ForEachPreOrder (OP &&callback) |
template<typename PATH , typename OP > | |
Result< Bool > | ForEachPreOrder (OP &&callback, PATH &&path=PATH()) |
template<typename PATH , typename OP > | |
Result< void > | ForEachPreOrderX (OP &&callback, PATH &&path=PATH()) |
template<typename OP > | |
Result< Bool > | ForEachPostOrder (OP &&callback) const |
template<typename PATH , typename OP > | |
Result< Bool > | ForEachPostOrder (OP &&callback, PATH &&path=PATH()) const |
template<typename OP > | |
Result< Bool > | ForEachPostOrder (OP &&callback) |
template<typename PATH , typename OP > | |
Result< Bool > | ForEachPostOrder (OP &&callback, PATH &&path=PATH()) |
template<typename PATH > | |
Result< void > | GetPath (PATH &path) const |
Int | GetDepth () const |
IndexIterator< const K &, const TreeMap, TreeMap > | GetPath () const |
Public Member Functions inherited from TreeMapParent< TreeMap< K, V, HashMapSelector<>, false, true >, false > | |
const TreeMap< K, V, HashMapSelector<>, false, true > * | GetParent () const |
TreeMap< K, V, HashMapSelector<>, false, true > * | GetParent () |
Static Public Member Functions | |
static ResultRef< TreeMap > | MakeWritable (StrongCOWRef< TreeMap > &ref) |
static ResultOk< TreeMap & > | MakeWritable (TreeMap &ref) |
static const TreeMap * | GetTreeMap (const TreeMap *child) |
static TreeMap * | GetTreeMap (TreeMap *child) |
static const TreeMap * | GetTreeMap (const StrongCOWRef< TreeMap > *child) |
static const K & | Get (const TreeMap &map, Int index) |
Private Member Functions | |
void | ToStringImpl (String &s, BufferedBaseArray< K, 10 > &path, const FormatStatement *fs) const |
template<typename IT > | |
std::conditional< COW, Result< Bool >, ResultOk< Bool > >::type | EraseImpl (IT &beginIt, const IT &endIt, Bool withChildren) |
Static Private Member Functions | |
static const V * | Extract (const V &x) |
static const V * | Extract (const Opt< V > &x) |
Private Attributes | |
OptValueType | _value |
ChildrenMap | _children |
Additional Inherited Members | |
Protected Member Functions inherited from TreeMapParent< TreeMap< K, V, HashMapSelector<>, false, true >, false > | |
void | SetParent (TreeMap< K, V, HashMapSelector<>, false, true > *p) |
Protected Attributes inherited from TreeMapParent< TreeMap< K, V, HashMapSelector<>, false, true >, false > | |
Pointer< TreeMap< K, V, HashMapSelector<>, false, true > > | _parent |
using KeyType = K |
using ValueType = V |
using Super = TreeMapParent<TreeMap<K, V, MAP, COW, OPT>, COW> |
using Child = typename std::conditional<COW, StrongCOWRef<TreeMap>, TreeMap>::type |
using Ref = typename std::conditional<COW, StrongCOWRef<TreeMap>, void>::type |
using ChildrenMap = typename MAP::template Type<K, Child> |
using OptValueType = typename std::conditional<OPT, Opt<V>, V>::type |
|
default |
MAXON_OPERATOR_MOVE_ASSIGNMENT | ( | TreeMap< K, V, MAP, COW, OPT > | ) |
void Flush | ( | void | ) |
void Reset | ( | void | ) |
|
static |
Result<V&> InsertKey | ( | PATH && | key | ) |
|
static |
const TreeMap* FindChild | ( | const K & | key | ) | const |
TreeMap* FindChild | ( | const K & | key | ) |
const TreeMap* FindEntry | ( | PATH && | key | ) | const |
TreeMap* FindEntry | ( | PATH && | key | ) |
const TreeMap* FindFirstEntryWithValue | ( | PATH && | key | ) | const |
const TreeMap* FindClosestEntryWithValue | ( | PATH && | key | ) | const |
const V* FindValue | ( | PATH && | key | ) | const |
V* FindValue | ( | PATH && | key | ) |
Bool Contains | ( | PATH && | key | ) | const |
std::conditional<COW, Result<void>, ResultOk<void> >::type Erase | ( | PATH && | key, |
Bool | withChildren = false |
||
) |
String ToString | ( | const FormatStatement * | fs = nullptr | ) | const |
const OptValueType& Get | ( | void | ) | const |
OptValueType& Get | ( | void | ) |
V& MakeValid | ( | ) |
void SetValue | ( | const V & | value | ) |
void SetValue | ( | V && | value | ) |
Bool IsRoot | ( | ) | const |
Bool IsLeaf | ( | ) | const |
const ChildrenMap& GetChildren | ( | ) | const |
ChildrenMap& GetChildren | ( | ) |
const K* GetKey | ( | ) | const |
Bool IsPopulated | ( | void | ) | const |
Bool IsEmpty | ( | ) | const |
Result<void> GetPath | ( | PATH & | path | ) | const |
Int GetDepth | ( | ) | const |
IndexIterator<const K&, const TreeMap, TreeMap> GetPath | ( | ) | const |
|
staticprivate |
|
staticprivate |
|
private |
|
private |
|
private |
|
private |