module Ribosome.Menu.Prompt.Data.PromptUpdate where

import Ribosome.Menu.Prompt.Data.CursorUpdate (CursorUpdate)
import Ribosome.Menu.Prompt.Data.PromptConsumed (PromptConsumed)
import Ribosome.Menu.Prompt.Data.PromptState (PromptState)
import Ribosome.Menu.Prompt.Data.TextUpdate (TextUpdate)

data PromptUpdate =
  PromptUpdate {
    PromptUpdate -> PromptState
_state :: PromptState,
    PromptUpdate -> CursorUpdate
_cursor :: CursorUpdate,
    PromptUpdate -> TextUpdate
_text :: TextUpdate,
    PromptUpdate -> PromptConsumed
_consumed :: PromptConsumed
  }
  deriving (PromptUpdate -> PromptUpdate -> Bool
(PromptUpdate -> PromptUpdate -> Bool)
-> (PromptUpdate -> PromptUpdate -> Bool) -> Eq PromptUpdate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PromptUpdate -> PromptUpdate -> Bool
$c/= :: PromptUpdate -> PromptUpdate -> Bool
== :: PromptUpdate -> PromptUpdate -> Bool
$c== :: PromptUpdate -> PromptUpdate -> Bool
Eq, Int -> PromptUpdate -> ShowS
[PromptUpdate] -> ShowS
PromptUpdate -> String
(Int -> PromptUpdate -> ShowS)
-> (PromptUpdate -> String)
-> ([PromptUpdate] -> ShowS)
-> Show PromptUpdate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PromptUpdate] -> ShowS
$cshowList :: [PromptUpdate] -> ShowS
show :: PromptUpdate -> String
$cshow :: PromptUpdate -> String
showsPrec :: Int -> PromptUpdate -> ShowS
$cshowsPrec :: Int -> PromptUpdate -> ShowS
Show)