bond-haskell-0.1.3.0: Runtime support for BOND serialization

Safe HaskellNone
LanguageHaskell2010

Data.Bond.Internal.Imports

Synopsis

Documentation

class BondEnum a where Source

Bond enumeration class containing utility functions.

Methods

toName :: a -> Maybe Text Source

Convert constant value to name.

fromName :: Text -> Maybe a Source

Convert constant name to value.

class BondType a => BondStruct a where Source

Bond top-level structure, can be de/serialized on its own.

Methods

bondStructGetUntagged :: (Functor (ReaderM t), Monad (ReaderM t), Protocol t) => BondGet t a Source

Read all struct fields in order.

bondStructGetBase :: (Monad (ReaderM t), Protocol t) => a -> BondGet t a Source

Read base struct from stream.

bondStructGetField :: (Functor (ReaderM t), Monad (ReaderM t), Protocol t) => Ordinal -> a -> BondGet t a Source

Read field with specific ordinal.

bondStructPut :: (Monad (BondPutM t), Protocol t) => a -> BondPut t Source

Put all struct fields to stream in order.

getSchema :: Proxy a -> StructSchema Source

Obtain struct schema.

class Hashable a

The class of types that can be converted to a hash value.

Minimal implementation: hashWithSalt.

Instances

Hashable Bool 
Hashable Char 
Hashable Double 
Hashable Float 
Hashable Int 
Hashable Int8 
Hashable Int16 
Hashable Int32 
Hashable Int64 
Hashable Integer 
Hashable Ordering 
Hashable Word 
Hashable Word8 
Hashable Word16 
Hashable Word32 
Hashable Word64 
Hashable TypeRep 
Hashable () 
Hashable ByteString 
Hashable Scientific 
Hashable ByteString 
Hashable Text 
Hashable Value 
Hashable Text 
Hashable BigNat 
Hashable Void 
Hashable Unique 
Hashable Natural 
Hashable Version 
Hashable ThreadId 
Hashable ShortByteString 
Hashable Ordinal 
Hashable Blob 
Hashable Utf16 
Hashable Utf8 
Hashable BondDataType 
Hashable ProtocolType 
Hashable Modifier 
Hashable a => Hashable [a] 
(Integral a, Hashable a) => Hashable (Ratio a) 
Hashable a => Hashable (Maybe a) 
Hashable (StableName a) 
Hashable (Fixed a) 
Hashable a => Hashable (Min a) 
Hashable a => Hashable (Max a) 
Hashable a => Hashable (First a) 
Hashable a => Hashable (Last a) 
Hashable a => Hashable (WrappedMonoid a) 
Hashable a => Hashable (Option a) 
Hashable a => Hashable (NonEmpty a) 
Hashable a => Hashable (HashSet a) 
(Hashable a, Hashable b) => Hashable (Either a b) 
(Hashable a1, Hashable a2) => Hashable (a1, a2) 
(Hashable k, Hashable v) => Hashable (HashMap k v) 
(Hashable a, Hashable b) => Hashable (Arg a b) 
(Hashable a1, Hashable a2, Hashable a3) => Hashable (a1, a2, a3) 
(Hashable a1, Hashable a2, Hashable a3, Hashable a4) => Hashable (a1, a2, a3, a4) 
(Hashable a1, Hashable a2, Hashable a3, Hashable a4, Hashable a5) => Hashable (a1, a2, a3, a4, a5) 
(Hashable a1, Hashable a2, Hashable a3, Hashable a4, Hashable a5, Hashable a6) => Hashable (a1, a2, a3, a4, a5, a6) 
(Hashable a1, Hashable a2, Hashable a3, Hashable a4, Hashable a5, Hashable a6, Hashable a7) => Hashable (a1, a2, a3, a4, a5, a6, a7) 

class IsString a where

Class for string-like datastructures; used by the overloaded string extension (-XOverloadedStrings in GHC).

Methods

fromString :: String -> a

class NFData a

A class of types that can be fully evaluated.

Since: 1.1.0.0

Instances

NFData Bool 
NFData Char 
NFData Double 
NFData Float 
NFData Int 
NFData Int8 
NFData Int16 
NFData Int32 
NFData Int64 
NFData Integer 
NFData Word 
NFData Word8 
NFData Word16 
NFData Word32 
NFData Word64 
NFData TypeRep

NOTE: Only defined for base-4.8.0.0 and later

Since: 1.4.0.0

NFData () 
NFData ByteString 
NFData Scientific 
NFData Number 
NFData ByteString 
NFData UTCTime 
NFData JSONPathElement 
NFData Value 
NFData Void

Defined as rnf = absurd.

Since: 1.4.0.0

NFData Unique

Since: 1.4.0.0

NFData Natural

Since: 1.4.0.0

NFData Version

Since: 1.3.0.0

NFData ThreadId

Since: 1.4.0.0

NFData CChar

Since: 1.4.0.0

NFData CSChar

Since: 1.4.0.0

NFData CUChar

Since: 1.4.0.0

NFData CShort

Since: 1.4.0.0

NFData CUShort

Since: 1.4.0.0

NFData CInt

Since: 1.4.0.0

NFData CUInt

Since: 1.4.0.0

NFData CLong

Since: 1.4.0.0

NFData CULong

Since: 1.4.0.0

NFData CLLong

Since: 1.4.0.0

NFData CULLong

Since: 1.4.0.0

NFData CFloat

Since: 1.4.0.0

NFData CDouble

Since: 1.4.0.0

NFData CPtrdiff

Since: 1.4.0.0

NFData CSize

Since: 1.4.0.0

NFData CWchar

Since: 1.4.0.0

NFData CSigAtomic

Since: 1.4.0.0

NFData CClock

Since: 1.4.0.0

NFData CTime

Since: 1.4.0.0

NFData CUSeconds

Since: 1.4.0.0

NFData CSUSeconds

Since: 1.4.0.0

NFData CFile

Since: 1.4.0.0

NFData CFpos

Since: 1.4.0.0

NFData CJmpBuf

Since: 1.4.0.0

NFData CIntPtr

Since: 1.4.0.0

NFData CUIntPtr

Since: 1.4.0.0

NFData CIntMax

Since: 1.4.0.0

NFData CUIntMax

Since: 1.4.0.0

NFData All

Since: 1.4.0.0

NFData Any

Since: 1.4.0.0

NFData TyCon

NOTE: Only defined for base-4.8.0.0 and later

Since: 1.4.0.0

NFData Fingerprint

Since: 1.4.0.0

NFData ShortByteString 
NFData IntSet 
NFData LocalTime 
NFData ZonedTime 
NFData TimeOfDay 
NFData NominalDiffTime 
NFData Day 
NFData Ordinal 
NFData Blob 
NFData Utf16 
NFData Utf8 
NFData BondDataType 
NFData ProtocolType 
NFData Modifier 
NFData Variant 
NFData Metadata 
NFData TypeDef 
NFData FieldDef 
NFData StructDef 
NFData SchemaDef 
NFData Struct 
NFData Value 
NFData a => NFData [a] 
(Integral a, NFData a) => NFData (Ratio a) 
NFData a => NFData (Maybe a) 
NFData a => NFData (IResult a) 
NFData a => NFData (Result a) 
NFData (StableName a)

Since: 1.4.0.0

NFData a => NFData (Identity a)

Since: 1.4.0.0

NFData (Fixed a)

Since: 1.3.0.0

NFData a => NFData (Complex a) 
NFData a => NFData (ZipList a)

Since: 1.4.0.0

NFData a => NFData (Dual a)

Since: 1.4.0.0

NFData a => NFData (Sum a)

Since: 1.4.0.0

NFData a => NFData (Product a)

Since: 1.4.0.0

NFData a => NFData (First a)

Since: 1.4.0.0

NFData a => NFData (Last a)

Since: 1.4.0.0

NFData a => NFData (Down a)

Since: 1.4.0.0

NFData a => NFData (Digit a) 
NFData a => NFData (Node a) 
NFData a => NFData (Elem a) 
NFData a => NFData (FingerTree a) 
NFData a => NFData (IntMap a) 
NFData a => NFData (Set a) 
NFData a => NFData (Tree a) 
NFData a => NFData (Seq a) 
NFData a => NFData (DList a) 
NFData a => NFData (Min a) 
NFData a => NFData (Max a) 
NFData a => NFData (First a) 
NFData a => NFData (Last a) 
NFData m => NFData (WrappedMonoid m) 
NFData a => NFData (Option a) 
NFData a => NFData (NonEmpty a) 
NFData a => NFData (HashSet a) 
NFData a => NFData (Vector a) 
NFData (Vector a) 
NFData (Vector a) 
NFData (Vector a) 
NFData a => NFData (Bonded a) 
NFData (a -> b)

This instance is for convenience and consistency with seq. This assumes that WHNF is equivalent to NF for functions.

Since: 1.3.0.0

(NFData a, NFData b) => NFData (Either a b) 
(NFData a, NFData b) => NFData (a, b) 
(NFData k, NFData v) => NFData (HashMap k v) 
(NFData k, NFData a) => NFData (Map k a) 
(Ix a, NFData a, NFData b) => NFData (Array a b) 
(NFData i, NFData r) => NFData (IResult i r) 
NFData a => NFData (Const a b)

Since: 1.4.0.0

NFData (Proxy * a)

Since: 1.4.0.0

(NFData a, NFData b) => NFData (Arg a b) 
(NFData k, NFData v) => NFData (Leaf k v) 
NFData (MVector s a) 
NFData (MVector s a) 
NFData (MVector s a) 
(NFData a, NFData b, NFData c) => NFData (a, b, c) 
NFData b => NFData (Tagged k s b) 
(NFData a, NFData b, NFData c, NFData d) => NFData (a, b, c, d) 
(NFData a1, NFData a2, NFData a3, NFData a4, NFData a5) => NFData (a1, a2, a3, a4, a5) 
(NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6) => NFData (a1, a2, a3, a4, a5, a6) 
(NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6, NFData a7) => NFData (a1, a2, a3, a4, a5, a6, a7) 
(NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6, NFData a7, NFData a8) => NFData (a1, a2, a3, a4, a5, a6, a7, a8) 
(NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6, NFData a7, NFData a8, NFData a9) => NFData (a1, a2, a3, a4, a5, a6, a7, a8, a9) 

class Protocol t where Source

Bond serialization protocol, implements all operations.

Associated Types

type ReaderM t :: * -> * Source

type WriterM t :: * -> * Source

Methods

bondPutStruct :: BondStruct a => a -> BondPut t Source

Serialize top-level struct

bondPutBaseStruct :: BondStruct a => a -> BondPut t Source

Serialize base struct

bondGetStruct :: BondStruct a => BondGet t a Source

Deserialize top-level struct

bondGetBaseStruct :: BondStruct a => BondGet t a Source

Deserialize base struct

bondPutField :: (BondType a, BondStruct b) => Proxy b -> Ordinal -> a -> BondPut t Source

bondPutDefNothingField :: (BondType a, BondStruct b) => Proxy b -> Ordinal -> Maybe a -> BondPut t Source

bondPutBool :: Bool -> BondPut t Source

bondPutUInt8 :: Word8 -> BondPut t Source

bondPutUInt16 :: Word16 -> BondPut t Source

bondPutUInt32 :: Word32 -> BondPut t Source

bondPutUInt64 :: Word64 -> BondPut t Source

bondPutInt8 :: Int8 -> BondPut t Source

bondPutInt16 :: Int16 -> BondPut t Source

bondPutInt32 :: Int32 -> BondPut t Source

bondPutInt64 :: Int64 -> BondPut t Source

bondPutFloat :: Float -> BondPut t Source

bondPutDouble :: Double -> BondPut t Source

bondPutString :: Utf8 -> BondPut t Source

bondPutWString :: Utf16 -> BondPut t Source

bondPutBlob :: Blob -> BondPut t Source

bondPutList :: BondType a => [a] -> BondPut t Source

bondPutVector :: BondType a => Vector a -> BondPut t Source

bondPutHashSet :: BondType a => HashSet a -> BondPut t Source

bondPutSet :: BondType a => Set a -> BondPut t Source

bondPutMap :: (BondType k, BondType v) => Map k v -> BondPut t Source

bondPutNullable :: BondType a => Maybe a -> BondPut t Source

bondPutBonded :: BondStruct a => Bonded a -> BondPut t Source

bondGetBool :: BondGet t Bool Source

bondGetUInt8 :: BondGet t Word8 Source

bondGetUInt16 :: BondGet t Word16 Source

bondGetUInt32 :: BondGet t Word32 Source

bondGetUInt64 :: BondGet t Word64 Source

bondGetInt8 :: BondGet t Int8 Source

bondGetInt16 :: BondGet t Int16 Source

bondGetInt32 :: BondGet t Int32 Source

bondGetInt64 :: BondGet t Int64 Source

bondGetFloat :: BondGet t Float Source

bondGetDouble :: BondGet t Double Source

bondGetString :: BondGet t Utf8 Source

bondGetWString :: BondGet t Utf16 Source

bondGetBlob :: BondGet t Blob Source

bondGetList :: BondType a => BondGet t [a] Source

bondGetVector :: BondType a => BondGet t (Vector a) Source

bondGetHashSet :: (Eq a, Hashable a, BondType a) => BondGet t (HashSet a) Source

bondGetSet :: (Ord a, BondType a) => BondGet t (Set a) Source

bondGetMap :: (Ord k, BondType k, BondType v) => BondGet t (Map k v) Source

bondGetNullable :: BondType a => BondGet t (Maybe a) Source

bondGetDefNothing :: BondType a => BondGet t (Maybe a) Source

bondGetBonded :: BondStruct a => BondGet t (Bonded a) Source

ap :: Monad m => m (a -> b) -> m a -> m b

In many situations, the liftM operations can be replaced by uses of ap, which promotes function application.

      return f `ap` x1 `ap` ... `ap` xn

is equivalent to

      liftMn f x1 x2 ... xn

asProxyTypeOf :: a -> Proxy * a -> a

asProxyTypeOf is a type-restricted version of const. It is usually used as an infix operator, and its typing forces its first argument (which is usually overloaded) to have the same type as the tag of the second.

fromOrdinalList :: [Ordinal] -> OrdinalSet Source