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