Skip to content

Commit 1202998

Browse files
committed
Give UUID an IsString instance
1 parent d1cedd8 commit 1202998

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

uuid-types/Data/UUID/Types/Internal.hs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ import Data.Data
5656
import Data.Functor ((<$>))
5757
import Data.Hashable
5858
import Data.List (elemIndices)
59+
import Data.Maybe (fromMaybe)
60+
import Data.Semigroup ((<>))
61+
import qualified Data.String as S (IsString (..))
5962
import Foreign.Ptr (Ptr)
6063

6164
import Foreign.Storable
@@ -79,6 +82,10 @@ import System.Random
7982
-- <http://tools.ietf.org/html/rfc4122 RFC 4122>.
8083
data UUID = UUID {-# UNPACK #-} !Word64 {-# UNPACK #-} !Word64
8184
deriving (Eq, Ord, Typeable)
85+
86+
instance S.IsString UUID where
87+
fromString str = fromMaybe (error ("'" <> str <> "' is not a valid UUID")) $ fromString str
88+
8289
{-
8390
Prior to uuid-types-1.0.4:
8491
!Word32 !Word32 !Word32 !Word32

0 commit comments

Comments
 (0)