simpleirc-lens-0.2.0.0: src/Network/SimpleIRC/Messages/Lens.hs
--------------------------------------------------------------------------------
-- |
-- Module : Network.SimpleIRC.Messages.Lens
-- Copyright : (C) 2014 Ricky Elrod
-- License : BSD-style (see the file LICENSE)
-- Maintainer : Ricky Elrod <ricky@elrod.me>
-- Stability : provisional
-- Portability : portable
--
-- This module provides lenses for types in
-- <https://hackage.haskell.org/package/simpleirc/docs/Network-SimpleIRC-Messages.html Network.SimpleIRC.Messages>.
-------------------------------------------------------------------------------
module Network.SimpleIRC.Messages.Lens
( -- * 'IrcMessage'
nick, user, host, server, code, msg, chan, origin, other, raw
) where
import Data.ByteString
import Network.SimpleIRC.Messages
nick
:: Functor f =>
(Maybe ByteString -> f (Maybe ByteString))
-> IrcMessage -> f IrcMessage
nick fn (IrcMessage a b c d e f g h i j) =
fmap (\a' -> IrcMessage a' b c d e f g h i j) (fn a)
user
:: Functor f =>
(Maybe ByteString -> f (Maybe ByteString))
-> IrcMessage -> f IrcMessage
user fn (IrcMessage a b c d e f g h i j) =
fmap (\b' -> IrcMessage a b' c d e f g h i j) (fn b)
host
:: Functor f =>
(Maybe ByteString -> f (Maybe ByteString))
-> IrcMessage -> f IrcMessage
host fn (IrcMessage a b c d e f g h i j) =
fmap (\c' -> IrcMessage a b c' d e f g h i j) (fn c)
server
:: Functor f =>
(Maybe ByteString -> f (Maybe ByteString))
-> IrcMessage -> f IrcMessage
server fn (IrcMessage a b c d e f g h i j) =
fmap (\d' -> IrcMessage a b c d' e f g h i j) (fn d)
code
:: Functor f =>
(ByteString -> f ByteString) -> IrcMessage -> f IrcMessage
code fn (IrcMessage a b c d e f g h i j) =
fmap (\e' -> IrcMessage a b c d e' f g h i j) (fn e)
msg
:: Functor f =>
(ByteString -> f ByteString) -> IrcMessage -> f IrcMessage
msg fn (IrcMessage a b c d e f g h i j) =
fmap (\f' -> IrcMessage a b c d e f' g h i j) (fn f)
chan
:: Functor f =>
(Maybe ByteString -> f (Maybe ByteString))
-> IrcMessage -> f IrcMessage
chan fn (IrcMessage a b c d e f g h i j) =
fmap (\g' -> IrcMessage a b c d e f g' h i j) (fn g)
origin
:: Functor f =>
(Maybe ByteString -> f (Maybe ByteString))
-> IrcMessage -> f IrcMessage
origin fn (IrcMessage a b c d e f g h i j) =
fmap (\h' -> IrcMessage a b c d e f g h' i j) (fn h)
other
:: Functor f =>
(Maybe [ByteString] -> f (Maybe [ByteString]))
-> IrcMessage -> f IrcMessage
other fn (IrcMessage a b c d e f g h i j) =
fmap (\i' -> IrcMessage a b c d e f g h i' j) (fn i)
raw
:: Functor f =>
(ByteString -> f ByteString) -> IrcMessage -> f IrcMessage
raw fn (IrcMessage a b c d e f g h i j) =
fmap (\j' -> IrcMessage a b c d e f g h i j') (fn j)