module Ribosome.Menu.Data.MenuEvent where
import qualified Text.Show
import Ribosome.Menu.Data.MenuItem (MenuItem)
import Ribosome.Menu.Prompt.Data.Prompt (Prompt)
data QuitReason m a =
Aborted
|
PromptError Text
|
NoOutput
|
Return a
|
Execute (m a)
instance Show (QuitReason m a) where
show :: QuitReason m a -> String
show QuitReason m a
Aborted =
String
"Aborted"
show (PromptError Text
err) =
String
"PromptError(" String -> ShowS
forall a. Semigroup a => a -> a -> a
<> Text -> String
forall a. ToString a => a -> String
toString Text
err String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
")"
show QuitReason m a
NoOutput =
String
"NoOutput"
show (Return a
_) =
String
"Return"
show (Execute m a
_) =
String
"Execute"
data m a i =
Init Prompt
|
PromptChange Prompt
|
Mapping Text Prompt
|
NewItems [MenuItem i]
|
Quit (QuitReason m a)
deriving Int -> MenuEvent m a i -> ShowS
[MenuEvent m a i] -> ShowS
MenuEvent m a i -> String
(Int -> MenuEvent m a i -> ShowS)
-> (MenuEvent m a i -> String)
-> ([MenuEvent m a i] -> ShowS)
-> Show (MenuEvent m a i)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall (m :: * -> *) a i. Show i => Int -> MenuEvent m a i -> ShowS
forall (m :: * -> *) a i. Show i => [MenuEvent m a i] -> ShowS
forall (m :: * -> *) a i. Show i => MenuEvent m a i -> String
showList :: [MenuEvent m a i] -> ShowS
$cshowList :: forall (m :: * -> *) a i. Show i => [MenuEvent m a i] -> ShowS
show :: MenuEvent m a i -> String
$cshow :: forall (m :: * -> *) a i. Show i => MenuEvent m a i -> String
showsPrec :: Int -> MenuEvent m a i -> ShowS
$cshowsPrec :: forall (m :: * -> *) a i. Show i => Int -> MenuEvent m a i -> ShowS
Show