module Lambdabot.Compat.PackedNick
( PackedNick
, packNick
, unpackNick
) where
import Lambdabot.Nick
import qualified Data.ByteString.Char8 as BS
type PackedNick = BS.ByteString
upckStr :: String -> String -> Nick
upckStr :: String -> String -> Nick
upckStr String
def String
str | forall (t :: * -> *) a. Foldable t => t a -> Bool
null String
ac = String -> String -> Nick
Nick String
def String
str
| Bool
otherwise = String -> String -> Nick
Nick String
bc (forall a. [a] -> [a]
tail String
ac)
where (String
bc, String
ac) = forall a. (a -> Bool) -> [a] -> ([a], [a])
break (forall a. Eq a => a -> a -> Bool
==Char
':') String
str
pckStr :: Nick -> String
pckStr :: Nick -> String
pckStr Nick
nck = Nick -> String
nTag Nick
nck forall a. [a] -> [a] -> [a]
++ Char
':' forall a. a -> [a] -> [a]
: Nick -> String
nName Nick
nck
packNick :: Nick -> BS.ByteString
packNick :: Nick -> ByteString
packNick = String -> ByteString
BS.pack forall b c a. (b -> c) -> (a -> b) -> a -> c
. Nick -> String
pckStr
unpackNick :: BS.ByteString -> Nick
unpackNick :: ByteString -> Nick
unpackNick = String -> String -> Nick
upckStr String
"freenode" forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> String
BS.unpack