diff options
author | Roman Smrž <roman.smrz@seznam.cz> | 2022-09-27 22:59:18 +0200 |
---|---|---|
committer | Roman Smrž <roman.smrz@seznam.cz> | 2022-09-27 22:59:18 +0200 |
commit | 8865c86aa904243ae91a598327e9dc1768ae8f3a (patch) | |
tree | 4f9aa0bf0a95281feaf08adf12f6054f9f0193dc /src/Network.hs | |
parent | 4b35f08baa69eefd667d220020f469e591c5b0cf (diff) |
Separate Network module
Diffstat (limited to 'src/Network.hs')
-rw-r--r-- | src/Network.hs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/Network.hs b/src/Network.hs new file mode 100644 index 0000000..633db16 --- /dev/null +++ b/src/Network.hs @@ -0,0 +1,33 @@ +module Network ( + Network(..), + Node(..), + NodeName(..), textNodeName, unpackNodeName, +) where + +import Control.Concurrent + +import Data.Text (Text) +import Data.Text qualified as T + +import Process + +data Network = Network + { netNodes :: MVar [Node] + , netProcesses :: MVar [Process] + , netDir :: FilePath + } + +data Node = Node + { nodeName :: NodeName + , nodeNetwork :: Network + , nodeDir :: FilePath + } + +newtype NodeName = NodeName Text + deriving (Eq, Ord) + +textNodeName :: NodeName -> Text +textNodeName (NodeName name) = name + +unpackNodeName :: NodeName -> String +unpackNodeName (NodeName tname) = T.unpack tname |