dhodovsk / source-git / ghc-aeson

Forked from source-git/ghc-aeson 4 years ago
Clone

Blame benchmarks/Compare/JsonBuilder.hs

Packit 9a2dfb
{-# LANGUAGE RecordWildCards #-}
Packit 9a2dfb
Packit 9a2dfb
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
Packit 9a2dfb
{-# OPTIONS_GHC -fno-warn-orphans #-}
Packit 9a2dfb
Packit 9a2dfb
module Compare.JsonBuilder () where
Packit 9a2dfb
Packit 9a2dfb
import Prelude ()
Packit 9a2dfb
import Prelude.Compat
Packit 9a2dfb
Packit 9a2dfb
import Data.Json.Builder
Packit 9a2dfb
import Data.Monoid ((<>))
Packit 9a2dfb
import Prelude hiding (id)
Packit 9a2dfb
import Twitter
Packit 9a2dfb
Packit 9a2dfb
instance JsObject Metadata where
Packit 9a2dfb
    toObject Metadata{..} = row "result_type" result_type
Packit 9a2dfb
Packit 9a2dfb
instance Value Metadata where
Packit 9a2dfb
    toJson = toJson . toObject
Packit 9a2dfb
Packit 9a2dfb
instance JsObject Geo where
Packit 9a2dfb
    toObject Geo{..} =
Packit 9a2dfb
       row "type_" type_ <>
Packit 9a2dfb
       row "coordinates" coordinates
Packit 9a2dfb
Packit 9a2dfb
instance Value Geo where
Packit 9a2dfb
    toJson = toJson . toObject
Packit 9a2dfb
Packit 9a2dfb
instance Value a => Value (Maybe a) where
Packit 9a2dfb
    toJson (Just a) = toJson a
Packit 9a2dfb
    toJson Nothing  = jsNull
Packit 9a2dfb
Packit 9a2dfb
instance JsObject Story where
Packit 9a2dfb
  toObject Story{..} =
Packit 9a2dfb
    row "from_user_id_str" from_user_id_str <>
Packit 9a2dfb
    row "profile_image_url" profile_image_url <>
Packit 9a2dfb
    row "created_at" created_at <>
Packit 9a2dfb
    row "from_user" from_user <>
Packit 9a2dfb
    row "id_str" id_str <>
Packit 9a2dfb
    row "metadata" metadata <>
Packit 9a2dfb
    row "to_user_id" to_user_id <>
Packit 9a2dfb
    row "text" text <>
Packit 9a2dfb
    row "id" id_ <>
Packit 9a2dfb
    row "from_user_id" from_user_id <>
Packit 9a2dfb
    row "geo" geo <>
Packit 9a2dfb
    row "iso_language_code" iso_language_code <>
Packit 9a2dfb
    row "to_user_id_str" to_user_id_str <>
Packit 9a2dfb
    row "source" source
Packit 9a2dfb
Packit 9a2dfb
instance Value Story where
Packit 9a2dfb
    toJson = toJson . toObject
Packit 9a2dfb
Packit 9a2dfb
instance JsObject Result where
Packit 9a2dfb
    toObject Result{..} =
Packit 9a2dfb
      row "results" results <>
Packit 9a2dfb
      row "max_id" max_id <>
Packit 9a2dfb
      row "since_id" since_id <>
Packit 9a2dfb
      row "refresh_url" refresh_url <>
Packit 9a2dfb
      row "next_page" next_page <>
Packit 9a2dfb
      row "results_per_page" results_per_page <>
Packit 9a2dfb
      row "page" page <>
Packit 9a2dfb
      row "completed_in" completed_in <>
Packit 9a2dfb
      row "since_id_str" since_id_str <>
Packit 9a2dfb
      row "max_id_str" max_id_str <>
Packit 9a2dfb
      row "query" query
Packit 9a2dfb
Packit 9a2dfb
instance Value Result where
Packit 9a2dfb
    toJson = toJson . toObject