packages feed

jsonifier-0.1.0.3: bench/Main/BufferBuilder.hs

module Main.BufferBuilder where

import Prelude
import Data.BufferBuilder.Json
import qualified Main.Model as M


encodeResult :: M.Result -> ByteString
encodeResult =
  encodeJson

instance ToJson M.Geo where
  toJson M.Geo{..} =
    toJson $
      "type_"# .=# toJson type_ <>
      "coordinates"# .=# toJson coordinates

instance ToJson (Double, Double) where
  toJson (a, b) =
    toJson [toJson a, toJson b]

instance ToJson M.Story where
  toJson M.Story{..} =
    toJson $
      "from_user_id_str"# .=# toJson from_user_id_str <>
      "profile_image_url"# .=# toJson profile_image_url <>
      "created_at"# .=# toJson created_at <>
      "from_user"# .=# toJson from_user <>
      "id_str"# .=# toJson id_str <>
      "metadata"# .=# toJson metadata <>
      "to_user_id"# .=# toJson to_user_id <>
      "text"# .=# toJson text <>
      "id"# .=# toJson id <>
      "from_user_id"# .=# toJson from_user_id <>
      "geo"# .=# toJson geo <>
      "iso_language_code"# .=# toJson iso_language_code <>
      "to_user_id_str"# .=# toJson to_user_id_str <>
      "source"# .=# toJson source

instance ToJson M.Metadata where
  toJson M.Metadata{..} =
    toJson $
      "result_type"# .=# toJson result_type

instance ToJson M.Result where
  toJson M.Result{..} =
    toJson $
      "results"# .=# toJson results <>
      "max_id"# .=# toJson max_id <>
      "since_id"# .=# toJson since_id <>
      "refresh_url"# .=# toJson refresh_url <>
      "next_page"# .=# toJson next_page <>
      "results_per_page"# .=# toJson results_per_page <>
      "page"# .=# toJson page <>
      "completed_in"# .=# toJson completed_in <>
      "since_id_str"# .=# toJson since_id_str <>
      "max_id_str"# .=# toJson max_id_str <>
      "query"# .=# toJson query