packages feed

myo-0.1.0.0: src/Myo/Foreign/Locking.hsc

module Myo.Foreign.Locking where

import Foreign.Ptr
import Foreign.Storable

#include "libmyo.h"

data LockingPolicy = None | Standard
  deriving (Show, Eq, Ord, Bounded, Enum)

instance Storable LockingPolicy where
  sizeOf _ = (#size libmyo_locking_policy_t)
  alignment _ = alignment (undefined :: Ptr LockingPolicy)
  peek ptr = do
    v <- peekByteOff ptr 0
    return $ toEnum v
  poke p v = let e = fromEnum v in pokeByteOff p e e