mirror of
https://github.com/ilyakooo0/vty.git
synced 2024-11-25 19:22:08 +03:00
perf: Mark event data types as strict; unpack some fields.
Integral types like Char and Int benefit a lot from UNPACK. For these, there is also very little reason to use lazy fields, especially in this codebase where most computations don't need laziness.
This commit is contained in:
parent
d6a069401e
commit
9b9635b86b
@ -1,5 +1,6 @@
|
||||
-- | This module exports the input classification type to avoid import
|
||||
-- cycles between other modules that need this.
|
||||
{-# StrictData #-}
|
||||
module Graphics.Vty.Input.Classify.Types
|
||||
( KClass(..)
|
||||
)
|
||||
|
@ -1,4 +1,5 @@
|
||||
{-# Language DeriveGeneric #-}
|
||||
{-# Language StrictData #-}
|
||||
module Graphics.Vty.Input.Events where
|
||||
|
||||
import Control.DeepSeq
|
||||
@ -15,10 +16,10 @@ import GHC.Generics
|
||||
--
|
||||
-- * Actually, support for most of these but KEsc, KChar, KBS, and
|
||||
-- KEnter vary by terminal and keyboard.
|
||||
data Key = KEsc | KChar Char | KBS | KEnter
|
||||
data Key = KEsc | KChar {-# UNPACK #-} Char | KBS | KEnter
|
||||
| KLeft | KRight | KUp | KDown
|
||||
| KUpLeft | KUpRight | KDownLeft | KDownRight | KCenter
|
||||
| KFun Int | KBackTab | KPrtScr | KPause | KIns
|
||||
| KFun {-# UNPACK #-} Int | KBackTab | KPrtScr | KPause | KIns
|
||||
| KHome | KPageUp | KDel | KEnd | KPageDown | KBegin | KMenu
|
||||
deriving (Eq,Show,Read,Ord,Generic)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user