-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Extract and apply patches to JSON documents. -- -- This is a small library for working with changes to JSON documents. It -- includes a library and two command-line executables in the style of -- the diff(1) and patch(1) commands available on many systems. @package aeson-diff @version 1.0.0.0 -- | This module implements data types and operations to represent the -- differences between JSON documents (i.e. a patch), to compare JSON -- documents and extract such a patch, and to apply such a patch to a -- JSON document. module Data.Aeson.Diff -- | Describes the changes between two JSON documents. data Patch Patch :: [Operation] -> Patch [patchOperations] :: Patch -> [Operation] -- | Pointer to a location in a JSON document. -- -- Defined in RFC 6901 http://tools.ietf.org/html/rfc6901 data Pointer -- | Traverse a single layer of a JSON document. data Key -- | Traverse a Value with an Object constructor. OKey :: Text -> Key -- | Traverse a Value with an Array constructor. AKey :: Int -> Key -- | An Operation describes an atomic change to a JSON document. -- -- See RFC 6902 Section 4 -- http://tools.ietf.org/html/rfc6902#section-4. data Operation -- | http://tools.ietf.org/html/rfc6902#section-4.1 Add :: Pointer -> Value -> Operation [changePointer] :: Operation -> Pointer [changeValue] :: Operation -> Value -- | http://tools.ietf.org/html/rfc6902#section-4.2 Rem :: Pointer -> Value -> Operation [changePointer] :: Operation -> Pointer [changeValue] :: Operation -> Value -- | http://tools.ietf.org/html/rfc6902#section-4.3 Rep :: Pointer -> Value -> Operation [changePointer] :: Operation -> Pointer [changeValue] :: Operation -> Value -- | http://tools.ietf.org/html/rfc6902#section-4.4 Mov :: Pointer -> Pointer -> Operation [changePointer] :: Operation -> Pointer [fromPointer] :: Operation -> Pointer -- | http://tools.ietf.org/html/rfc6902#section-4.5 Cpy :: Pointer -> Pointer -> Operation [changePointer] :: Operation -> Pointer [fromPointer] :: Operation -> Pointer -- | http://tools.ietf.org/html/rfc6902#section-4.6 Tst :: Pointer -> Value -> Operation [changePointer] :: Operation -> Pointer [changeValue] :: Operation -> Value -- | Compare two JSON documents and generate a patch describing the -- differences. diff :: Value -> Value -> Patch -- | Apply a patch to a JSON document. patch :: Patch -> Value -> Result Value -- | Apply a patch to a JSON document. -- -- If the patch cannot be cleanly applied an error is thrown. patch' :: Patch -> Value -> Value -- | Apply an Operation to a Value. applyOperation :: Operation -> Value -> Result Value -- | Format a Patch for reading by humans. -- -- For storing or exchanging Patches between systems using the -- JSON encoding implemented by the FromJSON and ToJSON -- instances. formatPatch :: Patch -> Text instance GHC.Classes.Eq Data.Aeson.Diff.Patch instance GHC.Show.Show Data.Aeson.Diff.Operation instance GHC.Classes.Eq Data.Aeson.Diff.Operation instance GHC.Base.Monoid Data.Aeson.Diff.Pointer instance GHC.Show.Show Data.Aeson.Diff.Pointer instance GHC.Classes.Eq Data.Aeson.Diff.Pointer instance GHC.Show.Show Data.Aeson.Diff.Key instance GHC.Classes.Ord Data.Aeson.Diff.Key instance GHC.Classes.Eq Data.Aeson.Diff.Key instance GHC.Show.Show Data.Aeson.Diff.Patch instance GHC.Base.Monoid Data.Aeson.Diff.Patch instance Data.Aeson.Types.Class.ToJSON Data.Aeson.Diff.Patch instance Data.Aeson.Types.Class.FromJSON Data.Aeson.Diff.Patch instance Data.Aeson.Types.Class.ToJSON Data.Aeson.Diff.Operation instance Data.Aeson.Types.Class.FromJSON Data.Aeson.Diff.Operation instance Data.Aeson.Types.Class.ToJSON Data.Aeson.Diff.Pointer instance Data.Aeson.Types.Class.FromJSON Data.Aeson.Diff.Pointer instance Data.Aeson.Types.Class.ToJSON Data.Aeson.Diff.Key instance Data.Aeson.Types.Class.FromJSON Data.Aeson.Diff.Key