dataflow-0.7.1.0: src/DataFlow/Core.hs
module DataFlow.Core (
ID,
Attributes,
Diagram(..),
RootNode(..),
Flow(..),
Node(..)
) where
import Data.Map as M
-- | An identifier corresponding to those in Graphviz.
type ID = String
type Attributes = M.Map String String
-- | The top level diagram.
data Diagram = Diagram Attributes [RootNode] [Flow]
deriving (Eq, Show)
-- | An root node in a diagram.
data RootNode =
-- | A top level Node.
Node Node
-- | Surrounds other non-root nodes, denoting a boundary.
| TrustBoundary Attributes [Node]
deriving (Eq, Show)
data Node =
-- | A "Input" or "Output" in DFD.
InputOutput ID Attributes
-- | A \"Function\" in DFD.
| Function ID Attributes
-- | A \"Database\" in DFD.
| Database ID Attributes
deriving (Show, Eq)
-- | Describes the flow of data between two nodes.
data Flow = Flow ID ID Attributes
deriving (Show, Eq)