module Propellor.Property.Installer.Types where

-- | The disk device to install to.
newtype TargetDiskDevice = TargetDiskDevice FilePath
        deriving (Read, Show)

data DiskEraseConfirmed = DiskEraseConfirmed
        deriving (Read, Show)

-- | Class of user input that an installer might prompt for.
class UserInput i where
        -- | Get the disk device the user selected to install to.
        targetDiskDevice :: i -> Maybe TargetDiskDevice
        -- | Check if the user has confirmed they want to erase the target
        -- disk device.
        diskEraseConfirmed :: i -> Maybe DiskEraseConfirmed