lifx-lan-0.8.0: LIFX LAN API
Safe HaskellSafe-Inferred
LanguageHaskell2010

Lifx.Lan.Mock.Terminal

Description

Rather than interacting with any bulbs, simulate interactions by printing to a terminal.

Synopsis

Documentation

data Mock a Source #

Instances

Instances details
MonadIO Mock Source # 
Instance details

Defined in Lifx.Lan.Mock.Terminal

Methods

liftIO :: IO a -> Mock a #

Applicative Mock Source # 
Instance details

Defined in Lifx.Lan.Mock.Terminal

Methods

pure :: a -> Mock a #

(<*>) :: Mock (a -> b) -> Mock a -> Mock b #

liftA2 :: (a -> b -> c) -> Mock a -> Mock b -> Mock c #

(*>) :: Mock a -> Mock b -> Mock b #

(<*) :: Mock a -> Mock b -> Mock a #

Functor Mock Source # 
Instance details

Defined in Lifx.Lan.Mock.Terminal

Methods

fmap :: (a -> b) -> Mock a -> Mock b #

(<$) :: a -> Mock b -> Mock a #

Monad Mock Source # 
Instance details

Defined in Lifx.Lan.Mock.Terminal

Methods

(>>=) :: Mock a -> (a -> Mock b) -> Mock b #

(>>) :: Mock a -> Mock b -> Mock b #

return :: a -> Mock a #

MonadLifx Mock Source # 
Instance details

Defined in Lifx.Lan.Mock.Terminal

Associated Types

type MonadLifxError Mock Source #

type MonadLifxError Mock Source # 
Instance details

Defined in Lifx.Lan.Mock.Terminal

data MockError Source #

Instances

Instances details
Show MockError Source # 
Instance details

Defined in Lifx.Lan.Mock.Terminal

runMock :: [(Device, Text)] -> Mock a -> IO (Either MockError a) Source #

Run a LIFX action by mocking effects in a terminal.

Note that sending some messages (e.g. GetVersion) will throw exceptions, since the necessary state isn't specified. See runMockFull for more control.

runMockFull :: [(Device, MockState)] -> Mock a -> IO (Either MockError a) Source #

More general version of runMock, which allows specifying extra information about devices.