dhodovsk / source-git / ghc-aeson

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

Blame benchmarks/Compare/BufferBuilder.hs

Packit 9a2dfb
{-# LANGUAGE OverloadedStrings #-}
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.BufferBuilder () where
Packit 9a2dfb
Packit 9a2dfb
import Prelude ()
Packit 9a2dfb
import Prelude.Compat
Packit 9a2dfb
Packit 9a2dfb
import Data.BufferBuilder.Json
Packit 9a2dfb
import Data.Int (Int64)
Packit 9a2dfb
import Data.Monoid ((<>))
Packit 9a2dfb
import Prelude hiding (id)
Packit 9a2dfb
import Twitter
Packit 9a2dfb
import qualified Data.BufferBuilder.Utf8 as UB
Packit 9a2dfb
Packit 9a2dfb
instance (ToJson a, ToJson b) => ToJson (a,b) where
Packit 9a2dfb
  toJson (a,b) = array [toJson a, toJson b]
Packit 9a2dfb
Packit 9a2dfb
instance ToJson Int64 where
Packit 9a2dfb
    toJson a = unsafeValueUtf8Builder $
Packit 9a2dfb
               UB.appendDecimalSignedInt (fromIntegral a)
Packit 9a2dfb
    {-# INLINE toJson #-}
Packit 9a2dfb
Packit 9a2dfb
instance ToJson Metadata where
Packit 9a2dfb
  toJson Metadata{..} = toJson $
Packit 9a2dfb
    "result_type" .= result_type
Packit 9a2dfb
Packit 9a2dfb
instance ToJson Geo where
Packit 9a2dfb
  toJson Geo{..} = toJson $
Packit 9a2dfb
       "type_"       .= type_
Packit 9a2dfb
    <> "coordinates" .= coordinates
Packit 9a2dfb
Packit 9a2dfb
instance ToJson Story where
Packit 9a2dfb
  toJson Story{..} = toJson $
Packit 9a2dfb
       "from_user_id_str"  .= from_user_id_str
Packit 9a2dfb
    <> "profile_image_url" .= profile_image_url
Packit 9a2dfb
    <> "created_at"        .= created_at
Packit 9a2dfb
    <> "from_user"         .= from_user
Packit 9a2dfb
    <> "id_str"            .= id_str
Packit 9a2dfb
    <> "metadata"          .= metadata
Packit 9a2dfb
    <> "to_user_id"        .= to_user_id
Packit 9a2dfb
    <> "text"              .= text
Packit 9a2dfb
    <> "id"                .= id_
Packit 9a2dfb
    <> "from_user_id"      .= from_user_id
Packit 9a2dfb
    <> "geo"               .= geo
Packit 9a2dfb
    <> "iso_language_code" .= iso_language_code
Packit 9a2dfb
    <> "to_user_id_str"    .= to_user_id_str
Packit 9a2dfb
    <> "source"            .= source
Packit 9a2dfb
Packit 9a2dfb
instance ToJson Result where
Packit 9a2dfb
  toJson Result{..} = toJson $
Packit 9a2dfb
       "results" .= results
Packit 9a2dfb
    <> "max_id" .= max_id
Packit 9a2dfb
    <> "since_id" .= since_id
Packit 9a2dfb
    <> "refresh_url" .= refresh_url
Packit 9a2dfb
    <> "next_page" .= next_page
Packit 9a2dfb
    <> "results_per_page" .= results_per_page
Packit 9a2dfb
    <> "page" .= page
Packit 9a2dfb
    <> "completed_in" .= completed_in
Packit 9a2dfb
    <> "since_id_str" .= since_id_str
Packit 9a2dfb
    <> "max_id_str" .= max_id_str
Packit 9a2dfb
    <> "query" .= query