module EventLoop.Input.InputEvent where import EventLoop.Config import EventLoop.Json import EventLoop.Input.Keyboard import EventLoop.Input.Mouse import EventLoop.Input.SystemMessage data InputEvent = InMouse Mouse | InKeyboard Keyboard | InSysMessage SystemMessageIn instance FromJSON InputEvent where fromJsonMessage obj@(JSONObject ms) | keyboardS == type' = InKeyboard (fromJsonMessage obj) | mouseS == type' = InMouse (fromJsonMessage obj) | systemmessageS == type' = InSysMessage (fromJsonMessage obj) where JSONString type' = retrieveError typeS ms