packages feed

aws-mfa-credentials-0.1.0.0: AwsMfaCredentials/Effects/PasswordPrompt.hs

{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs            #-}
module AwsMfaCredentials.Effects.PasswordPrompt where

import Control.Monad.Freer (Eff, Member, send)

-- | Password prompting effects
data PasswordPrompt prompt ret a where
  -- | Request a password with the given prompt
  PasswordPrompt :: prompt
                 -> PasswordPrompt prompt ret ret

-- | Request a password with the given prompt
passwordPrompt :: Member (PasswordPrompt prompt ret) r
               => prompt
               -> Eff r ret
passwordPrompt = send . PasswordPrompt