-- Representation.hs

module Graphter.Representation where

--
-- Vertex representation
--

data Vertex = Vertex {
    vertexName :: String,
    vertexWeight :: Int
} deriving(Show, Eq)

--
--  Edge representation
--

data Edge = Edge {
    startVertex :: Vertex,
    endVertex :: Vertex,
    edgeWeight :: Int
} deriving(Show, Eq)

--
-- Graph representation
--

data Type = Directed | Undirected
    deriving(Show, Eq)

data Graph = Graph {
    graphType :: Type,
    graphVertices :: [Vertex],
    graphEdges :: [Edge]
} deriving(Show, Eq)
