{-# LINE 1 "src/Posix/MessageQueue/Types.hsc" #-}



module Posix.MessageQueue.Types
  ( OpenMode(..)
  , OpenFlags(..)
    -- * Open Flags
  , nonblocking
  ) where

import Data.Bits ((.|.))
import Foreign.C.Types (CInt(..))

newtype OpenMode = OpenMode CInt

newtype OpenFlags = OpenFlags CInt

instance Semigroup OpenFlags where
  OpenFlags CInt
x <> :: OpenFlags -> OpenFlags -> OpenFlags
<> OpenFlags CInt
y = CInt -> OpenFlags
OpenFlags (CInt
x CInt -> CInt -> CInt
forall a. Bits a => a -> a -> a
.|. CInt
y)
instance Monoid OpenFlags where mempty :: OpenFlags
mempty = CInt -> OpenFlags
OpenFlags CInt
0

-- | The @O_NONBLOCK@ open flag.
nonblocking :: OpenFlags
nonblocking :: OpenFlags
nonblocking = CInt -> OpenFlags
OpenFlags CInt
2048
{-# LINE 25 "src/Posix/MessageQueue/Types.hsc" #-}