Software / code / prosody
Changeset
13857:fc6495c887f6
util.smqueue: Clean up syntax errors and warnings from Teal 0.24
New version broke old syntax and got a lot pickier
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 30 Nov 2024 16:03:37 +0100 |
| parents | 13856:14c1d6c7ac2d |
| children | 13858:f20c1c2c73c7 |
| files | teal-src/prosody/util/smqueue.tl |
| diffstat | 1 files changed, 10 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/teal-src/prosody/util/smqueue.tl Sun Oct 13 12:59:34 2024 +0200 +++ b/teal-src/prosody/util/smqueue.tl Sat Nov 30 16:03:37 2024 +0100 @@ -12,12 +12,11 @@ "head" "pop" end - push : function (smqueue, T) - ack : function (smqueue, integer) : { T }, ack_errors + push : function (smqueue<T>, T) + ack : function (smqueue<T>, integer) : { T }, ack_errors resumable : function (smqueue<T>) : boolean resume : function (smqueue<T>) : queue.queue.iterator, any, integer - type consume_iter = function (smqueue<T>) : T - consume : function (smqueue<T>) : consume_iter + consume : function (smqueue<T>) : function() : T table : function (smqueue<T>) : { T } end @@ -26,13 +25,13 @@ local type smqueue = lib.smqueue; -function smqueue:push(v) +function smqueue:push(v : T) self._head = self._head + 1; -- Wraps instead of errors assert(self._queue:push(v)); end -function smqueue:ack(h : integer) : { any }, smqueue.ack_errors +function smqueue:ack(h : integer) : { T }, smqueue.ack_errors if h < self._tail then return nil, "tail"; elseif h > self._head then @@ -66,13 +65,13 @@ return self._queue:items(); end -function smqueue:consume() : queue.queue.consume_iter - return self._queue:consume() +function smqueue:consume() : (function() : T) + return self._queue:consume() as (function() : T) end -- Compatibility layer, plain ol' table -function smqueue:table() : { any } - local t : { any } = {}; +function smqueue:table() : { T } + local t : { T } = {}; for i, v in self:resume() do t[i] = v; end @@ -91,7 +90,7 @@ __freeze = freeze; } -function lib.new<T>(size : integer) : queue.queue<T> +function lib.new<T>(size : integer) : smqueue<T> assert(size>0); return setmetatable({ _head = 0; _tail = 0; _queue = queue.new(size, true) }, queue_mt); end