module Network.FastIRC.ServerSet
(
ServerSet,
addServer,
delServer,
emptyServers,
isServer,
serversFromList,
serversToList
)
where
import qualified Data.ByteString.Char8 as B
import qualified Data.Set as S
import Data.Char
import Network.FastIRC.Types
newtype ServerSet = ServerSet (S.Set ServerName)
emptyServers :: ServerSet
emptyServers = ServerSet S.empty
addServer :: ServerName -> ServerSet -> ServerSet
addServer s (ServerSet ss) = ServerSet $ S.insert (B.map toLower s) ss
delServer :: ServerName -> ServerSet -> ServerSet
delServer s (ServerSet ss) = ServerSet $ S.delete (B.map toLower s) ss
isServer :: ServerName -> ServerSet -> Bool
isServer s (ServerSet ss) = S.member (B.map toLower s) ss
serversFromList :: [ServerName] -> ServerSet
serversFromList = ServerSet . S.fromList
serversToList :: ServerSet -> [ServerName]
serversToList (ServerSet ss) = S.toList ss