Mercurial > repos > public > sbplib
annotate Map.m @ 414:50fd7e88aa74 feature/better_map
Add a test implementation
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 02 Feb 2017 15:57:43 +0100 |
parents | |
children | 16907bf31e67 |
rev | line source |
---|---|
414
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
1 classdef Map < handle |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
2 properties |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
3 map |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
4 end |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
5 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
6 % can we support multi map using varargin? |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
7 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
8 methods |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 function obj = Map() |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 obj.map = containers.Map() |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 end |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
12 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
13 function set(obj, k, v) |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
14 keyByteStream = getByteStreamFromArray(k); |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
15 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
16 obj.map(char(keyByteStream)) = v; |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
17 end |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
18 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
19 function v = get(obj, k) |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
20 keyByteStream = getByteStreamFromArray(k); |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
21 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
22 v = obj.map(char(keyByteStream)); |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
23 end |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
24 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
25 function b = isKey(obj, k) |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
26 keyByteStream = getByteStreamFromArray(k); |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
27 b = obj.map.isKey(keyByteStream); |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
28 end |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
29 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
30 function c = keys(obj) |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
31 keyByteStreams = obj.map.keys; |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
32 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
33 n = length(keyByteStreams); |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
34 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
35 c = cell(1, n); |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
36 for i = 1:n |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
37 c{i} = getArrayFromByteStream(uint8(keyByteStreams{i})); |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
38 end |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
39 end |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
40 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
41 function l = length(obj) |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
42 l = obj.map.length; |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
43 end |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
44 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
45 function remove(obj, k) |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
46 keyByteStream = getByteStreamFromArray(k); |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
47 obj.map.remove(char(keyByteStream)); |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
48 end |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
49 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
50 function s = size(obj) |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
51 s = obj.map.size; |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
52 end |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
53 |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
54 function c = values(obj) |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
55 c = obj.map.values; |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
56 end |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
57 end |
50fd7e88aa74
Add a test implementation
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
58 end |