aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/UUID.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Pandoc/UUID.hs')
-rw-r--r--src/Text/Pandoc/UUID.hs78
1 files changed, 0 insertions, 78 deletions
diff --git a/src/Text/Pandoc/UUID.hs b/src/Text/Pandoc/UUID.hs
deleted file mode 100644
index 8de102742..000000000
--- a/src/Text/Pandoc/UUID.hs
+++ /dev/null
@@ -1,78 +0,0 @@
-{-
-Copyright (C) 2010-2016 John MacFarlane <jgm@berkeley.edu>
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--}
-
-{- |
- Module : Text.Pandoc.UUID
- Copyright : Copyright (C) 2010-2016 John MacFarlane
- License : GNU GPL, version 2 or above
-
- Maintainer : John MacFarlane <jgm@berkeley.edu>
- Stability : alpha
- Portability : portable
-
-UUID generation using Version 4 (random method) described
-in RFC4122. See http://tools.ietf.org/html/rfc4122
--}
-
-module Text.Pandoc.UUID ( UUID(..), getRandomUUID, getUUID ) where
-
-import Text.Printf ( printf )
-import System.Random ( RandomGen, randoms, getStdGen )
-import Data.Word
-import Data.Bits ( setBit, clearBit )
-
-data UUID = UUID Word8 Word8 Word8 Word8 Word8 Word8 Word8 Word8
- Word8 Word8 Word8 Word8 Word8 Word8 Word8 Word8
-
-instance Show UUID where
- show (UUID a b c d e f g h i j k l m n o p) =
- "urn:uuid:" ++
- printf "%02x" a ++
- printf "%02x" b ++
- printf "%02x" c ++
- printf "%02x" d ++
- "-" ++
- printf "%02x" e ++
- printf "%02x" f ++
- "-" ++
- printf "%02x" g ++
- printf "%02x" h ++
- "-" ++
- printf "%02x" i ++
- printf "%02x" j ++
- "-" ++
- printf "%02x" k ++
- printf "%02x" l ++
- printf "%02x" m ++
- printf "%02x" n ++
- printf "%02x" o ++
- printf "%02x" p
-
-getUUID :: RandomGen g => g -> UUID
-getUUID gen =
- let [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p] = take 16 $ randoms gen :: [Word8]
- -- set variant
- i' = i `setBit` 7 `clearBit` 6
- -- set version (0100 for random)
- g' = g `clearBit` 7 `setBit` 6 `clearBit` 5 `clearBit` 4
- in
- UUID a b c d e f g' h i' j k l m n o p
-
-getRandomUUID :: IO UUID
-getRandomUUID = getUUID <$> getStdGen
-