mongoDB-1.3.1: Driver (client) for MongoDB, a free, scalable, fast, document DBMS

Safe HaskellNone

Database.MongoDB.Internal.Util

Description

Miscellaneous general functions and Show, Eq, and Ord instances for PortID

Synopsis

Documentation

class (MonadIO m, Applicative m, Functor m) => MonadIO' m

MonadIO with extra Applicative and Functor superclasses

Instances

mergesortM :: Monad m => (a -> a -> m Ordering) -> [a] -> m [a]

A monadic sort implementation derived from the non-monadic one in ghc's Prelude

mergesortM' :: Monad m => (a -> a -> m Ordering) -> [[a]] -> m [a]

merge_pairsM :: Monad m => (a -> a -> m Ordering) -> [[a]] -> m [[a]]

mergeM :: Monad m => (a -> a -> m Ordering) -> [a] -> [a] -> m [a]

wrap :: a -> [a]

shuffle :: [a] -> IO [a]

Randomly shuffle items in list

loop :: (Functor m, Monad m) => m (Maybe a) -> m [a]

Repeatedy execute action, collecting results, until it returns Nothing

untilSuccess :: (MonadError e m, Error e) => (a -> m b) -> [a] -> m b

Apply action to elements one at a time until one succeeds. Throw last error if all fail. Throw strMsg error if list is empty.

untilSuccess' :: MonadError e m => e -> (a -> m b) -> [a] -> m b

Apply action to elements one at a time until one succeeds. Throw last error if all fail. Throw given error if list is empty

whenJust :: Monad m => Maybe a -> (a -> m ()) -> m ()

liftIOE :: MonadIO m => (e -> e') -> ErrorT e IO a -> ErrorT e' m a

lift IOE monad to ErrorT monad over some MonadIO m

runIOE :: ErrorT IOError IO a -> IO a

Run action while catching explicit error and rethrowing in IO monad

updateAssocs :: Eq k => k -> v -> [(k, v)] -> [(k, v)]

Change or insert value of key in association list

bitOr :: (Num a, Bits a) => [a] -> a

bit-or all numbers together

(<.>) :: Text -> Text -> Text

Concat first and second together with period in between. Eg. "hello" <.> "world" = "hello.world"

true1 :: Label -> Document -> Bool

Is field's value a 1 or True (MongoDB use both Int and Bools for truth values). Error if field not in document or field not a Num or Bool.

hGetN :: Handle -> Int -> IO ByteString

Read N bytes from hande, blocking until all N bytes are read. If EOF is reached before N bytes then raise EOF exception.

byteStringHex :: ByteString -> String

Hexadecimal string representation of a byte string. Each byte yields two hexadecimal characters.

byteHex :: Word8 -> String

Two char hexadecimal representation of byte