{-# LINE 1 "FreeType/Core/Layer/Types.hsc" #-}
module FreeType.Core.Layer.Types where

import           FreeType.Core.Types.Types

import           Data.Function ((&))
import           Foreign.Ptr
import           Foreign.Storable




data FT_LayerIterator = FT_LayerIterator
                          { liNum_layers :: FT_UInt
                          , liLayer      :: FT_UInt
                          , liP          :: Ptr FT_Byte
                          }

instance Storable FT_LayerIterator where
  sizeOf _    = (16)
{-# LINE 20 "FreeType/Core/Layer/Types.hsc" #-}
  alignment _ = 8
{-# LINE 21 "FreeType/Core/Layer/Types.hsc" #-}

  peek ptr =
    FT_LayerIterator
      <$> (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr
{-# LINE 25 "FreeType/Core/Layer/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 4) ptr
{-# LINE 26 "FreeType/Core/Layer/Types.hsc" #-}
      <*> (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr
{-# LINE 27 "FreeType/Core/Layer/Types.hsc" #-}

  poke ptr val = do
    (\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr $ val & liNum_layers
{-# LINE 30 "FreeType/Core/Layer/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 4) ptr $ val & liLayer
{-# LINE 31 "FreeType/Core/Layer/Types.hsc" #-}
    (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr $ val & liP
{-# LINE 32 "FreeType/Core/Layer/Types.hsc" #-}