--!native
--!nonstrict
--!optimize 2
-- Compiled with roblox-ts v2.3.0
local GraphEdge
do
	GraphEdge = setmetatable({}, {
		__tostring = function()
			return "GraphEdge"
		end,
	})
	GraphEdge.__index = GraphEdge
	function GraphEdge.new(...)
		local self = setmetatable({}, GraphEdge)
		return self:constructor(...) or self
	end
	function GraphEdge:constructor(startVertex, finishVertex, weight)
		if weight == nil then
			weight = 0
		end
		self.startVertex = startVertex
		self.finishVertex = finishVertex
		self.weight = weight
	end
	function GraphEdge:getKey()
		return `{self.startVertex:getKey()}_{self.finishVertex:getKey()}`
	end
	function GraphEdge:reverse()
		self.startVertex, self.finishVertex = self.finishVertex, self.startVertex
		return self
	end
end
GraphEdge.__tostring = function(graphEdge)
	return `GraphEdge<{graphEdge:getKey()}>`
end
return {
	default = GraphEdge,
}
