29 lines
611 B
Haskell
29 lines
611 B
Haskell
module LogAnalysis where
|
|
|
|
import Text.Read ( readMaybe )
|
|
|
|
data MessageType = Info
|
|
| Warning
|
|
| Error Int
|
|
deriving (Show, Eq)
|
|
|
|
type Timestamp = Int
|
|
|
|
data LogMessage = LogMessage MessageType Timestamp String
|
|
deriving (Show, Eq)
|
|
|
|
data MaybeLogMessage = ValidLM LogMessage
|
|
| InvalidLM String
|
|
deriving (Show, Eq)
|
|
|
|
data MaybeInt = ValidInt Int
|
|
| InvalidInt
|
|
deriving (Show, Eq)
|
|
|
|
readInt :: String -> MaybeInt
|
|
readInt s
|
|
| Just i <- readMaybe s = ValidInt i
|
|
| otherwise = InvalidInt
|
|
|
|
-- parseMessage :: String -> MaybeLogMessage
|