zuul-0.1.0.0: src/Zuul/Nodeset.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
module Zuul.Nodeset (Nodeset (..), Node (..)) where
import Data.Aeson (FromJSON (..), ToJSON (..))
import Data.Text (Text)
import GHC.Generics (Generic)
import Zuul.Aeson (zuulParseJSON, zuulToJSON)
data Node = Node
{ nodeName :: Text,
nodeLabel :: Text
}
deriving (Show, Eq, Ord, Generic)
data Nodeset = Nodeset
{ nodesetName :: Text,
nodesetNodes :: [Node]
}
deriving (Show, Eq, Ord, Generic)
instance ToJSON Node where
toJSON = zuulToJSON "node"
instance FromJSON Node where
parseJSON = zuulParseJSON "node"
instance ToJSON Nodeset where
toJSON = zuulToJSON "nodeset"
instance FromJSON Nodeset where
parseJSON = zuulParseJSON "nodeset"