{- This file is part of irc-fun-color.
 -
 - Written in 2016 by fr33domlover <fr33domlover@riseup.net>.
 -
 - ♡ Copying is an act of love. Please copy, reuse and share.
 -
 - The author(s) have dedicated all copyright and related and neighboring
 - rights to this software to the public domain worldwide. This software is
 - distributed without any warranty.
 -
 - You should have received a copy of the CC0 Public Domain Dedication along
 - with this software. If not, see
 - <http://creativecommons.org/publicdomain/zero/1.0/>.
 -}

-- | This module provides the same formatters as
-- "Network.IRC.Fun.Color.Format.Long", but with shorter names.
module Network.IRC.Fun.Color.Format.Short
    ( t
    , lt
    , stl
    , nick
    , chan
    , msg
    )
where

import Formatting (Format)
import Network.IRC.Fun.Color.Format.Long
import Network.IRC.Fun.Color.Style (StyledText)
import Network.IRC.Fun.Types

import qualified Data.Text as T (Text)
import qualified Data.Text.Lazy as TL (Text)

-- | Output a strict 'T.Text'.
t :: Format r (T.Text -> r)
t = text

-- | Output a lazy 'TL.Text'.
lt :: Format r (TL.Text -> r)
lt = ltext

-- | Render an IRC styled message.
stl :: Format r (StyledText -> r)
stl = styled

-- | Output an IRC nickname as plain text.
nick :: Format r (Nickname -> r)
nick = nickname

-- | Output an IRC channel name as plain text.
chan :: Format r (Channel -> r)
chan = channel

-- | Output IRC message content as plain text.
msg :: Format r (MsgContent -> r)
msg = message