@@ -20,6 +20,8 @@ module Data.UUID.Types.Internal
20 ,toByteString
20 ,toByteString
21 ,fromString
21 ,fromString
23 ,fromWords
25 ,fromWords
@@ -61,6 +63,8 @@ import qualified Data.ByteString as B
61import qualified Data.ByteString.Internal as BI
63import qualified Data.ByteString.Internal as BI
62import qualified Data.ByteString.Lazy as BL
64import qualified Data.ByteString.Lazy as BL
63import qualified Data.ByteString.Unsafe as BU
65import qualified Data.ByteString.Unsafe as BU
66+import Data.Text (Text)
67+import qualified Data.Text as T
65import Data.UUID.Types.Internal.Builder
69import Data.UUID.Types.Internal.Builder
@@ -307,6 +311,12 @@ toString (UUID w0 w1 w2 w3) = hexw w0 $ hexw' w1 $ hexw' w2 $ hexw w3 ""
307 hexn :: Word32 -> Int -> Char
311 hexn :: Word32 -> Int -> Char
308 hexn w r = intToDigit $ fromIntegral ((w `shiftR` r) .&. 0xf)
312 hexn w r = intToDigit $ fromIntegral ((w `shiftR` r) .&. 0xf)
314+fromText :: Text -> Maybe UUID
315+fromText = fromString . T.unpack
317+toText :: UUID -> Text
318+toText = T.pack . toString
310-- | Convert a UUID into a hyphentated string using lower-case letters, packed
320-- | Convert a UUID into a hyphentated string using lower-case letters, packed
311-- as ASCII bytes into `B.ByteString`.
321-- as ASCII bytes into `B.ByteString`.