util.queue: Add Teal interface description
authorKim Alvefur <zash@zash.se>
Sun, 24 Jul 2022 21:39:32 +0200
changeset 12626 ef59fb975d3e
parent 12625 041d067de38b
child 12627 b462fbc600f2
util.queue: Add Teal interface description
teal-src/util/queue.d.tl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/teal-src/util/queue.d.tl	Sun Jul 24 21:39:32 2022 +0200
@@ -0,0 +1,21 @@
+local record lib
+	record queue<T>
+		size : integer
+		count : function (queue<T>) : integer
+		enum push_errors
+			"queue full"
+		end
+
+		push : function (queue<T>, T) : boolean, push_errors
+		pop : function (queue<T>) : T
+		peek : function (queue<T>) : T
+		replace : function (queue<T>, T) : boolean, push_errors
+		type iterator = function (T, integer) : integer, T
+		items : function (queue<T>) : iterator, T, integer
+		type consume_iter = function (queue<T>) : T
+		consume : function (queue<T>) : consume_iter
+	end
+
+	new : function<T> (size:integer, allow_wrapping:boolean) : queue<T>
+end
+return lib;