packages feed

concrete-haskell-0.1.0.5: src/Spans_Types.hs

{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-missing-fields #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-----------------------------------------------------------------
-- Autogenerated by Thrift Compiler (0.10.0)                      --
--                                                             --
-- DO NOT EDIT UNLESS YOU ARE SURE YOU KNOW WHAT YOU ARE DOING --
-----------------------------------------------------------------

module Spans_Types where
import Prelude (($), (.), (>>=), (==), (++))
import qualified Prelude as P
import qualified Control.Exception as X
import qualified Control.Monad as M ( liftM, ap, when )
import Data.Functor ( (<$>) )
import qualified Data.ByteString.Lazy as LBS
import qualified Data.Hashable as H
import qualified Data.Int as I
import qualified Data.Maybe as M (catMaybes)
import qualified Data.Text.Lazy.Encoding as E ( decodeUtf8, encodeUtf8 )
import qualified Data.Text.Lazy as LT
import qualified GHC.Generics as G (Generic)
import qualified Data.Typeable as TY ( Typeable )
import qualified Data.HashMap.Strict as Map
import qualified Data.HashSet as Set
import qualified Data.Vector as Vector
import qualified Test.QuickCheck.Arbitrary as QC ( Arbitrary(..) )
import qualified Test.QuickCheck as QC ( elements )

import qualified Thrift as T
import qualified Thrift.Types as T
import qualified Thrift.Arbitraries as T


data TextSpan = TextSpan  { textSpan_start :: I.Int32
  , textSpan_ending :: I.Int32
  } deriving (P.Show,P.Eq,G.Generic,TY.Typeable)
instance H.Hashable TextSpan where
  hashWithSalt salt record = salt   `H.hashWithSalt` textSpan_start record   `H.hashWithSalt` textSpan_ending record  
instance QC.Arbitrary TextSpan where 
  arbitrary = M.liftM TextSpan (QC.arbitrary)
          `M.ap`(QC.arbitrary)
  shrink obj | obj == default_TextSpan = []
             | P.otherwise = M.catMaybes
    [ if obj == default_TextSpan{textSpan_start = textSpan_start obj} then P.Nothing else P.Just $ default_TextSpan{textSpan_start = textSpan_start obj}
    , if obj == default_TextSpan{textSpan_ending = textSpan_ending obj} then P.Nothing else P.Just $ default_TextSpan{textSpan_ending = textSpan_ending obj}
    ]
from_TextSpan :: TextSpan -> T.ThriftVal
from_TextSpan record = T.TStruct $ Map.fromList $ M.catMaybes
  [ (\_v2 -> P.Just (1, ("start",T.TI32 _v2))) $ textSpan_start record
  , (\_v2 -> P.Just (2, ("ending",T.TI32 _v2))) $ textSpan_ending record
  ]
write_TextSpan :: (T.Protocol p, T.Transport t) => p t -> TextSpan -> P.IO ()
write_TextSpan oprot record = T.writeVal oprot $ from_TextSpan record
encode_TextSpan :: (T.Protocol p, T.Transport t) => p t -> TextSpan -> LBS.ByteString
encode_TextSpan oprot record = T.serializeVal oprot $ from_TextSpan record
to_TextSpan :: T.ThriftVal -> TextSpan
to_TextSpan (T.TStruct fields) = TextSpan{
  textSpan_start = P.maybe (P.error "Missing required field: start") (\(_,_val4) -> (case _val4 of {T.TI32 _val5 -> _val5; _ -> P.error "wrong type"})) (Map.lookup (1) fields),
  textSpan_ending = P.maybe (P.error "Missing required field: ending") (\(_,_val4) -> (case _val4 of {T.TI32 _val6 -> _val6; _ -> P.error "wrong type"})) (Map.lookup (2) fields)
  }
to_TextSpan _ = P.error "not a struct"
read_TextSpan :: (T.Transport t, T.Protocol p) => p t -> P.IO TextSpan
read_TextSpan iprot = to_TextSpan <$> T.readVal iprot (T.T_STRUCT typemap_TextSpan)
decode_TextSpan :: (T.Protocol p, T.Transport t) => p t -> LBS.ByteString -> TextSpan
decode_TextSpan iprot bs = to_TextSpan $ T.deserializeVal iprot (T.T_STRUCT typemap_TextSpan) bs
typemap_TextSpan :: T.TypeMap
typemap_TextSpan = Map.fromList [(1,("start",T.T_I32)),(2,("ending",T.T_I32))]
default_TextSpan :: TextSpan
default_TextSpan = TextSpan{
  textSpan_start = 0,
  textSpan_ending = 0}
data AudioSpan = AudioSpan  { audioSpan_start :: I.Int64
  , audioSpan_ending :: I.Int64
  } deriving (P.Show,P.Eq,G.Generic,TY.Typeable)
instance H.Hashable AudioSpan where
  hashWithSalt salt record = salt   `H.hashWithSalt` audioSpan_start record   `H.hashWithSalt` audioSpan_ending record  
instance QC.Arbitrary AudioSpan where 
  arbitrary = M.liftM AudioSpan (QC.arbitrary)
          `M.ap`(QC.arbitrary)
  shrink obj | obj == default_AudioSpan = []
             | P.otherwise = M.catMaybes
    [ if obj == default_AudioSpan{audioSpan_start = audioSpan_start obj} then P.Nothing else P.Just $ default_AudioSpan{audioSpan_start = audioSpan_start obj}
    , if obj == default_AudioSpan{audioSpan_ending = audioSpan_ending obj} then P.Nothing else P.Just $ default_AudioSpan{audioSpan_ending = audioSpan_ending obj}
    ]
from_AudioSpan :: AudioSpan -> T.ThriftVal
from_AudioSpan record = T.TStruct $ Map.fromList $ M.catMaybes
  [ (\_v9 -> P.Just (1, ("start",T.TI64 _v9))) $ audioSpan_start record
  , (\_v9 -> P.Just (2, ("ending",T.TI64 _v9))) $ audioSpan_ending record
  ]
write_AudioSpan :: (T.Protocol p, T.Transport t) => p t -> AudioSpan -> P.IO ()
write_AudioSpan oprot record = T.writeVal oprot $ from_AudioSpan record
encode_AudioSpan :: (T.Protocol p, T.Transport t) => p t -> AudioSpan -> LBS.ByteString
encode_AudioSpan oprot record = T.serializeVal oprot $ from_AudioSpan record
to_AudioSpan :: T.ThriftVal -> AudioSpan
to_AudioSpan (T.TStruct fields) = AudioSpan{
  audioSpan_start = P.maybe (P.error "Missing required field: start") (\(_,_val11) -> (case _val11 of {T.TI64 _val12 -> _val12; _ -> P.error "wrong type"})) (Map.lookup (1) fields),
  audioSpan_ending = P.maybe (P.error "Missing required field: ending") (\(_,_val11) -> (case _val11 of {T.TI64 _val13 -> _val13; _ -> P.error "wrong type"})) (Map.lookup (2) fields)
  }
to_AudioSpan _ = P.error "not a struct"
read_AudioSpan :: (T.Transport t, T.Protocol p) => p t -> P.IO AudioSpan
read_AudioSpan iprot = to_AudioSpan <$> T.readVal iprot (T.T_STRUCT typemap_AudioSpan)
decode_AudioSpan :: (T.Protocol p, T.Transport t) => p t -> LBS.ByteString -> AudioSpan
decode_AudioSpan iprot bs = to_AudioSpan $ T.deserializeVal iprot (T.T_STRUCT typemap_AudioSpan) bs
typemap_AudioSpan :: T.TypeMap
typemap_AudioSpan = Map.fromList [(1,("start",T.T_I64)),(2,("ending",T.T_I64))]
default_AudioSpan :: AudioSpan
default_AudioSpan = AudioSpan{
  audioSpan_start = 0,
  audioSpan_ending = 0}