Mercurial > repos > public > sbplib
changeset 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 | 18525f1bb941 |
children | 16907bf31e67 |
files | Map.m |
diffstat | 1 files changed, 58 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Map.m Thu Feb 02 15:57:43 2017 +0100 @@ -0,0 +1,58 @@ +classdef Map < handle + properties + map + end + + % can we support multi map using varargin? + + methods + function obj = Map() + obj.map = containers.Map() + end + + function set(obj, k, v) + keyByteStream = getByteStreamFromArray(k); + + obj.map(char(keyByteStream)) = v; + end + + function v = get(obj, k) + keyByteStream = getByteStreamFromArray(k); + + v = obj.map(char(keyByteStream)); + end + + function b = isKey(obj, k) + keyByteStream = getByteStreamFromArray(k); + b = obj.map.isKey(keyByteStream); + end + + function c = keys(obj) + keyByteStreams = obj.map.keys; + + n = length(keyByteStreams); + + c = cell(1, n); + for i = 1:n + c{i} = getArrayFromByteStream(uint8(keyByteStreams{i})); + end + end + + function l = length(obj) + l = obj.map.length; + end + + function remove(obj, k) + keyByteStream = getByteStreamFromArray(k); + obj.map.remove(char(keyByteStream)); + end + + function s = size(obj) + s = obj.map.size; + end + + function c = values(obj) + c = obj.map.values; + end + end +end