packages feed

json-types (empty) → 0.1

raw patch · 4 files changed

+140/−0 lines, 4 filesdep +basedep +containersdep +textsetup-changed

Dependencies added: base, containers, text

Files

+ Data/JSON/Types.hs view
@@ -0,0 +1,89 @@+-- Copyright (c) 2010 John Millikin+--+-- Permission is hereby granted, free of charge, to any person+-- obtaining a copy of this software and associated documentation+-- files (the "Software"), to deal in the Software without+-- restriction, including without limitation the rights to use,+-- copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the+-- Software is furnished to do so, subject to the following+-- conditions:+--+-- The above copyright notice and this permission notice shall be+-- included in all copies or substantial portions of the Software.+--+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,+-- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES+-- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND+-- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT+-- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,+-- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING+-- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR+-- OTHER DEALINGS IN THE SOFTWARE.++module Data.JSON.Types+	( -- * DOM-based+	  Root (..)+	, Object+	, Array+	, Value (..)+	, Atom (..)+	+	-- * Event-based+	, Event (..)+	) where+import Data.Map (Map)+import Data.Text.Lazy (Text)+import qualified Data.Text.Lazy as T+import Data.String (IsString, fromString)++-- | Each JSON document has a single /root/, which may be either an 'Object'+-- or 'Array'.+--+-- Some parsers allow non-container roots, but portable libraries should+-- not depend on this incorrect behavior.+data Root+	= RootObject Object+	| RootArray Array+	deriving (Show, Eq)++-- | Objects store unordered associations between textual keys and 'Value's.+type Object = Map Text Value++-- | Arrays are ordered sequences of 'Value's.+type Array = [Value]++data Value+	= ValueObject Object+	| ValueArray Array+	| ValueAtom Atom+	deriving (Show, Eq)++instance IsString Value where+	fromString = ValueAtom . fromString++data Atom+	= AtomNull+	| AtomBoolean Bool+	+	-- | JSON numbers may be of arbitrary length and precision. Using+	-- 'Rational' allows any valid parsed number to be stored; however,+	-- note that only rationals with a finite decimal expansion can be+	-- fully serialized. For example, attempting to serialize @(1 % 3)@+	-- will lose precision.+	| AtomNumber Rational+	+	| AtomText Text+	deriving (Show, Eq)++instance IsString Atom where+	fromString = AtomText . T.pack++data Event+	= EventBeginObject+	| EventEndObject+	| EventBeginArray+	| EventEndArray+	| EventAttributeName Text+	| EventAtom Atom+	deriving (Show, Eq)
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ json-types.cabal view
@@ -0,0 +1,27 @@+name: json-types+version: 0.1+synopsis: Basic types for representing JSON+license: MIT+license-file: license.txt+author: John Millikin <jmillikin@gmail.com>+maintainer: jmillikin@gmail.com+build-type: Simple+cabal-version: >=1.6+category: Text, JSON+stability: experimental+bug-reports: mailto:jmillikin@gmail.com++source-repository head+  type: bazaar+  location: http://john-millikin.com/software/json-types/++library+  ghc-options: -Wall++  build-depends:+      base >= 3 && < 5+    , text+    , containers++  exposed-modules:+    Data.JSON.Types
+ license.txt view
@@ -0,0 +1,22 @@+Copyright (c) 2010 John Millikin++Permission is hereby granted, free of charge, to any person+obtaining a copy of this software and associated documentation+files (the "Software"), to deal in the Software without+restriction, including without limitation the rights to use,+copy, modify, merge, publish, distribute, sublicense, and/or sell+copies of the Software, and to permit persons to whom the+Software is furnished to do so, subject to the following+conditions:++The above copyright notice and this permission notice shall be+included in all copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR+OTHER DEALINGS IN THE SOFTWARE.