{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Graphics.X11.Xlib.Aeson () where import Data.Aeson import Graphics.X11.Xlib.Types instance ToJSON Rectangle where toJSON Rectangle{..} = object [ "x" .= toJSON rect_x , "y" .= toJSON rect_y , "width" .= toJSON rect_width , "height" .= toJSON rect_height ] instance FromJSON Rectangle where parseJSON = withObject "Rectangle" $ \v -> Rectangle <$> v .: "x" <*> v .: "y" <*> v .: "width" <*> v .: "height"