hasbolt-0.1.6.2: Haskell driver for Neo4j 3+ (BOLT protocol)
Safe HaskellNone
LanguageHaskell2010

Database.Bolt.Serialization

Synopsis

Documentation

class BoltValue a where Source #

The BoltValue class describes values, that can be packed and unpacked for BOLT protocol.

Methods

pack :: a -> Put Source #

Packs a value to ByteString

unpackT :: Get a Source #

Unpacks in a State monad to get values from single ByteString

Instances

Instances details
BoltValue Bool Source # 
Instance details

Defined in Database.Bolt.Value.Instances

BoltValue Double Source # 
Instance details

Defined in Database.Bolt.Value.Instances

BoltValue Int Source # 
Instance details

Defined in Database.Bolt.Value.Instances

BoltValue () Source # 
Instance details

Defined in Database.Bolt.Value.Instances

Methods

pack :: () -> Put Source #

unpackT :: Get () Source #

BoltValue Text Source # 
Instance details

Defined in Database.Bolt.Value.Instances

BoltValue Value Source # 
Instance details

Defined in Database.Bolt.Value.Instances

BoltValue Structure Source # 
Instance details

Defined in Database.Bolt.Value.Instances

BoltValue a => BoltValue [a] Source # 
Instance details

Defined in Database.Bolt.Value.Instances

Methods

pack :: [a] -> Put Source #

unpackT :: Get [a] Source #

BoltValue a => BoltValue (Map Text a) Source # 
Instance details

Defined in Database.Bolt.Value.Instances

Methods

pack :: Map Text a -> Put Source #

unpackT :: Get (Map Text a) Source #

data UnpackT m a Source #

The UnpackT transformer helps to unpack a set of values from one ByteString

Instances

Instances details
Monad m => MonadState ByteString (UnpackT m) Source # 
Instance details

Defined in Database.Bolt.Value.Type

Methods

get :: UnpackT m ByteString #

put :: ByteString -> UnpackT m () #

state :: (ByteString -> (a, ByteString)) -> UnpackT m a #

Monad m => MonadError UnpackError (UnpackT m) Source # 
Instance details

Defined in Database.Bolt.Value.Type

Methods

throwError :: UnpackError -> UnpackT m a #

catchError :: UnpackT m a -> (UnpackError -> UnpackT m a) -> UnpackT m a #

Monad m => Monad (UnpackT m) Source # 
Instance details

Defined in Database.Bolt.Value.Type

Methods

(>>=) :: UnpackT m a -> (a -> UnpackT m b) -> UnpackT m b #

(>>) :: UnpackT m a -> UnpackT m b -> UnpackT m b #

return :: a -> UnpackT m a #

Functor m => Functor (UnpackT m) Source # 
Instance details

Defined in Database.Bolt.Value.Type

Methods

fmap :: (a -> b) -> UnpackT m a -> UnpackT m b #

(<$) :: a -> UnpackT m b -> UnpackT m a #

Monad m => Applicative (UnpackT m) Source # 
Instance details

Defined in Database.Bolt.Value.Type

Methods

pure :: a -> UnpackT m a #

(<*>) :: UnpackT m (a -> b) -> UnpackT m a -> UnpackT m b #

liftA2 :: (a -> b -> c) -> UnpackT m a -> UnpackT m b -> UnpackT m c #

(*>) :: UnpackT m a -> UnpackT m b -> UnpackT m b #

(<*) :: UnpackT m a -> UnpackT m b -> UnpackT m a #

class ToStructure a where Source #

Generalizes all datatypes that can be serialized to Structures.

Methods

toStructure :: a -> Structure Source #

class FromStructure a where Source #

Generalizes all datatypes that can be deserialized from Structures.

unpack :: (Monad m, BoltValue a) => ByteString -> m (Either UnpackError a) Source #

Unpacks a ByteString to selected value

unpackF :: (MonadFail m, BoltValue a) => ByteString -> m a Source #

Old-style unpack that runs fail on error

unpackAction :: Get a -> ByteString -> Either UnpackError a Source #

Unpacks a ByteString to selected value by some custom action