module Network.IRC.Fun.Types.Base
( Hostname (..)
, ServiceName (..)
, Username (..)
, Nickname (..)
, Channel (..)
, CmdName (..)
, CmdNumber (..)
, Parameter
, MsgContent (..)
, Password (..)
, ChannelKey (..)
, ChannelTopic (..)
, RealName (..)
, Comment (..)
, PortNumber (..)
, Privilege (..)
, ChannelPrivacy (..)
)
where
import Data.Monoid (Monoid)
import Data.String (IsString)
import Data.Text (Text)
newtype Hostname = Hostname { unHostname :: Text } deriving (Eq, Show)
newtype ServiceName = ServiceName { unServiceName :: Text } deriving (Eq, Show)
newtype Username = Username { unUsername :: Text } deriving (Eq, Show)
newtype Nickname = Nickname { unNickname :: Text } deriving (Eq, Show)
newtype Channel = Channel { unChannel :: Text } deriving (Eq, Show)
newtype CmdName = CmdName { unCmdName :: Text } deriving (Eq, Show)
newtype CmdNumber = CmdNumber { unCmdNumber :: Int } deriving (Eq, Show)
type Parameter = Text
newtype MsgContent = MsgContent { unMsgContent :: Text }
deriving (Show, Monoid, IsString)
newtype Password = Password { unPassword :: Text } deriving (Eq, Show)
newtype ChannelKey = ChannelKey { unChannelKey :: Text } deriving (Eq, Show)
newtype ChannelTopic = ChannelTopic { unChannelTopic :: Text } deriving Show
newtype RealName = RealName { unRealName :: Text } deriving Show
newtype Comment = Comment { unComment :: Text } deriving Show
newtype PortNumber = PortNumber { unPortNumber :: Int } deriving (Eq, Show)
data Privilege = Regular | Voice | Operator deriving (Eq, Show)
data ChannelPrivacy = Secret | Private | Public deriving (Eq, Show)