module System.Console.Haskeline.Encoding (
encode,
decode,
getEncoder,
getDecoder
) where
import System.Console.Haskeline.InputT
import System.Console.Haskeline.Term
import System.Console.Haskeline.Monads
import Data.ByteString (ByteString)
encode :: MonadIO m => String -> InputT m ByteString
encode str = do
encoder <- asks encodeForTerm
liftIO $ encoder str
decode :: MonadIO m => ByteString -> InputT m String
decode str = do
decoder <- asks decodeForTerm
liftIO $ decoder str
getEncoder :: Monad m => InputT m (String -> IO ByteString)
getEncoder = asks encodeForTerm
getDecoder :: Monad m => InputT m (ByteString -> IO String)
getDecoder = asks decodeForTerm