view teal-src/util/queue.d.tl @ 12956:52fcdfe710ca

storagemanager: Add keyval+ (combined keyval + map) store type This combines the two most common store types, which modules often end up opening with both interfaces separately anyway. As well as combining them, I've taken the opportunity to improve some of the method names to make them clearer.
author Matthew Wild <mwild1@gmail.com>
date Tue, 27 Sep 2022 17:46:27 +0100
parents ef59fb975d3e
children
line wrap: on
line source

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;