-- | Description: Raw password data type
module Polysemy.Account.Data.RawPassword where

import qualified Text.Show as Show

-- | A clear text password, supplied by the user or generated.
newtype RawPassword =
  UnsafeRawPassword { RawPassword -> Text
unRawPassword :: Text }
  deriving stock (RawPassword -> RawPassword -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RawPassword -> RawPassword -> Bool
$c/= :: RawPassword -> RawPassword -> Bool
== :: RawPassword -> RawPassword -> Bool
$c== :: RawPassword -> RawPassword -> Bool
Eq)

instance Show RawPassword where
  show :: RawPassword -> String
show RawPassword
_ =
    String
"--> raw password <--"

json ''RawPassword

-- | Construct a ''RawPassword'.
rawPassword :: Text -> RawPassword
rawPassword :: Text -> RawPassword
rawPassword = Text -> RawPassword
UnsafeRawPassword