uuid-aeson (empty) → 0.1.0.0
raw patch · 6 files changed
+88/−0 lines, 6 filesdep +aesondep +basedep +textsetup-changedbinary-added
Dependencies added: aeson, base, text, uuid
Files
- LICENSE +30/−0
- README.md +11/−0
- Setup.hs +2/−0
- src/Data/UUID/._Aeson.hs binary
- src/Data/UUID/Aeson.hs +21/−0
- uuid-aeson.cabal +24/−0
+ LICENSE view
@@ -0,0 +1,30 @@+Copyright (c) 2013, Kirk Peterson++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++ * Redistributions of source code must retain the above copyright+ notice, this list of conditions and the following disclaimer.++ * Redistributions in binary form must reproduce the above+ copyright notice, this list of conditions and the following+ disclaimer in the documentation and/or other materials provided+ with the distribution.++ * Neither the name of Kirk Peterson nor the names of other+ contributors may be used to endorse or promote products derived+ from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ README.md view
@@ -0,0 +1,11 @@+uuid-aeson+==========++Aeson types for UUID instances.++example+=======++Data.UUID.Aeson Data.UUID.V4 Data.Aeson Control.Monad> liftM (fromJSON .toJSON) nextRandom :: IO (Result UUID)++Success 99644d7c-298c-44a9-b9bb-d0ca9940cc4e
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ src/Data/UUID/._Aeson.hs view
binary file changed (absent → 171 bytes)
+ src/Data/UUID/Aeson.hs view
@@ -0,0 +1,21 @@+module Data.UUID.Aeson where++import Control.Applicative (pure)++import Data.UUID (UUID, fromString)++import Data.Aeson (ToJSON,FromJSON, toJSON, parseJSON) +import Data.Aeson.Types (Value(String), typeMismatch)++import qualified Data.Text as T++instance ToJSON UUID where+ toJSON = String . T.pack . show++instance FromJSON UUID where+ parseJSON json@(String t) = + let uuidString = T.unpack t+ in case fromString uuidString of+ Just uuid -> pure uuid + Nothing -> typeMismatch "UUID" json + parseJSON unknown = typeMismatch "UUID" unknown
+ uuid-aeson.cabal view
@@ -0,0 +1,24 @@+-- Initial uuid-aeson.cabal generated by cabal init. For further +-- documentation, see http://haskell.org/cabal/users-guide/++name: uuid-aeson+version: 0.1.0.0+synopsis: Aeson types for UUID instances.+description: Instances of Aeson's ToJSON and FromJSON for UUIDs. +license: BSD3+license-file: LICENSE+author: Kirk Peterson+maintainer: necrobious@gmail.com+-- copyright: +category: Data+build-type: Simple+cabal-version: >=1.8++library+ -- other-modules: + hs-source-dirs: src+ exposed-modules: Data.UUID.Aeson + build-depends: base >= 4 && < 5,+ text, + aeson, + uuid >= 1