function MaidClass.Mark(n,G)local Q=typeof(G)if DESTRUCTORS[Q]then n.Trash[G]=Q else error(FORMAT_STR:format(Q),2)end end function MaidClass.Unmark(n,G)if G then n.Trash[G]=nil else n.Trash={}end end function MaidClass.Sweep(G)for G,n in next,G.Trash do DESTRUCTORS[n](G)end G.Trash={}end
-- Public Methods

function MaidClass:Mark(item)
	local tof = typeof(item)

	if DESTRUCTORS[tof] then
		self.Trash[item] = tof
	else
		error(FORMAT_STR:format(tof), 2)
	end
end

function MaidClass:Unmark(item)
	if item then
		self.Trash[item] = nil
	else
		self.Trash = {}
	end
end

function MaidClass:Sweep()
	for item, tof in next, self.Trash do
		DESTRUCTORS[tof](item)
	end
	self.Trash = {}
end
