{-# OPTIONS_GHC -optc-DZSTD_STATIC_LINKING_ONLY #-}
{-# LINE 1 "Codec/Compression/Zstd/FFI/Types.hsc" #-}
{-# LANGUAGE ExistentialQuantification #-}
module Codec.Compression.Zstd.FFI.Types
(
Buffer(..)
, In
, Out
, CCtx
, DCtx
, CDict
, DDict
, peekPtr
, pokePtr
, peekSize
, pokeSize
, peekPos
, pokePos
) where
import Foreign.C.Types (CInt(..), CSize(..))
import Foreign.Storable
import GHC.Ptr (Ptr(..))
data CCtx
data DCtx
data CDict
data DDict
data In
data Out
data Buffer io = forall a. Buffer {
()
bufPtr :: {-# UNPACK #-} !(Ptr a)
, forall io. Buffer io -> CSize
bufSize :: {-# UNPACK #-} !CSize
, forall io. Buffer io -> CSize
bufPos :: {-# UNPACK #-} !CSize
}
instance Storable (Buffer io) where
sizeOf :: Buffer io -> Int
sizeOf Buffer io
_ = Int
24
{-# LINE 78 "Codec/Compression/Zstd/FFI/Types.hsc" #-}
alignment _ = alignment (undefined :: CInt)
peek :: Ptr (Buffer io) -> IO (Buffer io)
peek Ptr (Buffer io)
p = do
Ptr Any
ptr <- ((\Ptr (Buffer io)
hsc_ptr -> Ptr (Buffer io) -> Int -> IO (Ptr Any)
forall b. Ptr b -> Int -> IO (Ptr Any)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr (Buffer io)
hsc_ptr Int
0)) Ptr (Buffer io)
p
{-# LINE 82 "Codec/Compression/Zstd/FFI/Types.hsc" #-}
size <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) p
{-# LINE 83 "Codec/Compression/Zstd/FFI/Types.hsc" #-}
pos <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) p
{-# LINE 84 "Codec/Compression/Zstd/FFI/Types.hsc" #-}
return (Buffer ptr size pos)
poke :: Ptr (Buffer io) -> Buffer io -> IO ()
poke Ptr (Buffer io)
p (Buffer Ptr a
ptr CSize
size CSize
pos) = do
((\Ptr (Buffer io)
hsc_ptr -> Ptr (Buffer io) -> Int -> Ptr a -> IO ()
forall b. Ptr b -> Int -> Ptr a -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr (Buffer io)
hsc_ptr Int
0)) Ptr (Buffer io)
p Ptr a
ptr
{-# LINE 88 "Codec/Compression/Zstd/FFI/Types.hsc" #-}
((\hsc_ptr -> pokeByteOff hsc_ptr 8)) p size
{-# LINE 89 "Codec/Compression/Zstd/FFI/Types.hsc" #-}
((\hsc_ptr -> pokeByteOff hsc_ptr 16)) p pos
{-# LINE 90 "Codec/Compression/Zstd/FFI/Types.hsc" #-}
peekPtr :: Ptr (Buffer io) -> IO CSize
peekPtr :: forall io. Ptr (Buffer io) -> IO CSize
peekPtr Ptr (Buffer io)
p = ((\Ptr (Buffer io)
hsc_ptr -> Ptr (Buffer io) -> Int -> IO CSize
forall b. Ptr b -> Int -> IO CSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr (Buffer io)
hsc_ptr Int
0)) Ptr (Buffer io)
p
{-# LINE 94 "Codec/Compression/Zstd/FFI/Types.hsc" #-}
pokePtr :: Ptr (Buffer io) -> Ptr a -> IO ()
pokePtr :: forall io a. Ptr (Buffer io) -> Ptr a -> IO ()
pokePtr Ptr (Buffer io)
dst Ptr a
p = ((\Ptr (Buffer io)
hsc_ptr -> Ptr (Buffer io) -> Int -> Ptr a -> IO ()
forall b. Ptr b -> Int -> Ptr a -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr (Buffer io)
hsc_ptr Int
0)) Ptr (Buffer io)
dst Ptr a
p
{-# LINE 98 "Codec/Compression/Zstd/FFI/Types.hsc" #-}
peekSize :: Ptr (Buffer io) -> IO CSize
peekSize :: forall io. Ptr (Buffer io) -> IO CSize
peekSize Ptr (Buffer io)
p = ((\Ptr (Buffer io)
hsc_ptr -> Ptr (Buffer io) -> Int -> IO CSize
forall b. Ptr b -> Int -> IO CSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr (Buffer io)
hsc_ptr Int
8)) Ptr (Buffer io)
p
{-# LINE 102 "Codec/Compression/Zstd/FFI/Types.hsc" #-}
pokeSize :: Ptr (Buffer io) -> CSize -> IO ()
pokeSize :: forall io. Ptr (Buffer io) -> CSize -> IO ()
pokeSize Ptr (Buffer io)
dst CSize
s = ((\Ptr (Buffer io)
hsc_ptr -> Ptr (Buffer io) -> Int -> CSize -> IO ()
forall b. Ptr b -> Int -> CSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr (Buffer io)
hsc_ptr Int
8)) Ptr (Buffer io)
dst CSize
s
{-# LINE 106 "Codec/Compression/Zstd/FFI/Types.hsc" #-}
peekPos :: Ptr (Buffer io) -> IO CSize
peekPos :: forall io. Ptr (Buffer io) -> IO CSize
peekPos Ptr (Buffer io)
p = ((\Ptr (Buffer io)
hsc_ptr -> Ptr (Buffer io) -> Int -> IO CSize
forall b. Ptr b -> Int -> IO CSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr (Buffer io)
hsc_ptr Int
16)) Ptr (Buffer io)
p
{-# LINE 110 "Codec/Compression/Zstd/FFI/Types.hsc" #-}
pokePos :: Ptr (Buffer io) -> CSize -> IO ()
pokePos :: forall io. Ptr (Buffer io) -> CSize -> IO ()
pokePos Ptr (Buffer io)
dst CSize
s = ((\Ptr (Buffer io)
hsc_ptr -> Ptr (Buffer io) -> Int -> CSize -> IO ()
forall b. Ptr b -> Int -> CSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr (Buffer io)
hsc_ptr Int
16)) Ptr (Buffer io)
dst CSize
s
{-# LINE 114 "Codec/Compression/Zstd/FFI/Types.hsc" #-}