module Prolude.Uuid ( Uuid , randomUuid , textToUuid , uuidToText , wordsToUuid ) where import Control.Monad.IO.Class (MonadIO(liftIO)) import qualified Data.Maybe as Maybe import qualified Data.Text as Text import qualified Data.UUID as UUID import qualified Data.UUID.V4 as UUID import qualified Data.Word as Word import qualified System.IO as IO type Uuid = UUID.UUID uuidToText :: Uuid -> Text.Text uuidToText :: Uuid -> Text uuidToText = Uuid -> Text UUID.toText textToUuid :: Text.Text -> Maybe.Maybe Uuid textToUuid :: Text -> Maybe Uuid textToUuid = Text -> Maybe Uuid UUID.fromText wordsToUuid :: Word.Word32 -> Word.Word32 -> Word.Word32 -> Word.Word32 -> Uuid wordsToUuid :: Word32 -> Word32 -> Word32 -> Word32 -> Uuid wordsToUuid = Word32 -> Word32 -> Word32 -> Word32 -> Uuid UUID.fromWords randomUuid :: MonadIO m => m Uuid randomUuid :: m Uuid randomUuid = IO Uuid -> m Uuid forall (m :: * -> *) a. MonadIO m => IO a -> m a liftIO IO Uuid UUID.nextRandom