{-# LINE 1 "src/Network/Security/GssTypes.hsc" #-}
{-# OPTIONS_HADDOCK hide #-}
{-# LINE 2 "src/Network/Security/GssTypes.hsc" #-}
{-# LANGUAGE CPP         #-}

-- | Implementation of FFI to gss_buffer_desc structure
module Network.Security.GssTypes where

import           Foreign
import           Foreign.C.String


{-# LINE 11 "src/Network/Security/GssTypes.hsc" #-}

{-# LINE 12 "src/Network/Security/GssTypes.hsc" #-}

data BufferDesc = BufferDesc Int CString

instance Storable BufferDesc where
  sizeOf _ = (16)
{-# LINE 17 "src/Network/Security/GssTypes.hsc" #-}
  alignment _ = alignment (undefined :: Ptr ())
  poke p (BufferDesc len val) = do
      (\hsc_ptr -> pokeByteOff hsc_ptr 0) p len
{-# LINE 20 "src/Network/Security/GssTypes.hsc" #-}
      (\hsc_ptr -> pokeByteOff hsc_ptr 8) p val
{-# LINE 21 "src/Network/Security/GssTypes.hsc" #-}
  peek p = BufferDesc <$> (\hsc_ptr -> peekByteOff hsc_ptr 0) p
{-# LINE 22 "src/Network/Security/GssTypes.hsc" #-}
                      <*> (\hsc_ptr -> peekByteOff hsc_ptr 8) p
{-# LINE 23 "src/Network/Security/GssTypes.hsc" #-}