module FortyTwo.Renderers.Password (renderPassword, hideLetters) where

import Control.Monad.IO.Class

import FortyTwo.Constants (passwordHiddenChar)

-- | Print the password value to the user hiding it
renderPassword :: MonadIO m => String -> m ()
renderPassword :: forall (m :: * -> *). MonadIO m => String -> m ()
renderPassword String
letters = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ String -> IO ()
putStr forall a b. (a -> b) -> a -> b
$ String -> String
hideLetters String
letters

-- | Hide any string replacing its letters with the passwordHiddenChar
hideLetters :: String -> String
hideLetters :: String -> String
hideLetters String
letters = [Char
passwordHiddenChar | Char
_ <- String
letters]