{-# language BangPatterns #-}
{-# language DataKinds #-}
{-# language MagicHash #-}
module Socket.Stream.Uninterruptible.MutableBytes
( send
, receiveExactly
, receiveOnce
, receiveBetween
) where
import Data.Bytes.Types (MutableBytes)
import GHC.Exts (RealWorld,proxy#)
import Socket.Stream (Connection,ReceiveException,SendException)
import Socket (Interruptibility(Uninterruptible))
import qualified Socket.Stream.Uninterruptible.MutableBytes.Send as Send
import qualified Socket.Stream.Uninterruptible.MutableBytes.Receive as Receive
send ::
Connection
-> MutableBytes RealWorld
-> IO (Either (SendException 'Uninterruptible) ())
{-# inline send #-}
send = Send.send proxy#
receiveExactly ::
Connection
-> MutableBytes RealWorld
-> IO (Either (ReceiveException 'Uninterruptible) ())
{-# inline receiveExactly #-}
receiveExactly = Receive.receiveExactly proxy#
receiveOnce ::
Connection
-> MutableBytes RealWorld
-> IO (Either (ReceiveException 'Uninterruptible) Int)
{-# inline receiveOnce #-}
receiveOnce = Receive.receiveOnce proxy#
receiveBetween ::
Connection
-> MutableBytes RealWorld
-> Int
-> IO (Either (ReceiveException 'Uninterruptible) Int)
{-# inline receiveBetween #-}
receiveBetween = Receive.receiveBetween proxy#