| Safe Haskell | Safe-Inferred |
|---|
Data.Graph.Inductive.NodeMap
Contents
Description
Utility methods to automatically generate and keep track of a mapping
between node labels and Nodes.
- data Ord a => NodeMap a
- new :: Ord a => NodeMap a
- fromGraph :: (Ord a, Graph g) => g a b -> NodeMap a
- mkNode :: Ord a => NodeMap a -> a -> (LNode a, NodeMap a)
- mkNode_ :: Ord a => NodeMap a -> a -> LNode a
- mkNodes :: Ord a => NodeMap a -> [a] -> ([LNode a], NodeMap a)
- mkNodes_ :: Ord a => NodeMap a -> [a] -> [LNode a]
- mkEdge :: Ord a => NodeMap a -> (a, a, b) -> Maybe (LEdge b)
- mkEdges :: Ord a => NodeMap a -> [(a, a, b)] -> Maybe [LEdge b]
- insMapNode :: (Ord a, DynGraph g) => NodeMap a -> a -> g a b -> (g a b, NodeMap a, LNode a)
- insMapNode_ :: (Ord a, DynGraph g) => NodeMap a -> a -> g a b -> g a b
- insMapEdge :: (Ord a, DynGraph g) => NodeMap a -> (a, a, b) -> g a b -> g a b
- delMapNode :: (Ord a, DynGraph g) => NodeMap a -> a -> g a b -> g a b
- delMapEdge :: (Ord a, DynGraph g) => NodeMap a -> (a, a) -> g a b -> g a b
- insMapNodes :: (Ord a, DynGraph g) => NodeMap a -> [a] -> g a b -> (g a b, NodeMap a, [LNode a])
- insMapNodes_ :: (Ord a, DynGraph g) => NodeMap a -> [a] -> g a b -> g a b
- insMapEdges :: (Ord a, DynGraph g) => NodeMap a -> [(a, a, b)] -> g a b -> g a b
- delMapNodes :: (Ord a, DynGraph g) => NodeMap a -> [a] -> g a b -> g a b
- delMapEdges :: (Ord a, DynGraph g) => NodeMap a -> [(a, a)] -> g a b -> g a b
- mkMapGraph :: (Ord a, DynGraph g) => [a] -> [(a, a, b)] -> (g a b, NodeMap a)
- type NodeMapM a b g r = State (NodeMap a, g a b) r
- run :: (DynGraph g, Ord a) => g a b -> NodeMapM a b g r -> (r, (NodeMap a, g a b))
- run_ :: (DynGraph g, Ord a) => g a b -> NodeMapM a b g r -> g a b
- mkNodeM :: (Ord a, DynGraph g) => a -> NodeMapM a b g (LNode a)
- mkNodesM :: (Ord a, DynGraph g) => [a] -> NodeMapM a b g [LNode a]
- mkEdgeM :: (Ord a, DynGraph g) => (a, a, b) -> NodeMapM a b g (Maybe (LEdge b))
- mkEdgesM :: (Ord a, DynGraph g) => [(a, a, b)] -> NodeMapM a b g (Maybe [LEdge b])
- insMapNodeM :: (Ord a, DynGraph g) => a -> NodeMapM a b g (LNode a)
- insMapEdgeM :: (Ord a, DynGraph g) => (a, a, b) -> NodeMapM a b g ()
- delMapNodeM :: (Ord a, DynGraph g) => a -> NodeMapM a b g ()
- delMapEdgeM :: (Ord a, DynGraph g) => (a, a) -> NodeMapM a b g ()
- insMapNodesM :: (Ord a, DynGraph g) => [a] -> NodeMapM a b g [LNode a]
- insMapEdgesM :: (Ord a, DynGraph g) => [(a, a, b)] -> NodeMapM a b g ()
- delMapNodesM :: (Ord a, DynGraph g) => [a] -> NodeMapM a b g ()
- delMapEdgesM :: (Ord a, DynGraph g) => [(a, a)] -> NodeMapM a b g ()
Functional Construction
Map Construction
fromGraph :: (Ord a, Graph g) => g a b -> NodeMap aSource
Generate a mapping containing the nodes in the given graph.
mkNode :: Ord a => NodeMap a -> a -> (LNode a, NodeMap a)Source
Generate a labelled node from the given label. Will return the same node for the same label.
mkNode_ :: Ord a => NodeMap a -> a -> LNode aSource
Generate a labelled node and throw away the modified NodeMap.
mkNodes_ :: Ord a => NodeMap a -> [a] -> [LNode a]Source
Construct a list of nodes and throw away the modified NodeMap.
mkEdge :: Ord a => NodeMap a -> (a, a, b) -> Maybe (LEdge b)Source
Generate a LEdge from the node labels.
Graph Construction
These functions mirror the construction and destruction functions in
Graph, but use the given NodeMap to look up
the appropriate Nodes. Note that the insMapNode family of functions
will create new nodes as needed, but the other functions will not.
insMapNode_ :: (Ord a, DynGraph g) => NodeMap a -> a -> g a b -> g a bSource
insMapEdge :: (Ord a, DynGraph g) => NodeMap a -> (a, a, b) -> g a b -> g a bSource
delMapNode :: (Ord a, DynGraph g) => NodeMap a -> a -> g a b -> g a bSource
delMapEdge :: (Ord a, DynGraph g) => NodeMap a -> (a, a) -> g a b -> g a bSource
insMapNodes :: (Ord a, DynGraph g) => NodeMap a -> [a] -> g a b -> (g a b, NodeMap a, [LNode a])Source
insMapNodes_ :: (Ord a, DynGraph g) => NodeMap a -> [a] -> g a b -> g a bSource
insMapEdges :: (Ord a, DynGraph g) => NodeMap a -> [(a, a, b)] -> g a b -> g a bSource
delMapNodes :: (Ord a, DynGraph g) => NodeMap a -> [a] -> g a b -> g a bSource
delMapEdges :: (Ord a, DynGraph g) => NodeMap a -> [(a, a)] -> g a b -> g a bSource
mkMapGraph :: (Ord a, DynGraph g) => [a] -> [(a, a, b)] -> (g a b, NodeMap a)Source
Monadic Construction
The following mirror the functional construction functions, but handle passing
NodeMaps and Graphs behind the scenes.
Map Construction
run_ :: (DynGraph g, Ord a) => g a b -> NodeMapM a b g r -> g a bSource
Run a construction and only return the Graph.
Graph Construction
insMapEdgeM :: (Ord a, DynGraph g) => (a, a, b) -> NodeMapM a b g ()Source
delMapNodeM :: (Ord a, DynGraph g) => a -> NodeMapM a b g ()Source
delMapEdgeM :: (Ord a, DynGraph g) => (a, a) -> NodeMapM a b g ()Source
insMapEdgesM :: (Ord a, DynGraph g) => [(a, a, b)] -> NodeMapM a b g ()Source
delMapNodesM :: (Ord a, DynGraph g) => [a] -> NodeMapM a b g ()Source
delMapEdgesM :: (Ord a, DynGraph g) => [(a, a)] -> NodeMapM a b g ()Source