function ValueObjectUtils.observeValueBrio(b)assert(b,"\066\097\100 \118\097\108\117\101\079\098\106\101\099\116")return Observable.new(function(W)local s=Maid.new()local function D()local D=Brio.new(b.Value)s._lastBrio=D W:Fire(D)end s:GiveTask(b.Changed:Connect(D))D()return s end)end return ValueObjectUtils
--[=[
	Observes the current value of the ValueObject
	@param valueObject ValueObject<T>
	@return Observable<Brio<T>>
]=]
function ValueObjectUtils.observeValueBrio(valueObject)
	assert(valueObject, "Bad valueObject")

	return Observable.new(function(sub)
		local maid = Maid.new()

		local function refire()
			local brio = Brio.new(valueObject.Value)
			maid._lastBrio = brio
			sub:Fire(brio)
		end

		maid:GiveTask(valueObject.Changed:Connect(refire))

		refire()

		return maid
	end)
end

return ValueObjectUtils
