8000 Moved encoding basics in Store.Encode · postgres-haskell/postgres-wire@598bf0c · GitHub
[go: up one dir, main page]

Skip to content
8000

Commit 598bf0c

Browse files
Moved encoding basics in Store.Encode
1 parent e7b1170 commit 598bf0c

File tree

4 files changed

+17
-16
lines changed

4 files changed

+17
-16
lines changed

postgres-wire.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ library
2626
, Database.PostgreSQL.Protocol.Types
2727
, Database.PostgreSQL.Protocol.Encoders
2828
, Database.PostgreSQL.Protocol.Decoders
29-
, Database.PostgreSQL.Protocol.Store
29+
, Database.PostgreSQL.Protocol.Store.Encode
3030
build-depends: base >= 4.7 && < 5
3131
, bytestring
3232
, socket

src/Database/PostgreSQL/Driver/Connection.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import Crypto.Hash (hash, Digest, MD5)
2222
import Database.PostgreSQL.Protocol.Encoders
2323
import Database.PostgreSQL.Protocol.Decoders
2424
import Database.PostgreSQL.Protocol.Types
25-
import Database.PostgreSQL.Protocol.Store (runEncode)
25+
import Database.PostgreSQL.Protocol.Store.Encode (runEncode)
2626

2727
import Database.PostgreSQL.Driver.Settings
2828
import Database.PostgreSQL.Driver.StatementStorage

src/Database/PostgreSQL/Protocol/Encoders.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import qualified Data.Vector as V
88
import qualified Data.ByteString as B
99

1010
import Database.PostgreSQL.Protocol.Types
11-
import Database.PostgreSQL.Protocol.Store
11+
import Database.PostgreSQL.Protocol.Store.Encode
1212

1313
-- | Protocol Version 3.0, major version in the first word16.
1414
currentVersion :: Int32

src/Database/PostgreSQL/Protocol/Store.hs renamed to src/Database/PostgreSQL/Protocol/Store/Encode.hs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1-
module Database.PostgreSQL.Protocol.Store where
1+
module Database.PostgreSQL.Protocol.Store.Encode where
22

3-
import qualified Data.ByteString as B
4-
import qualified Data.ByteString.Internal as B(toForeignPtr)
5-
import qualified Data.Vector as V
6-
import Data.Store.Core
3+
import Data.Monoid (Monoid(..), (<>))
4+
import Foreign (poke, plusPtr, Ptr)
75
import Data.Int (Int16, Int32)
8-
import Data.Word (Word8)
6+
import Data.Word (Word8, Word16, Word32)
97
import Data.Char (ord)
10-
import Foreign
11-
import Data.Monoid
12-
import Data.Foldable
8+
import Data.Bits (shiftR)
9+
10+
import Data.ByteString (ByteString)
11+
import Data.ByteString.Internal as B(toForeignPtr)
12+
import Data.Store.Core (Poke(..), unsafeEncodeWith, pokeStatePtr,
13+
pokeFromForeignPtr)
1314

1415
data Encode = Encode {-# UNPACK #-} !Int !(Poke ())
1516

@@ -24,7 +25,7 @@ getEncodeLen :: Encode -> Int
2425
getEncodeLen (Encode len _) = len
2526
{-# INLINE getEncodeLen #-}
2627

27-
runEncode :: Encode -> B.ByteString
28+
runEncode :: Encode -> ByteString
2829
runEncode (Encode len f) = unsafeEncodeWith f len
2930
{-# INLINE runEncode #-}
3031

@@ -65,14 +66,14 @@ putInt16BE :: Int16 -> Encode
6566
putInt16BE = putWord16BE . fromIntegral
6667
{-# INLINE putInt16BE #-}
6768

68-
putByteString :: B.ByteString -> Encode
69+
putByteString :: ByteString -> Encode
6970
putByteString bs =
70-
let (ptr, offset, len) = B.toForeignPtr bs
71+
let (ptr, offset, len) = toForeignPtr bs
7172
in Encode len $ pokeFromForeignPtr ptr offset len
7273
{-# INLINE putByteString #-}
7374

7475
-- | C-like string
75-
putPgString :: B.ByteString -> Encode
76+
putPgString :: ByteString -> Encode
7677
putPgString bs = putByteString bs <> putWord8 0
7778
{-# INLINE putPgString #-}
7879

0 commit comments

Comments
 (0)
0