function Rx.startFrom(v)assert(type(v)=="\102\117\110\099\116\105\111\110","\066\097\100 \099\097\108\108\098\097\099\107")return function(s)assert(Observable.isObservable(s),"\066\097\100 \111\098\115\101\114\118\097\098\108\101")return Observable.new(function(C)for v,s in pairs(v())do C:Fire(s)end return s:Subscribe(C:GetFireFailComplete())end)end end

function Rx.startFrom(callback)
	assert(type(callback) == "function", "Bad callback")
	return function(source)
		assert(Observable.isObservable(source), "Bad observable")

		return Observable.new(function(sub)
			for _, value in pairs(callback()) do
				sub:Fire(value)
			end

			return source:Subscribe(sub:GetFireFailComplete())
		end)
	end
end
