happstack-data-6.0.1: Happstack data manipulation libraries

Safe HaskellNone

Happstack.Data.Serialize

Synopsis

Documentation

class (Typeable a, Version a) => Serialize a whereSource

Methods

getCopy :: Contained (Get a)Source

putCopy :: a -> Contained PutSource

Instances

Serialize Bool 
Serialize Char 
Serialize Double 
Serialize Float 
Serialize Int 
Serialize Int8 
Serialize Int16 
Serialize Int32 
Serialize Int64 
Serialize Integer 
Serialize Ordering 
Serialize Word8 
Serialize Word16 
Serialize Word32 
Serialize Word64 
Serialize () 
Serialize ByteString 
Serialize ByteString 
Serialize Text 
Serialize Text 
Serialize TimeZone 
Serialize TimeOfDay 
Serialize ZonedTime 
Serialize LocalTime 
Serialize UTCTime 
Serialize NominalDiffTime 
Serialize UniversalTime 
Serialize DiffTime 
Serialize Day 
Serialize AbsoluteTime 
Serialize Object 
Serialize a => Serialize [a] 
(Integral a, Serialize a) => Serialize (Ratio a) 
Typeable a => Serialize (Proxy a) 
Serialize a => Serialize (Maybe a) 
(Serialize a, Ord a) => Serialize (Set a) 
Serialize a => Serialize (IntMap a) 
(Serialize a, Serialize b) => Serialize (Either a b) 
(Serialize a, Serialize b) => Serialize (a, b) 
(Serialize a, Serialize b, Ord a) => Serialize (Map a b) 
(Serialize a, Serialize b, Serialize c) => Serialize (a, b, c) 
(Serialize a, Serialize b, Serialize c, Serialize d) => Serialize (a, b, c, d) 
(Serialize a, Serialize b, Serialize c, Serialize d, Serialize e) => Serialize (a, b, c, d, e) 

class Version a whereSource

The Version type class is used to describe whether a type is fundamental or if it is meant to extend another type. For a user defined type that does not extend any others, one can use the default instance of Version, e.g. instance Version MyType to define it has having a version id of 0 and previous type.

Methods

mode :: Mode aSource

Instances

Version Bool 
Version Char 
Version Double 
Version Float 
Version Int 
Version Int8 
Version Int16 
Version Int32 
Version Int64 
Version Integer 
Version Ordering 
Version Word8 
Version Word16 
Version Word32 
Version Word64 
Version () 
Version ByteString 
Version ByteString 
Version Text 
Version Text 
Version TimeZone 
Version TimeOfDay 
Version ZonedTime 
Version LocalTime 
Version UTCTime 
Version NominalDiffTime 
Version UniversalTime 
Version DiffTime 
Version Day 
Version AbsoluteTime 
Version Object 
Version [a] 
Typeable a => Version (Ratio a) 
Version (Proxy a) 
Version (Maybe a) 
Version (Set a) 
Version (IntMap a) 
Version (Either a b) 
Version (a, b) 
Version (Map a b) 
Version (a, b, c) 
Version (a, b, c, d) 
Version (a, b, c, d, e) 

class Migrate a b whereSource

Migrate instances are needed to allow upgrades of MACID state. It should be declared as instance Migrate Old New where migrate = transition_function

Methods

migrate :: a -> bSource

data Mode a Source

Constructors

Primitive

Data layout won't change. Used for types like Int and Char.

Versioned (VersionId a) (Maybe (Previous a)) 

contain :: a -> Contained aSource

Lifts the provided value into Contained

extension :: forall a b. (Serialize b, Migrate b a) => VersionId a -> Proxy b -> Mode aSource

Creates a Mode that is a new version of the type carried by the provided proxy and with the provided version number. Note that since VersionId is an instance of Num that you may use int literals when calling extension, e.g. extension 1 (Proxy :: Proxy OldState)

safeGet :: forall a. Serialize a => Get aSource

Equivalent of Data.Binary.get for instances of Serialize Takes into account versioning of types.

safePut :: forall a. Serialize a => a -> PutSource

Equivalent of Data.Binary.put for instances of Serialize. Takes into account versioning of types.

getSafeGet :: forall a. Serialize a => Get (Get a)Source

getSafePut :: forall a. Serialize a => PutM (a -> Put)Source

serialize :: Serialize a => a -> ByteStringSource

Pure version of safePut. Serializes to a ByteString

deserialize :: Serialize a => ByteString -> (a, ByteString)Source

Pure version of safeGet. Parses a ByteString into the expected type and a remainder.

collectVersions :: forall a. (Typeable a, Version a) => Proxy a -> [ByteString]Source

Version lookups

data Object Source

Uniform container for any serialized data. It contains a string rep of the type and the actual data serialized to a byte string.

Instances

mkObject :: Serialize a => a -> ObjectSource

Serializes data and stores it along with its type name in an Object

deserializeObject :: ByteString -> (Object, ByteString)Source

deserialize specialized to Objects

parseObject :: Serialize a => Object -> aSource

Attempts to convert an Object back into its base type. If the conversion fails error will be called.

showQualifiedTypeRep :: TypeRep -> StringSource