{-# LANGUAGE DeriveDataTypeable #-}
-----------------------------------------------------------------
-- Autogenerated by Thrift                                     --
--                                                             --
-- DO NOT EDIT UNLESS YOU ARE SURE YOU KNOW WHAT YOU ARE DOING --
-----------------------------------------------------------------

module Database.Cassandra.Thrift.Cassandra where
import Thrift
import Data.Typeable ( Typeable )
import Control.Exception
import qualified Data.Map as Map
import qualified Data.Set as Set
import Data.Int
import Database.Cassandra.Thrift.Cassandra_Types
import qualified Database.Cassandra.Thrift.Cassandra_Iface as Iface
-- HELPER FUNCTIONS AND STRUCTURES --

data Get_args = Get_args{f_Get_args_keyspace :: Maybe String,f_Get_args_key :: Maybe String,f_Get_args_column_path :: Maybe ColumnPath,f_Get_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
write_Get_args oprot rec = do
  writeStructBegin oprot "Get_args"
  case f_Get_args_keyspace rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("keyspace",T_STRING,1)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Get_args_key rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("key",T_STRING,2)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Get_args_column_path rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("column_path",T_STRUCT,3)
    write_ColumnPath oprot _v
    writeFieldEnd oprot}
  case f_Get_args_consistency_level rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("consistency_level",T_I32,4)
    writeI32 oprot (fromEnum _v)
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_args_fields iprot rec = do
  (_,_t81,_id82) <- readFieldBegin iprot
  if _t81 == T_STOP then return rec else
    case _id82 of 
      1 -> if _t81 == T_STRING then do
        s <- readString iprot
        read_Get_args_fields iprot rec{f_Get_args_keyspace=Just s}
        else do
          skip iprot _t81
          read_Get_args_fields iprot rec
      2 -> if _t81 == T_STRING then do
        s <- readString iprot
        read_Get_args_fields iprot rec{f_Get_args_key=Just s}
        else do
          skip iprot _t81
          read_Get_args_fields iprot rec
      3 -> if _t81 == T_STRUCT then do
        s <- (read_ColumnPath iprot)
        read_Get_args_fields iprot rec{f_Get_args_column_path=Just s}
        else do
          skip iprot _t81
          read_Get_args_fields iprot rec
      4 -> if _t81 == T_I32 then do
        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
        read_Get_args_fields iprot rec{f_Get_args_consistency_level=Just s}
        else do
          skip iprot _t81
          read_Get_args_fields iprot rec
      _ -> do
        skip iprot _t81
        readFieldEnd iprot
        read_Get_args_fields iprot rec
read_Get_args iprot = do
  readStructBegin iprot
  rec <- read_Get_args_fields iprot (Get_args{f_Get_args_keyspace=Nothing,f_Get_args_key=Nothing,f_Get_args_column_path=Nothing,f_Get_args_consistency_level=Nothing})
  readStructEnd iprot
  return rec
data Get_result = Get_result{f_Get_result_success :: Maybe ColumnOrSuperColumn,f_Get_result_ire :: Maybe InvalidRequestException,f_Get_result_nfe :: Maybe NotFoundException,f_Get_result_ue :: Maybe UnavailableException,f_Get_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
write_Get_result oprot rec = do
  writeStructBegin oprot "Get_result"
  case f_Get_result_success rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("success",T_STRUCT,0)
    write_ColumnOrSuperColumn oprot _v
    writeFieldEnd oprot}
  case f_Get_result_ire rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ire",T_STRUCT,1)
    write_InvalidRequestException oprot _v
    writeFieldEnd oprot}
  case f_Get_result_nfe rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("nfe",T_STRUCT,2)
    write_NotFoundException oprot _v
    writeFieldEnd oprot}
  case f_Get_result_ue rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ue",T_STRUCT,3)
    write_UnavailableException oprot _v
    writeFieldEnd oprot}
  case f_Get_result_te rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("te",T_STRUCT,4)
    write_TimedOutException oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_result_fields iprot rec = do
  (_,_t86,_id87) <- readFieldBegin iprot
  if _t86 == T_STOP then return rec else
    case _id87 of 
      0 -> if _t86 == T_STRUCT then do
        s <- (read_ColumnOrSuperColumn iprot)
        read_Get_result_fields iprot rec{f_Get_result_success=Just s}
        else do
          skip iprot _t86
          read_Get_result_fields iprot rec
      1 -> if _t86 == T_STRUCT then do
        s <- (read_InvalidRequestException iprot)
        read_Get_result_fields iprot rec{f_Get_result_ire=Just s}
        else do
          skip iprot _t86
          read_Get_result_fields iprot rec
      2 -> if _t86 == T_STRUCT then do
        s <- (read_NotFoundException iprot)
        read_Get_result_fields iprot rec{f_Get_result_nfe=Just s}
        else do
          skip iprot _t86
          read_Get_result_fields iprot rec
      3 -> if _t86 == T_STRUCT then do
        s <- (read_UnavailableException iprot)
        read_Get_result_fields iprot rec{f_Get_result_ue=Just s}
        else do
          skip iprot _t86
          read_Get_result_fields iprot rec
      4 -> if _t86 == T_STRUCT then do
        s <- (read_TimedOutException iprot)
        read_Get_result_fields iprot rec{f_Get_result_te=Just s}
        else do
          skip iprot _t86
          read_Get_result_fields iprot rec
      _ -> do
        skip iprot _t86
        readFieldEnd iprot
        read_Get_result_fields iprot rec
read_Get_result iprot = do
  readStructBegin iprot
  rec <- read_Get_result_fields iprot (Get_result{f_Get_result_success=Nothing,f_Get_result_ire=Nothing,f_Get_result_nfe=Nothing,f_Get_result_ue=Nothing,f_Get_result_te=Nothing})
  readStructEnd iprot
  return rec
data Get_slice_args = Get_slice_args{f_Get_slice_args_keyspace :: Maybe String,f_Get_slice_args_key :: Maybe String,f_Get_slice_args_column_parent :: Maybe ColumnParent,f_Get_slice_args_predicate :: Maybe SlicePredicate,f_Get_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
write_Get_slice_args oprot rec = do
  writeStructBegin oprot "Get_slice_args"
  case f_Get_slice_args_keyspace rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("keyspace",T_STRING,1)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Get_slice_args_key rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("key",T_STRING,2)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Get_slice_args_column_parent rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("column_parent",T_STRUCT,3)
    write_ColumnParent oprot _v
    writeFieldEnd oprot}
  case f_Get_slice_args_predicate rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("predicate",T_STRUCT,4)
    write_SlicePredicate oprot _v
    writeFieldEnd oprot}
  case f_Get_slice_args_consistency_level rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("consistency_level",T_I32,5)
    writeI32 oprot (fromEnum _v)
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_slice_args_fields iprot rec = do
  (_,_t91,_id92) <- readFieldBegin iprot
  if _t91 == T_STOP then return rec else
    case _id92 of 
      1 -> if _t91 == T_STRING then do
        s <- readString iprot
        read_Get_slice_args_fields iprot rec{f_Get_slice_args_keyspace=Just s}
        else do
          skip iprot _t91
          read_Get_slice_args_fields iprot rec
      2 -> if _t91 == T_STRING then do
        s <- readString iprot
        read_Get_slice_args_fields iprot rec{f_Get_slice_args_key=Just s}
        else do
          skip iprot _t91
          read_Get_slice_args_fields iprot rec
      3 -> if _t91 == T_STRUCT then do
        s <- (read_ColumnParent iprot)
        read_Get_slice_args_fields iprot rec{f_Get_slice_args_column_parent=Just s}
        else do
          skip iprot _t91
          read_Get_slice_args_fields iprot rec
      4 -> if _t91 == T_STRUCT then do
        s <- (read_SlicePredicate iprot)
        read_Get_slice_args_fields iprot rec{f_Get_slice_args_predicate=Just s}
        else do
          skip iprot _t91
          read_Get_slice_args_fields iprot rec
      5 -> if _t91 == T_I32 then do
        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
        read_Get_slice_args_fields iprot rec{f_Get_slice_args_consistency_level=Just s}
        else do
          skip iprot _t91
          read_Get_slice_args_fields iprot rec
      _ -> do
        skip iprot _t91
        readFieldEnd iprot
        read_Get_slice_args_fields iprot rec
read_Get_slice_args iprot = do
  readStructBegin iprot
  rec <- read_Get_slice_args_fields iprot (Get_slice_args{f_Get_slice_args_keyspace=Nothing,f_Get_slice_args_key=Nothing,f_Get_slice_args_column_parent=Nothing,f_Get_slice_args_predicate=Nothing,f_Get_slice_args_consistency_level=Nothing})
  readStructEnd iprot
  return rec
data Get_slice_result = Get_slice_result{f_Get_slice_result_success :: Maybe [ColumnOrSuperColumn],f_Get_slice_result_ire :: Maybe InvalidRequestException,f_Get_slice_result_ue :: Maybe UnavailableException,f_Get_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
write_Get_slice_result oprot rec = do
  writeStructBegin oprot "Get_slice_result"
  case f_Get_slice_result_success rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("success",T_LIST,0)
    (let {f [] = return (); f (_viter95:t) = do {write_ColumnOrSuperColumn oprot _viter95;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
    writeFieldEnd oprot}
  case f_Get_slice_result_ire rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ire",T_STRUCT,1)
    write_InvalidRequestException oprot _v
    writeFieldEnd oprot}
  case f_Get_slice_result_ue rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ue",T_STRUCT,2)
    write_UnavailableException oprot _v
    writeFieldEnd oprot}
  case f_Get_slice_result_te rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("te",T_STRUCT,3)
    write_TimedOutException oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_slice_result_fields iprot rec = do
  (_,_t97,_id98) <- readFieldBegin iprot
  if _t97 == T_STOP then return rec else
    case _id98 of 
      0 -> if _t97 == T_LIST then do
        s <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype102,_size99) <- readListBegin iprot; f _size99})
        read_Get_slice_result_fields iprot rec{f_Get_slice_result_success=Just s}
        else do
          skip iprot _t97
          read_Get_slice_result_fields iprot rec
      1 -> if _t97 == T_STRUCT then do
        s <- (read_InvalidRequestException iprot)
        read_Get_slice_result_fields iprot rec{f_Get_slice_result_ire=Just s}
        else do
          skip iprot _t97
          read_Get_slice_result_fields iprot rec
      2 -> if _t97 == T_STRUCT then do
        s <- (read_UnavailableException iprot)
        read_Get_slice_result_fields iprot rec{f_Get_slice_result_ue=Just s}
        else do
          skip iprot _t97
          read_Get_slice_result_fields iprot rec
      3 -> if _t97 == T_STRUCT then do
        s <- (read_TimedOutException iprot)
        read_Get_slice_result_fields iprot rec{f_Get_slice_result_te=Just s}
        else do
          skip iprot _t97
          read_Get_slice_result_fields iprot rec
      _ -> do
        skip iprot _t97
        readFieldEnd iprot
        read_Get_slice_result_fields iprot rec
read_Get_slice_result iprot = do
  readStructBegin iprot
  rec <- read_Get_slice_result_fields iprot (Get_slice_result{f_Get_slice_result_success=Nothing,f_Get_slice_result_ire=Nothing,f_Get_slice_result_ue=Nothing,f_Get_slice_result_te=Nothing})
  readStructEnd iprot
  return rec
data Multiget_args = Multiget_args{f_Multiget_args_keyspace :: Maybe String,f_Multiget_args_keys :: Maybe [String],f_Multiget_args_column_path :: Maybe ColumnPath,f_Multiget_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
write_Multiget_args oprot rec = do
  writeStructBegin oprot "Multiget_args"
  case f_Multiget_args_keyspace rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("keyspace",T_STRING,1)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Multiget_args_keys rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("keys",T_LIST,2)
    (let {f [] = return (); f (_viter106:t) = do {writeString oprot _viter106;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
    writeFieldEnd oprot}
  case f_Multiget_args_column_path rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("column_path",T_STRUCT,3)
    write_ColumnPath oprot _v
    writeFieldEnd oprot}
  case f_Multiget_args_consistency_level rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("consistency_level",T_I32,4)
    writeI32 oprot (fromEnum _v)
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Multiget_args_fields iprot rec = do
  (_,_t108,_id109) <- readFieldBegin iprot
  if _t108 == T_STOP then return rec else
    case _id109 of 
      1 -> if _t108 == T_STRING then do
        s <- readString iprot
        read_Multiget_args_fields iprot rec{f_Multiget_args_keyspace=Just s}
        else do
          skip iprot _t108
          read_Multiget_args_fields iprot rec
      2 -> if _t108 == T_LIST then do
        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype113,_size110) <- readListBegin iprot; f _size110})
        read_Multiget_args_fields iprot rec{f_Multiget_args_keys=Just s}
        else do
          skip iprot _t108
          read_Multiget_args_fields iprot rec
      3 -> if _t108 == T_STRUCT then do
        s <- (read_ColumnPath iprot)
        read_Multiget_args_fields iprot rec{f_Multiget_args_column_path=Just s}
        else do
          skip iprot _t108
          read_Multiget_args_fields iprot rec
      4 -> if _t108 == T_I32 then do
        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
        read_Multiget_args_fields iprot rec{f_Multiget_args_consistency_level=Just s}
        else do
          skip iprot _t108
          read_Multiget_args_fields iprot rec
      _ -> do
        skip iprot _t108
        readFieldEnd iprot
        read_Multiget_args_fields iprot rec
read_Multiget_args iprot = do
  readStructBegin iprot
  rec <- read_Multiget_args_fields iprot (Multiget_args{f_Multiget_args_keyspace=Nothing,f_Multiget_args_keys=Nothing,f_Multiget_args_column_path=Nothing,f_Multiget_args_consistency_level=Nothing})
  readStructEnd iprot
  return rec
data Multiget_result = Multiget_result{f_Multiget_result_success :: Maybe (Map.Map String ColumnOrSuperColumn),f_Multiget_result_ire :: Maybe InvalidRequestException,f_Multiget_result_ue :: Maybe UnavailableException,f_Multiget_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
write_Multiget_result oprot rec = do
  writeStructBegin oprot "Multiget_result"
  case f_Multiget_result_success rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("success",T_MAP,0)
    (let {f [] = return (); f ((_kiter117,_viter118):t) = do {do {writeString oprot _kiter117;write_ColumnOrSuperColumn oprot _viter118};f t}} in do {writeMapBegin oprot (T_STRING,T_STRUCT,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
    writeFieldEnd oprot}
  case f_Multiget_result_ire rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ire",T_STRUCT,1)
    write_InvalidRequestException oprot _v
    writeFieldEnd oprot}
  case f_Multiget_result_ue rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ue",T_STRUCT,2)
    write_UnavailableException oprot _v
    writeFieldEnd oprot}
  case f_Multiget_result_te rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("te",T_STRUCT,3)
    write_TimedOutException oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Multiget_result_fields iprot rec = do
  (_,_t120,_id121) <- readFieldBegin iprot
  if _t120 == T_STOP then return rec else
    case _id121 of 
      0 -> if _t120 == T_MAP then do
        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ (k,v):r}} in do {(_ktype123,_vtype124,_size122) <- readMapBegin iprot; l <- f _size122; return $ Map.fromList l})
        read_Multiget_result_fields iprot rec{f_Multiget_result_success=Just s}
        else do
          skip iprot _t120
          read_Multiget_result_fields iprot rec
      1 -> if _t120 == T_STRUCT then do
        s <- (read_InvalidRequestException iprot)
        read_Multiget_result_fields iprot rec{f_Multiget_result_ire=Just s}
        else do
          skip iprot _t120
          read_Multiget_result_fields iprot rec
      2 -> if _t120 == T_STRUCT then do
        s <- (read_UnavailableException iprot)
        read_Multiget_result_fields iprot rec{f_Multiget_result_ue=Just s}
        else do
          skip iprot _t120
          read_Multiget_result_fields iprot rec
      3 -> if _t120 == T_STRUCT then do
        s <- (read_TimedOutException iprot)
        read_Multiget_result_fields iprot rec{f_Multiget_result_te=Just s}
        else do
          skip iprot _t120
          read_Multiget_result_fields iprot rec
      _ -> do
        skip iprot _t120
        readFieldEnd iprot
        read_Multiget_result_fields iprot rec
read_Multiget_result iprot = do
  readStructBegin iprot
  rec <- read_Multiget_result_fields iprot (Multiget_result{f_Multiget_result_success=Nothing,f_Multiget_result_ire=Nothing,f_Multiget_result_ue=Nothing,f_Multiget_result_te=Nothing})
  readStructEnd iprot
  return rec
data Multiget_slice_args = Multiget_slice_args{f_Multiget_slice_args_keyspace :: Maybe String,f_Multiget_slice_args_keys :: Maybe [String],f_Multiget_slice_args_column_parent :: Maybe ColumnParent,f_Multiget_slice_args_predicate :: Maybe SlicePredicate,f_Multiget_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
write_Multiget_slice_args oprot rec = do
  writeStructBegin oprot "Multiget_slice_args"
  case f_Multiget_slice_args_keyspace rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("keyspace",T_STRING,1)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Multiget_slice_args_keys rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("keys",T_LIST,2)
    (let {f [] = return (); f (_viter129:t) = do {writeString oprot _viter129;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
    writeFieldEnd oprot}
  case f_Multiget_slice_args_column_parent rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("column_parent",T_STRUCT,3)
    write_ColumnParent oprot _v
    writeFieldEnd oprot}
  case f_Multiget_slice_args_predicate rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("predicate",T_STRUCT,4)
    write_SlicePredicate oprot _v
    writeFieldEnd oprot}
  case f_Multiget_slice_args_consistency_level rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("consistency_level",T_I32,5)
    writeI32 oprot (fromEnum _v)
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Multiget_slice_args_fields iprot rec = do
  (_,_t131,_id132) <- readFieldBegin iprot
  if _t131 == T_STOP then return rec else
    case _id132 of 
      1 -> if _t131 == T_STRING then do
        s <- readString iprot
        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_keyspace=Just s}
        else do
          skip iprot _t131
          read_Multiget_slice_args_fields iprot rec
      2 -> if _t131 == T_LIST then do
        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype136,_size133) <- readListBegin iprot; f _size133})
        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_keys=Just s}
        else do
          skip iprot _t131
          read_Multiget_slice_args_fields iprot rec
      3 -> if _t131 == T_STRUCT then do
        s <- (read_ColumnParent iprot)
        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_column_parent=Just s}
        else do
          skip iprot _t131
          read_Multiget_slice_args_fields iprot rec
      4 -> if _t131 == T_STRUCT then do
        s <- (read_SlicePredicate iprot)
        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_predicate=Just s}
        else do
          skip iprot _t131
          read_Multiget_slice_args_fields iprot rec
      5 -> if _t131 == T_I32 then do
        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
        read_Multiget_slice_args_fields iprot rec{f_Multiget_slice_args_consistency_level=Just s}
        else do
          skip iprot _t131
          read_Multiget_slice_args_fields iprot rec
      _ -> do
        skip iprot _t131
        readFieldEnd iprot
        read_Multiget_slice_args_fields iprot rec
read_Multiget_slice_args iprot = do
  readStructBegin iprot
  rec <- read_Multiget_slice_args_fields iprot (Multiget_slice_args{f_Multiget_slice_args_keyspace=Nothing,f_Multiget_slice_args_keys=Nothing,f_Multiget_slice_args_column_parent=Nothing,f_Multiget_slice_args_predicate=Nothing,f_Multiget_slice_args_consistency_level=Nothing})
  readStructEnd iprot
  return rec
data Multiget_slice_result = Multiget_slice_result{f_Multiget_slice_result_success :: Maybe (Map.Map String [ColumnOrSuperColumn]),f_Multiget_slice_result_ire :: Maybe InvalidRequestException,f_Multiget_slice_result_ue :: Maybe UnavailableException,f_Multiget_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
write_Multiget_slice_result oprot rec = do
  writeStructBegin oprot "Multiget_slice_result"
  case f_Multiget_slice_result_success rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("success",T_MAP,0)
    (let {f [] = return (); f ((_kiter140,_viter141):t) = do {do {writeString oprot _kiter140;(let {f [] = return (); f (_viter142:t) = do {write_ColumnOrSuperColumn oprot _viter142;f t}} in do {writeListBegin oprot (T_STRUCT,length _viter141); f _viter141;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
    writeFieldEnd oprot}
  case f_Multiget_slice_result_ire rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ire",T_STRUCT,1)
    write_InvalidRequestException oprot _v
    writeFieldEnd oprot}
  case f_Multiget_slice_result_ue rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ue",T_STRUCT,2)
    write_UnavailableException oprot _v
    writeFieldEnd oprot}
  case f_Multiget_slice_result_te rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("te",T_STRUCT,3)
    write_TimedOutException oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Multiget_slice_result_fields iprot rec = do
  (_,_t144,_id145) <- readFieldBegin iprot
  if _t144 == T_STOP then return rec else
    case _id145 of 
      0 -> if _t144 == T_MAP then do
        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype154,_size151) <- readListBegin iprot; f _size151});r <- f (n-1); return $ (k,v):r}} in do {(_ktype147,_vtype148,_size146) <- readMapBegin iprot; l <- f _size146; return $ Map.fromList l})
        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_success=Just s}
        else do
          skip iprot _t144
          read_Multiget_slice_result_fields iprot rec
      1 -> if _t144 == T_STRUCT then do
        s <- (read_InvalidRequestException iprot)
        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_ire=Just s}
        else do
          skip iprot _t144
          read_Multiget_slice_result_fields iprot rec
      2 -> if _t144 == T_STRUCT then do
        s <- (read_UnavailableException iprot)
        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_ue=Just s}
        else do
          skip iprot _t144
          read_Multiget_slice_result_fields iprot rec
      3 -> if _t144 == T_STRUCT then do
        s <- (read_TimedOutException iprot)
        read_Multiget_slice_result_fields iprot rec{f_Multiget_slice_result_te=Just s}
        else do
          skip iprot _t144
          read_Multiget_slice_result_fields iprot rec
      _ -> do
        skip iprot _t144
        readFieldEnd iprot
        read_Multiget_slice_result_fields iprot rec
read_Multiget_slice_result iprot = do
  readStructBegin iprot
  rec <- read_Multiget_slice_result_fields iprot (Multiget_slice_result{f_Multiget_slice_result_success=Nothing,f_Multiget_slice_result_ire=Nothing,f_Multiget_slice_result_ue=Nothing,f_Multiget_slice_result_te=Nothing})
  readStructEnd iprot
  return rec
data Get_count_args = Get_count_args{f_Get_count_args_keyspace :: Maybe String,f_Get_count_args_key :: Maybe String,f_Get_count_args_column_parent :: Maybe ColumnParent,f_Get_count_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
write_Get_count_args oprot rec = do
  writeStructBegin oprot "Get_count_args"
  case f_Get_count_args_keyspace rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("keyspace",T_STRING,1)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Get_count_args_key rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("key",T_STRING,2)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Get_count_args_column_parent rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("column_parent",T_STRUCT,3)
    write_ColumnParent oprot _v
    writeFieldEnd oprot}
  case f_Get_count_args_consistency_level rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("consistency_level",T_I32,4)
    writeI32 oprot (fromEnum _v)
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_count_args_fields iprot rec = do
  (_,_t159,_id160) <- readFieldBegin iprot
  if _t159 == T_STOP then return rec else
    case _id160 of 
      1 -> if _t159 == T_STRING then do
        s <- readString iprot
        read_Get_count_args_fields iprot rec{f_Get_count_args_keyspace=Just s}
        else do
          skip iprot _t159
          read_Get_count_args_fields iprot rec
      2 -> if _t159 == T_STRING then do
        s <- readString iprot
        read_Get_count_args_fields iprot rec{f_Get_count_args_key=Just s}
        else do
          skip iprot _t159
          read_Get_count_args_fields iprot rec
      3 -> if _t159 == T_STRUCT then do
        s <- (read_ColumnParent iprot)
        read_Get_count_args_fields iprot rec{f_Get_count_args_column_parent=Just s}
        else do
          skip iprot _t159
          read_Get_count_args_fields iprot rec
      4 -> if _t159 == T_I32 then do
        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
        read_Get_count_args_fields iprot rec{f_Get_count_args_consistency_level=Just s}
        else do
          skip iprot _t159
          read_Get_count_args_fields iprot rec
      _ -> do
        skip iprot _t159
        readFieldEnd iprot
        read_Get_count_args_fields iprot rec
read_Get_count_args iprot = do
  readStructBegin iprot
  rec <- read_Get_count_args_fields iprot (Get_count_args{f_Get_count_args_keyspace=Nothing,f_Get_count_args_key=Nothing,f_Get_count_args_column_parent=Nothing,f_Get_count_args_consistency_level=Nothing})
  readStructEnd iprot
  return rec
data Get_count_result = Get_count_result{f_Get_count_result_success :: Maybe Int,f_Get_count_result_ire :: Maybe InvalidRequestException,f_Get_count_result_ue :: Maybe UnavailableException,f_Get_count_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
write_Get_count_result oprot rec = do
  writeStructBegin oprot "Get_count_result"
  case f_Get_count_result_success rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("success",T_I32,0)
    writeI32 oprot _v
    writeFieldEnd oprot}
  case f_Get_count_result_ire rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ire",T_STRUCT,1)
    write_InvalidRequestException oprot _v
    writeFieldEnd oprot}
  case f_Get_count_result_ue rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ue",T_STRUCT,2)
    write_UnavailableException oprot _v
    writeFieldEnd oprot}
  case f_Get_count_result_te rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("te",T_STRUCT,3)
    write_TimedOutException oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_count_result_fields iprot rec = do
  (_,_t164,_id165) <- readFieldBegin iprot
  if _t164 == T_STOP then return rec else
    case _id165 of 
      0 -> if _t164 == T_I32 then do
        s <- readI32 iprot
        read_Get_count_result_fields iprot rec{f_Get_count_result_success=Just s}
        else do
          skip iprot _t164
          read_Get_count_result_fields iprot rec
      1 -> if _t164 == T_STRUCT then do
        s <- (read_InvalidRequestException iprot)
        read_Get_count_result_fields iprot rec{f_Get_count_result_ire=Just s}
        else do
          skip iprot _t164
          read_Get_count_result_fields iprot rec
      2 -> if _t164 == T_STRUCT then do
        s <- (read_UnavailableException iprot)
        read_Get_count_result_fields iprot rec{f_Get_count_result_ue=Just s}
        else do
          skip iprot _t164
          read_Get_count_result_fields iprot rec
      3 -> if _t164 == T_STRUCT then do
        s <- (read_TimedOutException iprot)
        read_Get_count_result_fields iprot rec{f_Get_count_result_te=Just s}
        else do
          skip iprot _t164
          read_Get_count_result_fields iprot rec
      _ -> do
        skip iprot _t164
        readFieldEnd iprot
        read_Get_count_result_fields iprot rec
read_Get_count_result iprot = do
  readStructBegin iprot
  rec <- read_Get_count_result_fields iprot (Get_count_result{f_Get_count_result_success=Nothing,f_Get_count_result_ire=Nothing,f_Get_count_result_ue=Nothing,f_Get_count_result_te=Nothing})
  readStructEnd iprot
  return rec
data Get_key_range_args = Get_key_range_args{f_Get_key_range_args_keyspace :: Maybe String,f_Get_key_range_args_column_family :: Maybe String,f_Get_key_range_args_start :: Maybe String,f_Get_key_range_args_finish :: Maybe String,f_Get_key_range_args_count :: Maybe Int,f_Get_key_range_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
write_Get_key_range_args oprot rec = do
  writeStructBegin oprot "Get_key_range_args"
  case f_Get_key_range_args_keyspace rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("keyspace",T_STRING,1)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Get_key_range_args_column_family rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("column_family",T_STRING,2)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Get_key_range_args_start rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("start",T_STRING,3)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Get_key_range_args_finish rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("finish",T_STRING,4)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Get_key_range_args_count rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("count",T_I32,5)
    writeI32 oprot _v
    writeFieldEnd oprot}
  case f_Get_key_range_args_consistency_level rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("consistency_level",T_I32,6)
    writeI32 oprot (fromEnum _v)
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_key_range_args_fields iprot rec = do
  (_,_t169,_id170) <- readFieldBegin iprot
  if _t169 == T_STOP then return rec else
    case _id170 of 
      1 -> if _t169 == T_STRING then do
        s <- readString iprot
        read_Get_key_range_args_fields iprot rec{f_Get_key_range_args_keyspace=Just s}
        else do
          skip iprot _t169
          read_Get_key_range_args_fields iprot rec
      2 -> if _t169 == T_STRING then do
        s <- readString iprot
        read_Get_key_range_args_fields iprot rec{f_Get_key_range_args_column_family=Just s}
        else do
          skip iprot _t169
          read_Get_key_range_args_fields iprot rec
      3 -> if _t169 == T_STRING then do
        s <- readString iprot
        read_Get_key_range_args_fields iprot rec{f_Get_key_range_args_start=Just s}
        else do
          skip iprot _t169
          read_Get_key_range_args_fields iprot rec
      4 -> if _t169 == T_STRING then do
        s <- readString iprot
        read_Get_key_range_args_fields iprot rec{f_Get_key_range_args_finish=Just s}
        else do
          skip iprot _t169
          read_Get_key_range_args_fields iprot rec
      5 -> if _t169 == T_I32 then do
        s <- readI32 iprot
        read_Get_key_range_args_fields iprot rec{f_Get_key_range_args_count=Just s}
        else do
          skip iprot _t169
          read_Get_key_range_args_fields iprot rec
      6 -> if _t169 == T_I32 then do
        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
        read_Get_key_range_args_fields iprot rec{f_Get_key_range_args_consistency_level=Just s}
        else do
          skip iprot _t169
          read_Get_key_range_args_fields iprot rec
      _ -> do
        skip iprot _t169
        readFieldEnd iprot
        read_Get_key_range_args_fields iprot rec
read_Get_key_range_args iprot = do
  readStructBegin iprot
  rec <- read_Get_key_range_args_fields iprot (Get_key_range_args{f_Get_key_range_args_keyspace=Nothing,f_Get_key_range_args_column_family=Nothing,f_Get_key_range_args_start=Nothing,f_Get_key_range_args_finish=Nothing,f_Get_key_range_args_count=Nothing,f_Get_key_range_args_consistency_level=Nothing})
  readStructEnd iprot
  return rec
data Get_key_range_result = Get_key_range_result{f_Get_key_range_result_success :: Maybe [String],f_Get_key_range_result_ire :: Maybe InvalidRequestException,f_Get_key_range_result_ue :: Maybe UnavailableException,f_Get_key_range_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
write_Get_key_range_result oprot rec = do
  writeStructBegin oprot "Get_key_range_result"
  case f_Get_key_range_result_success rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("success",T_LIST,0)
    (let {f [] = return (); f (_viter173:t) = do {writeString oprot _viter173;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
    writeFieldEnd oprot}
  case f_Get_key_range_result_ire rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ire",T_STRUCT,1)
    write_InvalidRequestException oprot _v
    writeFieldEnd oprot}
  case f_Get_key_range_result_ue rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ue",T_STRUCT,2)
    write_UnavailableException oprot _v
    writeFieldEnd oprot}
  case f_Get_key_range_result_te rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("te",T_STRUCT,3)
    write_TimedOutException oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_key_range_result_fields iprot rec = do
  (_,_t175,_id176) <- readFieldBegin iprot
  if _t175 == T_STOP then return rec else
    case _id176 of 
      0 -> if _t175 == T_LIST then do
        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype180,_size177) <- readListBegin iprot; f _size177})
        read_Get_key_range_result_fields iprot rec{f_Get_key_range_result_success=Just s}
        else do
          skip iprot _t175
          read_Get_key_range_result_fields iprot rec
      1 -> if _t175 == T_STRUCT then do
        s <- (read_InvalidRequestException iprot)
        read_Get_key_range_result_fields iprot rec{f_Get_key_range_result_ire=Just s}
        else do
          skip iprot _t175
          read_Get_key_range_result_fields iprot rec
      2 -> if _t175 == T_STRUCT then do
        s <- (read_UnavailableException iprot)
        read_Get_key_range_result_fields iprot rec{f_Get_key_range_result_ue=Just s}
        else do
          skip iprot _t175
          read_Get_key_range_result_fields iprot rec
      3 -> if _t175 == T_STRUCT then do
        s <- (read_TimedOutException iprot)
        read_Get_key_range_result_fields iprot rec{f_Get_key_range_result_te=Just s}
        else do
          skip iprot _t175
          read_Get_key_range_result_fields iprot rec
      _ -> do
        skip iprot _t175
        readFieldEnd iprot
        read_Get_key_range_result_fields iprot rec
read_Get_key_range_result iprot = do
  readStructBegin iprot
  rec <- read_Get_key_range_result_fields iprot (Get_key_range_result{f_Get_key_range_result_success=Nothing,f_Get_key_range_result_ire=Nothing,f_Get_key_range_result_ue=Nothing,f_Get_key_range_result_te=Nothing})
  readStructEnd iprot
  return rec
data Get_range_slice_args = Get_range_slice_args{f_Get_range_slice_args_keyspace :: Maybe String,f_Get_range_slice_args_column_parent :: Maybe ColumnParent,f_Get_range_slice_args_predicate :: Maybe SlicePredicate,f_Get_range_slice_args_start_key :: Maybe String,f_Get_range_slice_args_finish_key :: Maybe String,f_Get_range_slice_args_row_count :: Maybe Int,f_Get_range_slice_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
write_Get_range_slice_args oprot rec = do
  writeStructBegin oprot "Get_range_slice_args"
  case f_Get_range_slice_args_keyspace rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("keyspace",T_STRING,1)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Get_range_slice_args_column_parent rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("column_parent",T_STRUCT,2)
    write_ColumnParent oprot _v
    writeFieldEnd oprot}
  case f_Get_range_slice_args_predicate rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("predicate",T_STRUCT,3)
    write_SlicePredicate oprot _v
    writeFieldEnd oprot}
  case f_Get_range_slice_args_start_key rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("start_key",T_STRING,4)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Get_range_slice_args_finish_key rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("finish_key",T_STRING,5)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Get_range_slice_args_row_count rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("row_count",T_I32,6)
    writeI32 oprot _v
    writeFieldEnd oprot}
  case f_Get_range_slice_args_consistency_level rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("consistency_level",T_I32,7)
    writeI32 oprot (fromEnum _v)
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_range_slice_args_fields iprot rec = do
  (_,_t185,_id186) <- readFieldBegin iprot
  if _t185 == T_STOP then return rec else
    case _id186 of 
      1 -> if _t185 == T_STRING then do
        s <- readString iprot
        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_keyspace=Just s}
        else do
          skip iprot _t185
          read_Get_range_slice_args_fields iprot rec
      2 -> if _t185 == T_STRUCT then do
        s <- (read_ColumnParent iprot)
        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_column_parent=Just s}
        else do
          skip iprot _t185
          read_Get_range_slice_args_fields iprot rec
      3 -> if _t185 == T_STRUCT then do
        s <- (read_SlicePredicate iprot)
        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_predicate=Just s}
        else do
          skip iprot _t185
          read_Get_range_slice_args_fields iprot rec
      4 -> if _t185 == T_STRING then do
        s <- readString iprot
        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_start_key=Just s}
        else do
          skip iprot _t185
          read_Get_range_slice_args_fields iprot rec
      5 -> if _t185 == T_STRING then do
        s <- readString iprot
        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_finish_key=Just s}
        else do
          skip iprot _t185
          read_Get_range_slice_args_fields iprot rec
      6 -> if _t185 == T_I32 then do
        s <- readI32 iprot
        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_row_count=Just s}
        else do
          skip iprot _t185
          read_Get_range_slice_args_fields iprot rec
      7 -> if _t185 == T_I32 then do
        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
        read_Get_range_slice_args_fields iprot rec{f_Get_range_slice_args_consistency_level=Just s}
        else do
          skip iprot _t185
          read_Get_range_slice_args_fields iprot rec
      _ -> do
        skip iprot _t185
        readFieldEnd iprot
        read_Get_range_slice_args_fields iprot rec
read_Get_range_slice_args iprot = do
  readStructBegin iprot
  rec <- read_Get_range_slice_args_fields iprot (Get_range_slice_args{f_Get_range_slice_args_keyspace=Nothing,f_Get_range_slice_args_column_parent=Nothing,f_Get_range_slice_args_predicate=Nothing,f_Get_range_slice_args_start_key=Nothing,f_Get_range_slice_args_finish_key=Nothing,f_Get_range_slice_args_row_count=Nothing,f_Get_range_slice_args_consistency_level=Nothing})
  readStructEnd iprot
  return rec
data Get_range_slice_result = Get_range_slice_result{f_Get_range_slice_result_success :: Maybe [KeySlice],f_Get_range_slice_result_ire :: Maybe InvalidRequestException,f_Get_range_slice_result_ue :: Maybe UnavailableException,f_Get_range_slice_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
write_Get_range_slice_result oprot rec = do
  writeStructBegin oprot "Get_range_slice_result"
  case f_Get_range_slice_result_success rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("success",T_LIST,0)
    (let {f [] = return (); f (_viter189:t) = do {write_KeySlice oprot _viter189;f t}} in do {writeListBegin oprot (T_STRUCT,length _v); f _v;writeListEnd oprot})
    writeFieldEnd oprot}
  case f_Get_range_slice_result_ire rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ire",T_STRUCT,1)
    write_InvalidRequestException oprot _v
    writeFieldEnd oprot}
  case f_Get_range_slice_result_ue rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ue",T_STRUCT,2)
    write_UnavailableException oprot _v
    writeFieldEnd oprot}
  case f_Get_range_slice_result_te rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("te",T_STRUCT,3)
    write_TimedOutException oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_range_slice_result_fields iprot rec = do
  (_,_t191,_id192) <- readFieldBegin iprot
  if _t191 == T_STOP then return rec else
    case _id192 of 
      0 -> if _t191 == T_LIST then do
        s <- (let {f 0 = return []; f n = do {v <- (read_KeySlice iprot);r <- f (n-1); return $ v:r}} in do {(_etype196,_size193) <- readListBegin iprot; f _size193})
        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_success=Just s}
        else do
          skip iprot _t191
          read_Get_range_slice_result_fields iprot rec
      1 -> if _t191 == T_STRUCT then do
        s <- (read_InvalidRequestException iprot)
        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_ire=Just s}
        else do
          skip iprot _t191
          read_Get_range_slice_result_fields iprot rec
      2 -> if _t191 == T_STRUCT then do
        s <- (read_UnavailableException iprot)
        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_ue=Just s}
        else do
          skip iprot _t191
          read_Get_range_slice_result_fields iprot rec
      3 -> if _t191 == T_STRUCT then do
        s <- (read_TimedOutException iprot)
        read_Get_range_slice_result_fields iprot rec{f_Get_range_slice_result_te=Just s}
        else do
          skip iprot _t191
          read_Get_range_slice_result_fields iprot rec
      _ -> do
        skip iprot _t191
        readFieldEnd iprot
        read_Get_range_slice_result_fields iprot rec
read_Get_range_slice_result iprot = do
  readStructBegin iprot
  rec <- read_Get_range_slice_result_fields iprot (Get_range_slice_result{f_Get_range_slice_result_success=Nothing,f_Get_range_slice_result_ire=Nothing,f_Get_range_slice_result_ue=Nothing,f_Get_range_slice_result_te=Nothing})
  readStructEnd iprot
  return rec
data Insert_args = Insert_args{f_Insert_args_keyspace :: Maybe String,f_Insert_args_key :: Maybe String,f_Insert_args_column_path :: Maybe ColumnPath,f_Insert_args_value :: Maybe String,f_Insert_args_timestamp :: Maybe Int64,f_Insert_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
write_Insert_args oprot rec = do
  writeStructBegin oprot "Insert_args"
  case f_Insert_args_keyspace rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("keyspace",T_STRING,1)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Insert_args_key rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("key",T_STRING,2)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Insert_args_column_path rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("column_path",T_STRUCT,3)
    write_ColumnPath oprot _v
    writeFieldEnd oprot}
  case f_Insert_args_value rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("value",T_STRING,4)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Insert_args_timestamp rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("timestamp",T_I64,5)
    writeI64 oprot _v
    writeFieldEnd oprot}
  case f_Insert_args_consistency_level rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("consistency_level",T_I32,6)
    writeI32 oprot (fromEnum _v)
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Insert_args_fields iprot rec = do
  (_,_t201,_id202) <- readFieldBegin iprot
  if _t201 == T_STOP then return rec else
    case _id202 of 
      1 -> if _t201 == T_STRING then do
        s <- readString iprot
        read_Insert_args_fields iprot rec{f_Insert_args_keyspace=Just s}
        else do
          skip iprot _t201
          read_Insert_args_fields iprot rec
      2 -> if _t201 == T_STRING then do
        s <- readString iprot
        read_Insert_args_fields iprot rec{f_Insert_args_key=Just s}
        else do
          skip iprot _t201
          read_Insert_args_fields iprot rec
      3 -> if _t201 == T_STRUCT then do
        s <- (read_ColumnPath iprot)
        read_Insert_args_fields iprot rec{f_Insert_args_column_path=Just s}
        else do
          skip iprot _t201
          read_Insert_args_fields iprot rec
      4 -> if _t201 == T_STRING then do
        s <- readString iprot
        read_Insert_args_fields iprot rec{f_Insert_args_value=Just s}
        else do
          skip iprot _t201
          read_Insert_args_fields iprot rec
      5 -> if _t201 == T_I64 then do
        s <- readI64 iprot
        read_Insert_args_fields iprot rec{f_Insert_args_timestamp=Just s}
        else do
          skip iprot _t201
          read_Insert_args_fields iprot rec
      6 -> if _t201 == T_I32 then do
        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
        read_Insert_args_fields iprot rec{f_Insert_args_consistency_level=Just s}
        else do
          skip iprot _t201
          read_Insert_args_fields iprot rec
      _ -> do
        skip iprot _t201
        readFieldEnd iprot
        read_Insert_args_fields iprot rec
read_Insert_args iprot = do
  readStructBegin iprot
  rec <- read_Insert_args_fields iprot (Insert_args{f_Insert_args_keyspace=Nothing,f_Insert_args_key=Nothing,f_Insert_args_column_path=Nothing,f_Insert_args_value=Nothing,f_Insert_args_timestamp=Nothing,f_Insert_args_consistency_level=Nothing})
  readStructEnd iprot
  return rec
data Insert_result = Insert_result{f_Insert_result_ire :: Maybe InvalidRequestException,f_Insert_result_ue :: Maybe UnavailableException,f_Insert_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
write_Insert_result oprot rec = do
  writeStructBegin oprot "Insert_result"
  case f_Insert_result_ire rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ire",T_STRUCT,1)
    write_InvalidRequestException oprot _v
    writeFieldEnd oprot}
  case f_Insert_result_ue rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ue",T_STRUCT,2)
    write_UnavailableException oprot _v
    writeFieldEnd oprot}
  case f_Insert_result_te rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("te",T_STRUCT,3)
    write_TimedOutException oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Insert_result_fields iprot rec = do
  (_,_t206,_id207) <- readFieldBegin iprot
  if _t206 == T_STOP then return rec else
    case _id207 of 
      1 -> if _t206 == T_STRUCT then do
        s <- (read_InvalidRequestException iprot)
        read_Insert_result_fields iprot rec{f_Insert_result_ire=Just s}
        else do
          skip iprot _t206
          read_Insert_result_fields iprot rec
      2 -> if _t206 == T_STRUCT then do
        s <- (read_UnavailableException iprot)
        read_Insert_result_fields iprot rec{f_Insert_result_ue=Just s}
        else do
          skip iprot _t206
          read_Insert_result_fields iprot rec
      3 -> if _t206 == T_STRUCT then do
        s <- (read_TimedOutException iprot)
        read_Insert_result_fields iprot rec{f_Insert_result_te=Just s}
        else do
          skip iprot _t206
          read_Insert_result_fields iprot rec
      _ -> do
        skip iprot _t206
        readFieldEnd iprot
        read_Insert_result_fields iprot rec
read_Insert_result iprot = do
  readStructBegin iprot
  rec <- read_Insert_result_fields iprot (Insert_result{f_Insert_result_ire=Nothing,f_Insert_result_ue=Nothing,f_Insert_result_te=Nothing})
  readStructEnd iprot
  return rec
data Batch_insert_args = Batch_insert_args{f_Batch_insert_args_keyspace :: Maybe String,f_Batch_insert_args_key :: Maybe String,f_Batch_insert_args_cfmap :: Maybe (Map.Map String [ColumnOrSuperColumn]),f_Batch_insert_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
write_Batch_insert_args oprot rec = do
  writeStructBegin oprot "Batch_insert_args"
  case f_Batch_insert_args_keyspace rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("keyspace",T_STRING,1)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Batch_insert_args_key rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("key",T_STRING,2)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Batch_insert_args_cfmap rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("cfmap",T_MAP,3)
    (let {f [] = return (); f ((_kiter210,_viter211):t) = do {do {writeString oprot _kiter210;(let {f [] = return (); f (_viter212:t) = do {write_ColumnOrSuperColumn oprot _viter212;f t}} in do {writeListBegin oprot (T_STRUCT,length _viter211); f _viter211;writeListEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_LIST,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
    writeFieldEnd oprot}
  case f_Batch_insert_args_consistency_level rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("consistency_level",T_I32,4)
    writeI32 oprot (fromEnum _v)
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Batch_insert_args_fields iprot rec = do
  (_,_t214,_id215) <- readFieldBegin iprot
  if _t214 == T_STOP then return rec else
    case _id215 of 
      1 -> if _t214 == T_STRING then do
        s <- readString iprot
        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_keyspace=Just s}
        else do
          skip iprot _t214
          read_Batch_insert_args_fields iprot rec
      2 -> if _t214 == T_STRING then do
        s <- readString iprot
        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_key=Just s}
        else do
          skip iprot _t214
          read_Batch_insert_args_fields iprot rec
      3 -> if _t214 == T_MAP then do
        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {v <- (read_ColumnOrSuperColumn iprot);r <- f (n-1); return $ v:r}} in do {(_etype224,_size221) <- readListBegin iprot; f _size221});r <- f (n-1); return $ (k,v):r}} in do {(_ktype217,_vtype218,_size216) <- readMapBegin iprot; l <- f _size216; return $ Map.fromList l})
        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_cfmap=Just s}
        else do
          skip iprot _t214
          read_Batch_insert_args_fields iprot rec
      4 -> if _t214 == T_I32 then do
        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
        read_Batch_insert_args_fields iprot rec{f_Batch_insert_args_consistency_level=Just s}
        else do
          skip iprot _t214
          read_Batch_insert_args_fields iprot rec
      _ -> do
        skip iprot _t214
        readFieldEnd iprot
        read_Batch_insert_args_fields iprot rec
read_Batch_insert_args iprot = do
  readStructBegin iprot
  rec <- read_Batch_insert_args_fields iprot (Batch_insert_args{f_Batch_insert_args_keyspace=Nothing,f_Batch_insert_args_key=Nothing,f_Batch_insert_args_cfmap=Nothing,f_Batch_insert_args_consistency_level=Nothing})
  readStructEnd iprot
  return rec
data Batch_insert_result = Batch_insert_result{f_Batch_insert_result_ire :: Maybe InvalidRequestException,f_Batch_insert_result_ue :: Maybe UnavailableException,f_Batch_insert_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
write_Batch_insert_result oprot rec = do
  writeStructBegin oprot "Batch_insert_result"
  case f_Batch_insert_result_ire rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ire",T_STRUCT,1)
    write_InvalidRequestException oprot _v
    writeFieldEnd oprot}
  case f_Batch_insert_result_ue rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ue",T_STRUCT,2)
    write_UnavailableException oprot _v
    writeFieldEnd oprot}
  case f_Batch_insert_result_te rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("te",T_STRUCT,3)
    write_TimedOutException oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Batch_insert_result_fields iprot rec = do
  (_,_t229,_id230) <- readFieldBegin iprot
  if _t229 == T_STOP then return rec else
    case _id230 of 
      1 -> if _t229 == T_STRUCT then do
        s <- (read_InvalidRequestException iprot)
        read_Batch_insert_result_fields iprot rec{f_Batch_insert_result_ire=Just s}
        else do
          skip iprot _t229
          read_Batch_insert_result_fields iprot rec
      2 -> if _t229 == T_STRUCT then do
        s <- (read_UnavailableException iprot)
        read_Batch_insert_result_fields iprot rec{f_Batch_insert_result_ue=Just s}
        else do
          skip iprot _t229
          read_Batch_insert_result_fields iprot rec
      3 -> if _t229 == T_STRUCT then do
        s <- (read_TimedOutException iprot)
        read_Batch_insert_result_fields iprot rec{f_Batch_insert_result_te=Just s}
        else do
          skip iprot _t229
          read_Batch_insert_result_fields iprot rec
      _ -> do
        skip iprot _t229
        readFieldEnd iprot
        read_Batch_insert_result_fields iprot rec
read_Batch_insert_result iprot = do
  readStructBegin iprot
  rec <- read_Batch_insert_result_fields iprot (Batch_insert_result{f_Batch_insert_result_ire=Nothing,f_Batch_insert_result_ue=Nothing,f_Batch_insert_result_te=Nothing})
  readStructEnd iprot
  return rec
data Remove_args = Remove_args{f_Remove_args_keyspace :: Maybe String,f_Remove_args_key :: Maybe String,f_Remove_args_column_path :: Maybe ColumnPath,f_Remove_args_timestamp :: Maybe Int64,f_Remove_args_consistency_level :: Maybe ConsistencyLevel} deriving (Show,Eq,Ord,Typeable)
write_Remove_args oprot rec = do
  writeStructBegin oprot "Remove_args"
  case f_Remove_args_keyspace rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("keyspace",T_STRING,1)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Remove_args_key rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("key",T_STRING,2)
    writeString oprot _v
    writeFieldEnd oprot}
  case f_Remove_args_column_path rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("column_path",T_STRUCT,3)
    write_ColumnPath oprot _v
    writeFieldEnd oprot}
  case f_Remove_args_timestamp rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("timestamp",T_I64,4)
    writeI64 oprot _v
    writeFieldEnd oprot}
  case f_Remove_args_consistency_level rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("consistency_level",T_I32,5)
    writeI32 oprot (fromEnum _v)
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Remove_args_fields iprot rec = do
  (_,_t234,_id235) <- readFieldBegin iprot
  if _t234 == T_STOP then return rec else
    case _id235 of 
      1 -> if _t234 == T_STRING then do
        s <- readString iprot
        read_Remove_args_fields iprot rec{f_Remove_args_keyspace=Just s}
        else do
          skip iprot _t234
          read_Remove_args_fields iprot rec
      2 -> if _t234 == T_STRING then do
        s <- readString iprot
        read_Remove_args_fields iprot rec{f_Remove_args_key=Just s}
        else do
          skip iprot _t234
          read_Remove_args_fields iprot rec
      3 -> if _t234 == T_STRUCT then do
        s <- (read_ColumnPath iprot)
        read_Remove_args_fields iprot rec{f_Remove_args_column_path=Just s}
        else do
          skip iprot _t234
          read_Remove_args_fields iprot rec
      4 -> if _t234 == T_I64 then do
        s <- readI64 iprot
        read_Remove_args_fields iprot rec{f_Remove_args_timestamp=Just s}
        else do
          skip iprot _t234
          read_Remove_args_fields iprot rec
      5 -> if _t234 == T_I32 then do
        s <- (do {i <- readI32 iprot; return (toEnum i :: ConsistencyLevel)})
        read_Remove_args_fields iprot rec{f_Remove_args_consistency_level=Just s}
        else do
          skip iprot _t234
          read_Remove_args_fields iprot rec
      _ -> do
        skip iprot _t234
        readFieldEnd iprot
        read_Remove_args_fields iprot rec
read_Remove_args iprot = do
  readStructBegin iprot
  rec <- read_Remove_args_fields iprot (Remove_args{f_Remove_args_keyspace=Nothing,f_Remove_args_key=Nothing,f_Remove_args_column_path=Nothing,f_Remove_args_timestamp=Nothing,f_Remove_args_consistency_level=Nothing})
  readStructEnd iprot
  return rec
data Remove_result = Remove_result{f_Remove_result_ire :: Maybe InvalidRequestException,f_Remove_result_ue :: Maybe UnavailableException,f_Remove_result_te :: Maybe TimedOutException} deriving (Show,Eq,Ord,Typeable)
write_Remove_result oprot rec = do
  writeStructBegin oprot "Remove_result"
  case f_Remove_result_ire rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ire",T_STRUCT,1)
    write_InvalidRequestException oprot _v
    writeFieldEnd oprot}
  case f_Remove_result_ue rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("ue",T_STRUCT,2)
    write_UnavailableException oprot _v
    writeFieldEnd oprot}
  case f_Remove_result_te rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("te",T_STRUCT,3)
    write_TimedOutException oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Remove_result_fields iprot rec = do
  (_,_t239,_id240) <- readFieldBegin iprot
  if _t239 == T_STOP then return rec else
    case _id240 of 
      1 -> if _t239 == T_STRUCT then do
        s <- (read_InvalidRequestException iprot)
        read_Remove_result_fields iprot rec{f_Remove_result_ire=Just s}
        else do
          skip iprot _t239
          read_Remove_result_fields iprot rec
      2 -> if _t239 == T_STRUCT then do
        s <- (read_UnavailableException iprot)
        read_Remove_result_fields iprot rec{f_Remove_result_ue=Just s}
        else do
          skip iprot _t239
          read_Remove_result_fields iprot rec
      3 -> if _t239 == T_STRUCT then do
        s <- (read_TimedOutException iprot)
        read_Remove_result_fields iprot rec{f_Remove_result_te=Just s}
        else do
          skip iprot _t239
          read_Remove_result_fields iprot rec
      _ -> do
        skip iprot _t239
        readFieldEnd iprot
        read_Remove_result_fields iprot rec
read_Remove_result iprot = do
  readStructBegin iprot
  rec <- read_Remove_result_fields iprot (Remove_result{f_Remove_result_ire=Nothing,f_Remove_result_ue=Nothing,f_Remove_result_te=Nothing})
  readStructEnd iprot
  return rec
data Get_string_property_args = Get_string_property_args{f_Get_string_property_args_property :: Maybe String} deriving (Show,Eq,Ord,Typeable)
write_Get_string_property_args oprot rec = do
  writeStructBegin oprot "Get_string_property_args"
  case f_Get_string_property_args_property rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("property",T_STRING,1)
    writeString oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_string_property_args_fields iprot rec = do
  (_,_t244,_id245) <- readFieldBegin iprot
  if _t244 == T_STOP then return rec else
    case _id245 of 
      1 -> if _t244 == T_STRING then do
        s <- readString iprot
        read_Get_string_property_args_fields iprot rec{f_Get_string_property_args_property=Just s}
        else do
          skip iprot _t244
          read_Get_string_property_args_fields iprot rec
      _ -> do
        skip iprot _t244
        readFieldEnd iprot
        read_Get_string_property_args_fields iprot rec
read_Get_string_property_args iprot = do
  readStructBegin iprot
  rec <- read_Get_string_property_args_fields iprot (Get_string_property_args{f_Get_string_property_args_property=Nothing})
  readStructEnd iprot
  return rec
data Get_string_property_result = Get_string_property_result{f_Get_string_property_result_success :: Maybe String} deriving (Show,Eq,Ord,Typeable)
write_Get_string_property_result oprot rec = do
  writeStructBegin oprot "Get_string_property_result"
  case f_Get_string_property_result_success rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("success",T_STRING,0)
    writeString oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_string_property_result_fields iprot rec = do
  (_,_t249,_id250) <- readFieldBegin iprot
  if _t249 == T_STOP then return rec else
    case _id250 of 
      0 -> if _t249 == T_STRING then do
        s <- readString iprot
        read_Get_string_property_result_fields iprot rec{f_Get_string_property_result_success=Just s}
        else do
          skip iprot _t249
          read_Get_string_property_result_fields iprot rec
      _ -> do
        skip iprot _t249
        readFieldEnd iprot
        read_Get_string_property_result_fields iprot rec
read_Get_string_property_result iprot = do
  readStructBegin iprot
  rec <- read_Get_string_property_result_fields iprot (Get_string_property_result{f_Get_string_property_result_success=Nothing})
  readStructEnd iprot
  return rec
data Get_string_list_property_args = Get_string_list_property_args{f_Get_string_list_property_args_property :: Maybe String} deriving (Show,Eq,Ord,Typeable)
write_Get_string_list_property_args oprot rec = do
  writeStructBegin oprot "Get_string_list_property_args"
  case f_Get_string_list_property_args_property rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("property",T_STRING,1)
    writeString oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_string_list_property_args_fields iprot rec = do
  (_,_t254,_id255) <- readFieldBegin iprot
  if _t254 == T_STOP then return rec else
    case _id255 of 
      1 -> if _t254 == T_STRING then do
        s <- readString iprot
        read_Get_string_list_property_args_fields iprot rec{f_Get_string_list_property_args_property=Just s}
        else do
          skip iprot _t254
          read_Get_string_list_property_args_fields iprot rec
      _ -> do
        skip iprot _t254
        readFieldEnd iprot
        read_Get_string_list_property_args_fields iprot rec
read_Get_string_list_property_args iprot = do
  readStructBegin iprot
  rec <- read_Get_string_list_property_args_fields iprot (Get_string_list_property_args{f_Get_string_list_property_args_property=Nothing})
  readStructEnd iprot
  return rec
data Get_string_list_property_result = Get_string_list_property_result{f_Get_string_list_property_result_success :: Maybe [String]} deriving (Show,Eq,Ord,Typeable)
write_Get_string_list_property_result oprot rec = do
  writeStructBegin oprot "Get_string_list_property_result"
  case f_Get_string_list_property_result_success rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("success",T_LIST,0)
    (let {f [] = return (); f (_viter258:t) = do {writeString oprot _viter258;f t}} in do {writeListBegin oprot (T_STRING,length _v); f _v;writeListEnd oprot})
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Get_string_list_property_result_fields iprot rec = do
  (_,_t260,_id261) <- readFieldBegin iprot
  if _t260 == T_STOP then return rec else
    case _id261 of 
      0 -> if _t260 == T_LIST then do
        s <- (let {f 0 = return []; f n = do {v <- readString iprot;r <- f (n-1); return $ v:r}} in do {(_etype265,_size262) <- readListBegin iprot; f _size262})
        read_Get_string_list_property_result_fields iprot rec{f_Get_string_list_property_result_success=Just s}
        else do
          skip iprot _t260
          read_Get_string_list_property_result_fields iprot rec
      _ -> do
        skip iprot _t260
        readFieldEnd iprot
        read_Get_string_list_property_result_fields iprot rec
read_Get_string_list_property_result iprot = do
  readStructBegin iprot
  rec <- read_Get_string_list_property_result_fields iprot (Get_string_list_property_result{f_Get_string_list_property_result_success=Nothing})
  readStructEnd iprot
  return rec
data Describe_keyspace_args = Describe_keyspace_args{f_Describe_keyspace_args_keyspace :: Maybe String} deriving (Show,Eq,Ord,Typeable)
write_Describe_keyspace_args oprot rec = do
  writeStructBegin oprot "Describe_keyspace_args"
  case f_Describe_keyspace_args_keyspace rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("keyspace",T_STRING,1)
    writeString oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Describe_keyspace_args_fields iprot rec = do
  (_,_t270,_id271) <- readFieldBegin iprot
  if _t270 == T_STOP then return rec else
    case _id271 of 
      1 -> if _t270 == T_STRING then do
        s <- readString iprot
        read_Describe_keyspace_args_fields iprot rec{f_Describe_keyspace_args_keyspace=Just s}
        else do
          skip iprot _t270
          read_Describe_keyspace_args_fields iprot rec
      _ -> do
        skip iprot _t270
        readFieldEnd iprot
        read_Describe_keyspace_args_fields iprot rec
read_Describe_keyspace_args iprot = do
  readStructBegin iprot
  rec <- read_Describe_keyspace_args_fields iprot (Describe_keyspace_args{f_Describe_keyspace_args_keyspace=Nothing})
  readStructEnd iprot
  return rec
data Describe_keyspace_result = Describe_keyspace_result{f_Describe_keyspace_result_success :: Maybe (Map.Map String (Map.Map String String)),f_Describe_keyspace_result_nfe :: Maybe NotFoundException} deriving (Show,Eq,Ord,Typeable)
write_Describe_keyspace_result oprot rec = do
  writeStructBegin oprot "Describe_keyspace_result"
  case f_Describe_keyspace_result_success rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("success",T_MAP,0)
    (let {f [] = return (); f ((_kiter274,_viter275):t) = do {do {writeString oprot _kiter274;(let {f [] = return (); f ((_kiter276,_viter277):t) = do {do {writeString oprot _kiter276;writeString oprot _viter277};f t}} in do {writeMapBegin oprot (T_STRING,T_STRING,Map.size _viter275); f (Map.toList _viter275);writeMapEnd oprot})};f t}} in do {writeMapBegin oprot (T_STRING,T_MAP,Map.size _v); f (Map.toList _v);writeMapEnd oprot})
    writeFieldEnd oprot}
  case f_Describe_keyspace_result_nfe rec of {Nothing -> return (); Just _v -> do
    writeFieldBegin oprot ("nfe",T_STRUCT,1)
    write_NotFoundException oprot _v
    writeFieldEnd oprot}
  writeFieldStop oprot
  writeStructEnd oprot
read_Describe_keyspace_result_fields iprot rec = do
  (_,_t279,_id280) <- readFieldBegin iprot
  if _t279 == T_STOP then return rec else
    case _id280 of 
      0 -> if _t279 == T_MAP then do
        s <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- (let {f 0 = return []; f n = do {k <- readString iprot; v <- readString iprot;r <- f (n-1); return $ (k,v):r}} in do {(_ktype287,_vtype288,_size286) <- readMapBegin iprot; l <- f _size286; return $ Map.fromList l});r <- f (n-1); return $ (k,v):r}} in do {(_ktype282,_vtype283,_size281) <- readMapBegin iprot; l <- f _size281; return $ Map.fromList l})
        read_Describe_keyspace_result_fields iprot rec{f_Describe_keyspace_result_success=Just s}
        else do
          skip iprot _t279
          read_Describe_keyspace_result_fields iprot rec
      1 -> if _t279 == T_STRUCT then do
        s <- (read_NotFoundException iprot)
        read_Describe_keyspace_result_fields iprot rec{f_Describe_keyspace_result_nfe=Just s}
        else do
          skip iprot _t279
          read_Describe_keyspace_result_fields iprot rec
      _ -> do
        skip iprot _t279
        readFieldEnd iprot
        read_Describe_keyspace_result_fields iprot rec
read_Describe_keyspace_result iprot = do
  readStructBegin iprot
  rec <- read_Describe_keyspace_result_fields iprot (Describe_keyspace_result{f_Describe_keyspace_result_success=Nothing,f_Describe_keyspace_result_nfe=Nothing})
  readStructEnd iprot
  return rec
process_get (seqid, iprot, oprot, handler) = do
  args <- read_Get_args iprot
  readMessageEnd iprot
  rs <- return (Get_result Nothing Nothing Nothing Nothing Nothing)
  res <- (Control.Exception.catch
    (Control.Exception.catch
      (Control.Exception.catch
        (Control.Exception.catch
          (do
            res <- Iface.get handler (f_Get_args_keyspace args) (f_Get_args_key args) (f_Get_args_column_path args) (f_Get_args_consistency_level args)
            return rs{f_Get_result_success= Just res})
          (\e  -> 
            return rs{f_Get_result_ire =Just e}))
        (\e  -> 
          return rs{f_Get_result_nfe =Just e}))
      (\e  -> 
        return rs{f_Get_result_ue =Just e}))
    (\e  -> 
      return rs{f_Get_result_te =Just e}))
  writeMessageBegin oprot ("get", M_REPLY, seqid);
  write_Get_result oprot res
  writeMessageEnd oprot
  tFlush (getTransport oprot)
process_get_slice (seqid, iprot, oprot, handler) = do
  args <- read_Get_slice_args iprot
  readMessageEnd iprot
  rs <- return (Get_slice_result Nothing Nothing Nothing Nothing)
  res <- (Control.Exception.catch
    (Control.Exception.catch
      (Control.Exception.catch
        (do
          res <- Iface.get_slice handler (f_Get_slice_args_keyspace args) (f_Get_slice_args_key args) (f_Get_slice_args_column_parent args) (f_Get_slice_args_predicate args) (f_Get_slice_args_consistency_level args)
          return rs{f_Get_slice_result_success= Just res})
        (\e  -> 
          return rs{f_Get_slice_result_ire =Just e}))
      (\e  -> 
        return rs{f_Get_slice_result_ue =Just e}))
    (\e  -> 
      return rs{f_Get_slice_result_te =Just e}))
  writeMessageBegin oprot ("get_slice", M_REPLY, seqid);
  write_Get_slice_result oprot res
  writeMessageEnd oprot
  tFlush (getTransport oprot)
process_multiget (seqid, iprot, oprot, handler) = do
  args <- read_Multiget_args iprot
  readMessageEnd iprot
  rs <- return (Multiget_result Nothing Nothing Nothing Nothing)
  res <- (Control.Exception.catch
    (Control.Exception.catch
      (Control.Exception.catch
        (do
          res <- Iface.multiget handler (f_Multiget_args_keyspace args) (f_Multiget_args_keys args) (f_Multiget_args_column_path args) (f_Multiget_args_consistency_level args)
          return rs{f_Multiget_result_success= Just res})
        (\e  -> 
          return rs{f_Multiget_result_ire =Just e}))
      (\e  -> 
        return rs{f_Multiget_result_ue =Just e}))
    (\e  -> 
      return rs{f_Multiget_result_te =Just e}))
  writeMessageBegin oprot ("multiget", M_REPLY, seqid);
  write_Multiget_result oprot res
  writeMessageEnd oprot
  tFlush (getTransport oprot)
process_multiget_slice (seqid, iprot, oprot, handler) = do
  args <- read_Multiget_slice_args iprot
  readMessageEnd iprot
  rs <- return (Multiget_slice_result Nothing Nothing Nothing Nothing)
  res <- (Control.Exception.catch
    (Control.Exception.catch
      (Control.Exception.catch
        (do
          res <- Iface.multiget_slice handler (f_Multiget_slice_args_keyspace args) (f_Multiget_slice_args_keys args) (f_Multiget_slice_args_column_parent args) (f_Multiget_slice_args_predicate args) (f_Multiget_slice_args_consistency_level args)
          return rs{f_Multiget_slice_result_success= Just res})
        (\e  -> 
          return rs{f_Multiget_slice_result_ire =Just e}))
      (\e  -> 
        return rs{f_Multiget_slice_result_ue =Just e}))
    (\e  -> 
      return rs{f_Multiget_slice_result_te =Just e}))
  writeMessageBegin oprot ("multiget_slice", M_REPLY, seqid);
  write_Multiget_slice_result oprot res
  writeMessageEnd oprot
  tFlush (getTransport oprot)
process_get_count (seqid, iprot, oprot, handler) = do
  args <- read_Get_count_args iprot
  readMessageEnd iprot
  rs <- return (Get_count_result Nothing Nothing Nothing Nothing)
  res <- (Control.Exception.catch
    (Control.Exception.catch
      (Control.Exception.catch
        (do
          res <- Iface.get_count handler (f_Get_count_args_keyspace args) (f_Get_count_args_key args) (f_Get_count_args_column_parent args) (f_Get_count_args_consistency_level args)
          return rs{f_Get_count_result_success= Just res})
        (\e  -> 
          return rs{f_Get_count_result_ire =Just e}))
      (\e  -> 
        return rs{f_Get_count_result_ue =Just e}))
    (\e  -> 
      return rs{f_Get_count_result_te =Just e}))
  writeMessageBegin oprot ("get_count", M_REPLY, seqid);
  write_Get_count_result oprot res
  writeMessageEnd oprot
  tFlush (getTransport oprot)
process_get_key_range (seqid, iprot, oprot, handler) = do
  args <- read_Get_key_range_args iprot
  readMessageEnd iprot
  rs <- return (Get_key_range_result Nothing Nothing Nothing Nothing)
  res <- (Control.Exception.catch
    (Control.Exception.catch
      (Control.Exception.catch
        (do
          res <- Iface.get_key_range handler (f_Get_key_range_args_keyspace args) (f_Get_key_range_args_column_family args) (f_Get_key_range_args_start args) (f_Get_key_range_args_finish args) (f_Get_key_range_args_count args) (f_Get_key_range_args_consistency_level args)
          return rs{f_Get_key_range_result_success= Just res})
        (\e  -> 
          return rs{f_Get_key_range_result_ire =Just e}))
      (\e  -> 
        return rs{f_Get_key_range_result_ue =Just e}))
    (\e  -> 
      return rs{f_Get_key_range_result_te =Just e}))
  writeMessageBegin oprot ("get_key_range", M_REPLY, seqid);
  write_Get_key_range_result oprot res
  writeMessageEnd oprot
  tFlush (getTransport oprot)
process_get_range_slice (seqid, iprot, oprot, handler) = do
  args <- read_Get_range_slice_args iprot
  readMessageEnd iprot
  rs <- return (Get_range_slice_result Nothing Nothing Nothing Nothing)
  res <- (Control.Exception.catch
    (Control.Exception.catch
      (Control.Exception.catch
        (do
          res <- Iface.get_range_slice handler (f_Get_range_slice_args_keyspace args) (f_Get_range_slice_args_column_parent args) (f_Get_range_slice_args_predicate args) (f_Get_range_slice_args_start_key args) (f_Get_range_slice_args_finish_key args) (f_Get_range_slice_args_row_count args) (f_Get_range_slice_args_consistency_level args)
          return rs{f_Get_range_slice_result_success= Just res})
        (\e  -> 
          return rs{f_Get_range_slice_result_ire =Just e}))
      (\e  -> 
        return rs{f_Get_range_slice_result_ue =Just e}))
    (\e  -> 
      return rs{f_Get_range_slice_result_te =Just e}))
  writeMessageBegin oprot ("get_range_slice", M_REPLY, seqid);
  write_Get_range_slice_result oprot res
  writeMessageEnd oprot
  tFlush (getTransport oprot)
process_insert (seqid, iprot, oprot, handler) = do
  args <- read_Insert_args iprot
  readMessageEnd iprot
  rs <- return (Insert_result Nothing Nothing Nothing)
  res <- (Control.Exception.catch
    (Control.Exception.catch
      (Control.Exception.catch
        (do
          Iface.insert handler (f_Insert_args_keyspace args) (f_Insert_args_key args) (f_Insert_args_column_path args) (f_Insert_args_value args) (f_Insert_args_timestamp args) (f_Insert_args_consistency_level args)
          return rs)
        (\e  -> 
          return rs{f_Insert_result_ire =Just e}))
      (\e  -> 
        return rs{f_Insert_result_ue =Just e}))
    (\e  -> 
      return rs{f_Insert_result_te =Just e}))
  writeMessageBegin oprot ("insert", M_REPLY, seqid);
  write_Insert_result oprot res
  writeMessageEnd oprot
  tFlush (getTransport oprot)
process_batch_insert (seqid, iprot, oprot, handler) = do
  args <- read_Batch_insert_args iprot
  readMessageEnd iprot
  rs <- return (Batch_insert_result Nothing Nothing Nothing)
  res <- (Control.Exception.catch
    (Control.Exception.catch
      (Control.Exception.catch
        (do
          Iface.batch_insert handler (f_Batch_insert_args_keyspace args) (f_Batch_insert_args_key args) (f_Batch_insert_args_cfmap args) (f_Batch_insert_args_consistency_level args)
          return rs)
        (\e  -> 
          return rs{f_Batch_insert_result_ire =Just e}))
      (\e  -> 
        return rs{f_Batch_insert_result_ue =Just e}))
    (\e  -> 
      return rs{f_Batch_insert_result_te =Just e}))
  writeMessageBegin oprot ("batch_insert", M_REPLY, seqid);
  write_Batch_insert_result oprot res
  writeMessageEnd oprot
  tFlush (getTransport oprot)
process_remove (seqid, iprot, oprot, handler) = do
  args <- read_Remove_args iprot
  readMessageEnd iprot
  rs <- return (Remove_result Nothing Nothing Nothing)
  res <- (Control.Exception.catch
    (Control.Exception.catch
      (Control.Exception.catch
        (do
          Iface.remove handler (f_Remove_args_keyspace args) (f_Remove_args_key args) (f_Remove_args_column_path args) (f_Remove_args_timestamp args) (f_Remove_args_consistency_level args)
          return rs)
        (\e  -> 
          return rs{f_Remove_result_ire =Just e}))
      (\e  -> 
        return rs{f_Remove_result_ue =Just e}))
    (\e  -> 
      return rs{f_Remove_result_te =Just e}))
  writeMessageBegin oprot ("remove", M_REPLY, seqid);
  write_Remove_result oprot res
  writeMessageEnd oprot
  tFlush (getTransport oprot)
process_get_string_property (seqid, iprot, oprot, handler) = do
  args <- read_Get_string_property_args iprot
  readMessageEnd iprot
  rs <- return (Get_string_property_result Nothing)
  res <- (do
    res <- Iface.get_string_property handler (f_Get_string_property_args_property args)
    return rs{f_Get_string_property_result_success= Just res})
  writeMessageBegin oprot ("get_string_property", M_REPLY, seqid);
  write_Get_string_property_result oprot res
  writeMessageEnd oprot
  tFlush (getTransport oprot)
process_get_string_list_property (seqid, iprot, oprot, handler) = do
  args <- read_Get_string_list_property_args iprot
  readMessageEnd iprot
  rs <- return (Get_string_list_property_result Nothing)
  res <- (do
    res <- Iface.get_string_list_property handler (f_Get_string_list_property_args_property args)
    return rs{f_Get_string_list_property_result_success= Just res})
  writeMessageBegin oprot ("get_string_list_property", M_REPLY, seqid);
  write_Get_string_list_property_result oprot res
  writeMessageEnd oprot
  tFlush (getTransport oprot)
process_describe_keyspace (seqid, iprot, oprot, handler) = do
  args <- read_Describe_keyspace_args iprot
  readMessageEnd iprot
  rs <- return (Describe_keyspace_result Nothing Nothing)
  res <- (Control.Exception.catch
    (do
      res <- Iface.describe_keyspace handler (f_Describe_keyspace_args_keyspace args)
      return rs{f_Describe_keyspace_result_success= Just res})
    (\e  -> 
      return rs{f_Describe_keyspace_result_nfe =Just e}))
  writeMessageBegin oprot ("describe_keyspace", M_REPLY, seqid);
  write_Describe_keyspace_result oprot res
  writeMessageEnd oprot
  tFlush (getTransport oprot)
proc handler (iprot,oprot) (name,typ,seqid) = case name of
  "get" -> process_get (seqid,iprot,oprot,handler)
  "get_slice" -> process_get_slice (seqid,iprot,oprot,handler)
  "multiget" -> process_multiget (seqid,iprot,oprot,handler)
  "multiget_slice" -> process_multiget_slice (seqid,iprot,oprot,handler)
  "get_count" -> process_get_count (seqid,iprot,oprot,handler)
  "get_key_range" -> process_get_key_range (seqid,iprot,oprot,handler)
  "get_range_slice" -> process_get_range_slice (seqid,iprot,oprot,handler)
  "insert" -> process_insert (seqid,iprot,oprot,handler)
  "batch_insert" -> process_batch_insert (seqid,iprot,oprot,handler)
  "remove" -> process_remove (seqid,iprot,oprot,handler)
  "get_string_property" -> process_get_string_property (seqid,iprot,oprot,handler)
  "get_string_list_property" -> process_get_string_list_property (seqid,iprot,oprot,handler)
  "describe_keyspace" -> process_describe_keyspace (seqid,iprot,oprot,handler)
  _ -> do
    skip iprot T_STRUCT
    readMessageEnd iprot
    writeMessageBegin oprot (name,M_EXCEPTION,seqid)
    writeAppExn oprot (AppExn AE_UNKNOWN_METHOD ("Unknown function " ++ name))
    writeMessageEnd oprot
    tFlush (getTransport oprot)
process handler (iprot, oprot) = do
  (name, typ, seqid) <- readMessageBegin iprot
  proc handler (iprot,oprot) (name,typ,seqid)
  return True