local J=setmetatable({},{__mode="\107"})local T={}T.__index=T function T.new(c)local V=setmetatable({current=c},T)J[V]=V return V end function T.Update(T,J)T.current=J end function T.Get(J)return J.current end function T.is(T)return J[T]~=nil end return T
local refs = setmetatable({}, { __mode = "k" })

local SnapdragonRef = {}
SnapdragonRef.__index = SnapdragonRef

function SnapdragonRef.new(current)
	local ref = setmetatable({
		current = current,
	}, SnapdragonRef)
	refs[ref] = ref
	return ref
end

function SnapdragonRef:Update(current)
	self.current = current
end

function SnapdragonRef:Get()
	return self.current
end

function SnapdragonRef.is(ref)
	return refs[ref] ~= nil
end

return SnapdragonRef
