packages feed

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 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