{-# OPTIONS_HADDOCK hide #-}
module Database.Tds.Primitives.Collation ( Collation32 (..)
, SortId (..)
, Collation (..)
, getCollation
, putCollation
) where
import Data.Word (Word8(..),Word32(..))
import Data.Binary (Put(..),Get(..))
import qualified Data.Binary.Put as Put
import qualified Data.Binary.Get as Get
type Collation32 = Word32
type SortId = Word8
data Collation = Collation !Collation32 !SortId
deriving (Int -> Collation -> ShowS
[Collation] -> ShowS
Collation -> String
(Int -> Collation -> ShowS)
-> (Collation -> String)
-> ([Collation] -> ShowS)
-> Show Collation
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Collation -> ShowS
showsPrec :: Int -> Collation -> ShowS
$cshow :: Collation -> String
show :: Collation -> String
$cshowList :: [Collation] -> ShowS
showList :: [Collation] -> ShowS
Show)
getCollation :: Get Collation
getCollation :: Get Collation
getCollation = do
Collation32
coll <- Get Collation32
Get.getWord32be
SortId
sort <- Get SortId
Get.getWord8
Collation -> Get Collation
forall a. a -> Get a
forall (m :: * -> *) a. Monad m => a -> m a
return (Collation -> Get Collation) -> Collation -> Get Collation
forall a b. (a -> b) -> a -> b
$ Collation32 -> SortId -> Collation
Collation Collation32
coll SortId
sort
putCollation :: Collation -> Put
putCollation :: Collation -> Put
putCollation (Collation Collation32
coll SortId
sort) = do
Collation32 -> Put
Put.putWord32be Collation32
coll
SortId -> Put
Put.putWord8 SortId
sort