Mercurial > projects > dwt-mac
comparison dwt/dwthelper/WeakHashMap.d @ 0:380af2bdd8e5
Upload of whole dwt tree
author | Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com> |
---|---|
date | Sat, 09 Aug 2008 17:00:02 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:380af2bdd8e5 |
---|---|
1 module dwt.dwthelper.WeakHashMap; | |
2 | |
3 | |
4 /+ | |
5 Is not yet 'weak' | |
6 +/ | |
7 class WeakHashMap { | |
8 | |
9 static class Ref { | |
10 size_t ptr; | |
11 this(Object k){ | |
12 ptr = cast(size_t)cast(void*)k; | |
13 } | |
14 } | |
15 | |
16 Object[ Ref ] data; | |
17 | |
18 public void add (Object key, Object element){ | |
19 auto k = new Ref(key); | |
20 data[ k ] = element; | |
21 } | |
22 public void removeKey (Object key){ | |
23 scope k = new Ref(key); | |
24 data.remove( k ); | |
25 } | |
26 public Object get(Object key){ | |
27 scope k = new Ref(key); | |
28 if( auto p = k in data ){ | |
29 return *p; | |
30 } | |
31 return null; | |
32 } | |
33 } |