Safe Haskell | None |
---|---|
Language | Haskell2010 |
Using the tools provided here, you can track which users are members of which channels. This functionality has a variety of uses, e.g. displaying user lists in client UI and logging/displaying quit messages in the correct channel logs/buffers.
- newtype ChannelTracker = ChannelTracker (HashSet NickName)
- newtype NetworkTracker = NetworkTracker (HashMap ChannelName ChannelTracker)
- isMemberOf :: NickName -> ChannelTracker -> Bool
- isInChannel :: NickName -> ChannelName -> NetworkTracker -> Bool
- presence :: NickName -> NetworkTracker -> [ChannelName]
- newChannel :: [NickName] -> ChannelTracker
- newNetwork :: NetworkTracker
- addMember :: NickName -> ChannelTracker -> ChannelTracker
- addToChannel :: ChannelName -> NickName -> NetworkTracker -> NetworkTracker
- changeNick :: NickName -> NickName -> NetworkTracker -> NetworkTracker
- addChannel :: ChannelName -> [NickName] -> NetworkTracker -> NetworkTracker
- removeMember :: NickName -> ChannelTracker -> ChannelTracker
- removeFromChannel :: ChannelName -> NickName -> NetworkTracker -> NetworkTracker
- removeFromNetwork :: NickName -> NetworkTracker -> NetworkTracker
- removeChannel :: ChannelName -> NetworkTracker -> NetworkTracker
- removeChannels :: [ChannelName] -> NetworkTracker -> NetworkTracker
Documentation
newtype ChannelTracker Source
isMemberOf :: NickName -> ChannelTracker -> Bool Source
Check whether a nickname is present in a channel.
isInChannel :: NickName -> ChannelName -> NetworkTracker -> Bool Source
Check whether a nickname is present in a channel.
presence :: NickName -> NetworkTracker -> [ChannelName] Source
Check in which channels a nickname is present.
newChannel :: [NickName] -> ChannelTracker Source
Record a channel with the given present nicknames.
newNetwork :: NetworkTracker Source
Create new tracker.
addMember :: NickName -> ChannelTracker -> ChannelTracker Source
Record a nickname being present in a channel.
addToChannel :: ChannelName -> NickName -> NetworkTracker -> NetworkTracker Source
Record a nickname being present in a channel.
changeNick :: NickName -> NickName -> NetworkTracker -> NetworkTracker Source
Record a nickname change. Remove old nickname from the channels in which it's present, and add the new nickname to them.
addChannel :: ChannelName -> [NickName] -> NetworkTracker -> NetworkTracker Source
Record a channel with the given present nicknames.
removeMember :: NickName -> ChannelTracker -> ChannelTracker Source
Record a channel not having a given nickname anymore.
removeFromChannel :: ChannelName -> NickName -> NetworkTracker -> NetworkTracker Source
Record a channel not having a given nickname anymore.
removeFromNetwork :: NickName -> NetworkTracker -> NetworkTracker Source
Record a nickname not being present in any channel anymore.
removeChannel :: ChannelName -> NetworkTracker -> NetworkTracker Source
Remove a channel from the tracker.
removeChannels :: [ChannelName] -> NetworkTracker -> NetworkTracker Source
Remove channels from the tracker.