1 /*
2  * Hunt - A redis client library for D programming language.
3  *
4  * Copyright (C) 2018-2019 HuntLabs
5  *
6  * Website: https://www.huntlabs.net/
7  *
8  * Licensed under the Apache-2.0 License.
9  *
10  */
11  
12 module hunt.redis.util.RedisByteHashMap;
13 
14 import hunt.util.ArrayHelper;
15 import hunt.collection.Collection;
16 import hunt.collection.HashMap;
17 import hunt.collection.HashSet;
18 import hunt.collection.Iterator;
19 import hunt.collection.Map;
20 import hunt.collection.Set;
21 
22 import hunt.Byte;
23 
24 alias RedisByteHashMap = HashMap!(const(ubyte)[], const(ubyte)[]);
25 
26 // class RedisByteHashMap : Map!(const(ubyte)[], const(ubyte)[]), Cloneable { // , Serializable 
27 //   private Map!(Bytes, const(ubyte)[]) internalMap = new HashMap!(ByteArrayWrapper, const(ubyte)[])();
28 
29 //   this() {
30 //       internalMap = new HashMap!(Bytes, const(ubyte)[])();
31 //   }
32 
33 //   override
34 //   void clear() {
35 //     internalMap.clear();
36 //   }
37 
38 //   override
39 //   bool containsKey(const(ubyte)[] key) {
40 //     // if (key instanceof const(ubyte)[]) return internalMap.containsKey(new ByteArrayWrapper((const(ubyte)[]) key));
41 //     // return internalMap.containsKey(key);
42 //     return internalMap.containsKey(new Bytes(key));
43 //   }
44 
45 //   override
46 //   bool containsValue(const(ubyte)[] value) {
47 //     return internalMap.containsValue(value);
48 //   }
49 
50 // //   override
51 // //   Set<hunt.collection.MapEntry!(const(ubyte)[], const(ubyte)[])> entrySet() {
52 // //     Iterator<hunt.collection.MapEntry!(ByteArrayWrapper, const(ubyte)[])> iterator = internalMap.entrySet()
53 // //         .iterator();
54 // //     HashSet!(Entry!(const(ubyte)[], const(ubyte)[])) hashSet = new HashSet<hunt.collection.MapEntry!(const(ubyte)[], const(ubyte)[])>();
55 // //     while (iterator.hasNext()) {
56 // //       Entry!(ByteArrayWrapper, const(ubyte)[]) entry = iterator.next();
57 // //       hashSet.add(new RedisByteEntry(entry.getKey().data, entry.getValue()));
58 // //     }
59 // //     return hashSet;
60 // //   }
61 
62 //   override
63 //   const(ubyte)[] get(const(ubyte)[] key) {
64 //     // if (key instanceof const(ubyte)[]) return internalMap.get(new ByteArrayWrapper((const(ubyte)[]) key));
65 //     // return internalMap.get(key);
66 //     return internalMap.get(new Bytes(key));
67 //   }
68 
69 //   override
70 //   bool isEmpty() {
71 //     return internalMap.isEmpty();
72 //   }
73 
74 
75 // override InputRange!(const(ubyte)[]) byKey() {
76 //     return internalMap.byKey();
77 // }
78 
79 // override InputRange!(const(ubyte)[]) byValue() {
80 //     return internalMap.byValue();
81 // }
82 
83 //     override int opApply(scope int delegate(const(ubyte)[], const(ubyte)[]) dg) {
84 //         int r = 0;
85 //         foreach(Bytes key, const(ubyte)[] value; internalMap) {
86 //             r = dg(key.value, value);
87 //         }
88 
89 //         return r;
90 //     }
91 
92 //   override
93 //   const(ubyte)[] put(const(ubyte)[] key, const(ubyte)[] value) {
94 //     return internalMap.put(new Bytes(key), value);
95 //   }
96 
97 // //   override
98   
99 // //   void putAll(Map<? extends const(ubyte)[], ? extends const(ubyte)[]> m) {
100 // //     Iterator<?> iterator = m.entrySet().iterator();
101 // //     while (iterator.hasNext()) {
102 // //       Entry<? extends const(ubyte)[], ? extends const(ubyte)[]> next = (Entry<? extends const(ubyte)[], ? extends const(ubyte)[]>) iterator
103 // //           .next();
104 // //       internalMap.put(new ByteArrayWrapper(next.getKey()), next.getValue());
105 // //     }
106 // //   }
107 
108 //   override
109 //   const(ubyte)[] remove(const(ubyte)[] key) {
110 //     return internalMap.remove(new Bytes(key));
111 //   }
112 
113 //   override
114 //   int size() {
115 //     return internalMap.size();
116 //   }
117 
118 //   override
119 //   const(ubyte)[][] values() {
120 //     return internalMap.values();
121 //   }
122 
123 // }