Software / code / prosody
Comparison
util/cache.lua @ 7289:42e7545d5ae3
util.cache: Add head() and tail() methods (and tests)
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 17 Mar 2016 19:07:40 +0000 |
| parent | 7016:e0a0af42b09f |
| child | 7290:70ab13e81cf5 |
comparison
equal
deleted
inserted
replaced
| 7287:867f107409d9 | 7289:42e7545d5ae3 |
|---|---|
| 90 | 90 |
| 91 function cache_methods:count() | 91 function cache_methods:count() |
| 92 return self._count; | 92 return self._count; |
| 93 end | 93 end |
| 94 | 94 |
| 95 function cache_methods:head() | |
| 96 local head = self._head; | |
| 97 if not head then return nil, nil; end | |
| 98 return head.key, head.value; | |
| 99 end | |
| 100 | |
| 101 function cache_methods:tail() | |
| 102 local tail = self._tail; | |
| 103 if not tail then return nil, nil; end | |
| 104 return tail.key, tail.value; | |
| 105 end | |
| 106 | |
| 95 local function new(size, on_evict) | 107 local function new(size, on_evict) |
| 96 size = assert(tonumber(size), "cache size must be a number"); | 108 size = assert(tonumber(size), "cache size must be a number"); |
| 97 size = math.floor(size); | 109 size = math.floor(size); |
| 98 assert(size > 0, "cache size must be greater than zero"); | 110 assert(size > 0, "cache size must be greater than zero"); |
| 99 local data = {}; | 111 local data = {}; |