File

teal-src/util/set.d.tl @ 12763:d26eefe98d09

util.dbuffer: Add efficient shortcuts for discard() in certain cases If the buffer is already empty, nothing to do. If we're throwing away the whole buffer, we can just empty it and avoid read_chunk() (which in turn may collapse()). These shortcuts are much more efficient.
author Matthew Wild <mwild1@gmail.com>
date Tue, 11 Oct 2022 11:37:55 +0100
parent 12617:36d77cc56ecb
line wrap: on
line source

local record lib
	record Set<T>
		add : function<T> (Set<T>, T)
		contains : function<T> (Set<T>, T) : boolean
		contains_set : function<T> (Set<T>, Set<T>) : boolean
		items :  function<T> (Set<T>) : function<T> (Set<T>, T) : T
		add_list : function<T> (Set<T>, { T })
		include : function<T> (Set<T>, Set<T>)
		exclude : function<T> (Set<T>, Set<T>)
		empty : function<T> (Set<T>) : boolean
	end

	new : function<T> ({ T }) : Set<T>
	is_set : function (any) : boolean
	union : function<T> (Set<T>, Set<T>) : Set <T>
	difference : function<T> (Set<T>, Set<T>) : Set <T>
	intersection : function<T> (Set<T>, Set<T>) : Set <T>
	xor : function<T> (Set<T>, Set<T>) : Set <T>
end

return lib