module System.Posix.IO.Select.FdSet.Unsafe (F.FdSet(), fromList, insert, insertList,
elem, remove, removeList, inList,
empty, unsafeToList) where
import Prelude hiding (elem)
import System.Posix.Types
import qualified System.Posix.IO.Select.FdSet as F
import qualified System.IO.Unsafe as UNSAFE
fromList :: [Fd] -> F.FdSet
fromList = UNSAFE.unsafePerformIO . F.fromList
empty :: F.FdSet
empty = UNSAFE.unsafePerformIO F.empty
insert :: Fd -> F.FdSet -> F.FdSet
insert fd fdset = UNSAFE.unsafePerformIO (F.insert fd fdset)
insertList :: [Fd] -> F.FdSet -> F.FdSet
insertList fds fdset = UNSAFE.unsafePerformIO (F.insertList fds fdset)
elem :: Fd -> F.FdSet -> Bool
elem fd fdset = UNSAFE.unsafePerformIO (F.elem fd fdset)
remove :: Fd -> F.FdSet -> F.FdSet
remove fd fdset = UNSAFE.unsafePerformIO (F.remove fd fdset)
removeList :: [Fd] -> F.FdSet -> F.FdSet
removeList fds fdset = UNSAFE.unsafePerformIO (F.removeList fds fdset)
inList :: [Fd] -> F.FdSet -> [Fd]
inList fds fdset = UNSAFE.unsafePerformIO (F.inList fds fdset)
unsafeToList :: F.FdSet -> [Fd]
unsafeToList fdset = inList [(fromIntegral 0)..(F.bound fdset)] fdset