Copyright | (c) 20082012 Antoine Latter |
---|---|
License | BSD-style |
Maintainer | aslatter@gmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
This library is useful for comparing, parsing and printing Universally Unique Identifiers. See http://en.wikipedia.org/wiki/UUID for the general idea. See http://tools.ietf.org/html/rfc4122 for the specification.
-
Use
nextRandom
to generate secure random UUIDs, and your favorite instance ofRandom
for faster but insecure generation of UUIDs. - We have an implementation of generating a UUID from the hardware MAC address and current system time in Data.UUID.V1 .
- For name-based generation of UUIDs using SHA-1 hashing see Data.UUID.V5 .
Synopsis
- data UUID
- toString :: UUID -> String
- fromString :: String -> Maybe UUID
- toText :: UUID -> Text
- fromText :: Text -> Maybe UUID
- toASCIIBytes :: UUID -> ByteString
- fromASCIIBytes :: ByteString -> Maybe UUID
- toLazyASCIIBytes :: UUID -> ByteString
- fromLazyASCIIBytes :: ByteString -> Maybe UUID
- toByteString :: UUID -> ByteString
- fromByteString :: ByteString -> Maybe UUID
- toWords :: UUID -> ( Word32 , Word32 , Word32 , Word32 )
- fromWords :: Word32 -> Word32 -> Word32 -> Word32 -> UUID
- toWords64 :: UUID -> ( Word64 , Word64 )
- fromWords64 :: Word64 -> Word64 -> UUID
- null :: UUID -> Bool
- nil :: UUID
Documentation
Type representing Universally Unique Identifiers (UUID) as specified in RFC 4122 .
Instances
Eq UUID | |
Data UUID | |
Defined in Data.UUID.Types.Internal gfoldl :: ( forall d b. Data d => c (d -> b) -> d -> c b) -> ( forall g. g -> c g) -> UUID -> c UUID Source # gunfold :: ( forall b r. Data b => c (b -> r) -> c r) -> ( forall r. r -> c r) -> Constr -> c UUID Source # toConstr :: UUID -> Constr Source # dataTypeOf :: UUID -> DataType Source # dataCast1 :: Typeable t => ( forall d. Data d => c (t d)) -> Maybe (c UUID ) Source # dataCast2 :: Typeable t => ( forall d e. ( Data d, Data e) => c (t d e)) -> Maybe (c UUID ) Source # gmapT :: ( forall b. Data b => b -> b) -> UUID -> UUID Source # gmapQl :: (r -> r' -> r) -> r -> ( forall d. Data d => d -> r') -> UUID -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> ( forall d. Data d => d -> r') -> UUID -> r Source # gmapQ :: ( forall d. Data d => d -> u) -> UUID -> [u] Source # gmapQi :: Int -> ( forall d. Data d => d -> u) -> UUID -> u Source # gmapM :: Monad m => ( forall d. Data d => d -> m d) -> UUID -> m UUID Source # gmapMp :: MonadPlus m => ( forall d. Data d => d -> m d) -> UUID -> m UUID Source # gmapMo :: MonadPlus m => ( forall d. Data d => d -> m d) -> UUID -> m UUID Source # |
|
Ord UUID | |
Defined in Data.UUID.Types.Internal |
|
Read UUID | |
Show UUID |
Pretty prints a
|
Storable UUID |
This
|
Defined in Data.UUID.Types.Internal sizeOf :: UUID -> Int Source # alignment :: UUID -> Int Source # peekElemOff :: Ptr UUID -> Int -> IO UUID Source # pokeElemOff :: Ptr UUID -> Int -> UUID -> IO () Source # peekByteOff :: Ptr b -> Int -> IO UUID Source # pokeByteOff :: Ptr b -> Int -> UUID -> IO () Source # |
|
Binary UUID |
This
|
NFData UUID | |
Defined in Data.UUID.Types.Internal |
|
Hashable UUID | |
Random UUID |
This
|
Uniform UUID | |
Defined in Data.UUID.Types.Internal uniformM :: StatefulGen g m => g -> m UUID Source # |
|
Lift UUID | |
toString :: UUID -> String Source #
Convert a UUID into a hypenated string using lower-case letters. Example:
>>>
toString <$> fromString "550e8400-e29b-41d4-a716-446655440000"
Just "550e8400-e29b-41d4-a716-446655440000"
toASCIIBytes :: UUID -> ByteString Source #
Convert a UUID into a hyphentated string using lower-case letters, packed
as ASCII bytes into
ByteString
.
fromASCIIBytes :: ByteString -> Maybe UUID Source #
If the passed in
ByteString
can be parsed as an ASCII representation of
a
UUID
, it will be. The hyphens may not be omitted.
This should be equivalent to
fromString
with
unpack
.
toLazyASCIIBytes :: UUID -> ByteString Source #
Similar to
toASCIIBytes
except we produce a lazy
ByteString
.
fromLazyASCIIBytes :: ByteString -> Maybe UUID Source #
Similar to
fromASCIIBytes
except parses from a lazy
ByteString
.
toByteString :: UUID -> ByteString Source #
Encode a UUID into a
ByteString
in network order.
This uses the same encoding as the
Binary
instance.
fromByteString :: ByteString -> Maybe UUID Source #
Extract a UUID from a
ByteString
in network byte order.
The argument must be 16 bytes long, otherwise
Nothing
is returned.
toWords :: UUID -> ( Word32 , Word32 , Word32 , Word32 ) Source #
Convert a
UUID
into a sequence of
Word32
values.
Useful for when you need to serialize a UUID and
neither
Storable
nor
Binary
are appropriate.
>>>
toWords <$> fromString "550e8400-e29b-41d4-a716-446655440000"
Just (1427014656,3801825748,2803254374,1430519808)
See also
toWords64
.
Since:
uuid-1.2.2
Since: uuid-types-1.0.0
fromWords :: Word32 -> Word32 -> Word32 -> Word32 -> UUID Source #
Create a
UUID
from a sequence of
Word32
. The
inverse of
toWords
. Useful when you need a total
function for constructing
UUID
values.
See also
fromWords64
.
Since:
uuid-1.2.2
Since: uuid-types-1.0.0