function DataStoreStage._doStore(l,A,U)assert(type(A)=="\115\116\114\105\110\103"or type(A)=="\110\117\109\098\101\114","\066\097\100 \110\097\109\101")assert(U~=nil,"\066\097\100 \118\097\108\117\101")local d if U==DataStoreDeleteToken then d=DataStoreDeleteToken elseif type(U)=="\116\097\098\108\101"then d=Table.deepCopy(U)else d=U end if not l._dataToSave then l._dataToSave={}end l._dataToSave[A]=d if l._topLevelStoreSignal then l._topLevelStoreSignal:Fire()end end return DataStoreStage

function DataStoreStage:_doStore(name, value)
	assert(type(name) == "string" or type(name) == "number", "Bad name")
	assert(value ~= nil, "Bad value")

	local newValue
	if value == DataStoreDeleteToken then
		newValue = DataStoreDeleteToken
	elseif type(value) == "table" then
		newValue = Table.deepCopy(value)
	else
		newValue = value
	end

	if not self._dataToSave then
		self._dataToSave = {}
	end

	self._dataToSave[name] = newValue
	if self._topLevelStoreSignal then
		self._topLevelStoreSignal:Fire()
	end
end


return DataStoreStage
