# HG changeset patch # User Kim Alvefur # Date 1732979017 -3600 # Node ID fc6495c887f66dee18e5035b33732f86d89d692d # Parent 14c1d6c7ac2d3becc8b02c2ae8b014385a53c849 util.smqueue: Clean up syntax errors and warnings from Teal 0.24 New version broke old syntax and got a lot pickier diff -r 14c1d6c7ac2d -r fc6495c887f6 teal-src/prosody/util/smqueue.tl --- 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) + ack : function (smqueue, integer) : { T }, ack_errors resumable : function (smqueue) : boolean resume : function (smqueue) : queue.queue.iterator, any, integer - type consume_iter = function (smqueue) : T - consume : function (smqueue) : consume_iter + consume : function (smqueue) : function() : T table : function (smqueue) : { 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(size : integer) : queue.queue +function lib.new(size : integer) : smqueue assert(size>0); return setmetatable({ _head = 0; _tail = 0; _queue = queue.new(size, true) }, queue_mt); end