Safe Haskell | None |
---|---|
Language | Haskell2010 |
- class BondEnum a where
- class BondType a => BondStruct a where
- class (Typeable a, Default a) => BondType a where
- class Hashable a
- class IsString a where
- class NFData a
- class Protocol t where
- ap :: Monad m => m (a -> b) -> m a -> m b
- asProxyTypeOf :: a -> Proxy * a -> a
- fromOrdinalList :: [Ordinal] -> OrdinalSet
Documentation
class BondEnum a where Source #
Bond enumeration class containing utility functions.
class BondType a => BondStruct a where Source #
Bond top-level structure, can be de/serialized on its own.
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 (Typeable a, Default a) => BondType a where Source #
A type bond knows how to read and write to stream as a part of BondStruct
.
bondGet :: (Functor (ReaderM t), Monad (ReaderM t), Protocol t) => BondGet t a Source #
Read value.
bondPut :: (Monad (BondPutM t), Protocol t) => a -> BondPut t Source #
Write value.
getName :: Proxy a -> Text Source #
Get name of type.
getQualifiedName :: Proxy a -> Text Source #
Get qualified name of type.
getElementType :: Proxy a -> ElementTypeInfo Source #
Get type description.
BondType Bool Source # | |
BondType Double Source # | |
BondType Float Source # | |
BondType Int8 Source # | |
BondType Int16 Source # | |
BondType Int32 Source # | |
BondType Int64 Source # | |
BondType Word8 Source # | |
BondType Word16 Source # | |
BondType Word32 Source # | |
BondType Word64 Source # | |
BondType Blob Source # | |
BondType Utf16 Source # | |
BondType Utf8 Source # | |
BondType BondDataType Source # | |
BondType Modifier Source # | |
BondType ProtocolType Source # | |
BondType TypeDef Source # | |
BondType Variant Source # | |
BondType Metadata Source # | |
BondType FieldDef Source # | |
BondType StructDef Source # | |
BondType SchemaDef Source # | |
BondType a => BondType [a] Source # | |
BondType a => BondType (Maybe a) Source # | |
(Ord a, BondType a) => BondType (Set a) Source # | |
(Eq a, Hashable a, BondType a) => BondType (HashSet a) Source # | |
BondType a => BondType (Vector a) Source # | |
BondStruct a => BondType (Bonded a) Source # | |
(Ord k, BondType k, BondType v) => BondType (Map k v) Source # | |
The class of types that can be converted to a hash value.
Minimal implementation: hashWithSalt
.
Class for string-like datastructures; used by the overloaded string extension (-XOverloadedStrings in GHC).
fromString :: String -> a #
A class of types that can be fully evaluated.
Since: 1.1.0.0
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 CallStack | Since: 1.4.2.0 |
NFData TypeRep | NOTE: Only defined for Since: 1.4.0.0 |
NFData () | |
NFData TyCon | NOTE: Only defined for Since: 1.4.0.0 |
NFData ByteString | |
NFData Scientific | |
NFData Number | |
NFData ByteString | |
NFData UTCTime | |
NFData JSONPathElement | |
NFData Value | |
NFData Natural | Since: 1.4.0.0 |
NFData Void | Since: 1.4.0.0 |
NFData Version | Since: 1.3.0.0 |
NFData Unique | Since: 1.4.0.0 |
NFData ThreadId | Since: 1.4.0.0 |
NFData ExitCode | Since: 1.4.2.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 Fingerprint | Since: 1.4.0.0 |
NFData SrcLoc | Since: 1.4.2.0 |
NFData IntSet | |
NFData LocalTime | |
NFData ZonedTime | |
NFData TimeOfDay | |
NFData NominalDiffTime | |
NFData Day | |
NFData Ordinal # | |
NFData Blob # | |
NFData Utf16 # | |
NFData Utf8 # | |
NFData BondDataType # | |
NFData Struct # | |
NFData Value # | |
NFData Modifier # | |
NFData ProtocolType # | |
NFData TypeDef # | |
NFData Variant # | |
NFData Metadata # | |
NFData FieldDef # | |
NFData StructDef # | |
NFData SchemaDef # | |
NFData a => NFData [a] | |
NFData a => NFData (Maybe a) | |
NFData a => NFData (Ratio a) | |
NFData (Ptr a) | Since: 1.4.2.0 |
NFData (FunPtr a) | Since: 1.4.2.0 |
NFData a => NFData (IResult a) | |
NFData a => NFData (Result a) | |
NFData a => NFData (Identity a) | Since: 1.4.0.0 |
NFData a => NFData (Min a) | Since: 1.4.2.0 |
NFData a => NFData (Max a) | Since: 1.4.2.0 |
NFData a => NFData (First a) | Since: 1.4.2.0 |
NFData a => NFData (Last a) | Since: 1.4.2.0 |
NFData m => NFData (WrappedMonoid m) | Since: 1.4.2.0 |
NFData a => NFData (Option a) | Since: 1.4.2.0 |
NFData a => NFData (NonEmpty a) | Since: 1.4.2.0 |
NFData (Fixed a) | Since: 1.3.0.0 |
NFData a => NFData (Complex a) | |
NFData (StableName a) | Since: 1.4.0.0 |
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 (IORef a) | NOTE: Only strict in the reference and not the referenced value. Since: 1.4.2.0 |
NFData a => NFData (Down a) | Since: 1.4.0.0 |
NFData (MVar a) | NOTE: Only strict in the reference and not the referenced value. Since: 1.4.2.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 (Tree a) | |
NFData a => NFData (Seq a) | |
NFData a => NFData (Set a) | |
NFData a => NFData (DList 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 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) | |
(NFData a, NFData b) => NFData (Array a b) | |
(NFData i, NFData r) => NFData (IResult i r) | |
(NFData a, NFData b) => NFData (Arg a b) | Since: 1.4.2.0 |
NFData (Proxy k a) | Since: 1.4.0.0 |
NFData (STRef s a) | NOTE: Only strict in the reference and not the referenced value. Since: 1.4.2.0 |
(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 a => NFData (Const k a b) | Since: 1.4.0.0 |
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.
bondPutStruct, bondPutBaseStruct, bondGetStruct, bondGetBaseStruct, bondPutField, bondPutDefNothingField, bondPutBool, bondPutUInt8, bondPutUInt16, bondPutUInt32, bondPutUInt64, bondPutInt8, bondPutInt16, bondPutInt32, bondPutInt64, bondPutFloat, bondPutDouble, bondPutString, bondPutWString, bondPutBlob, bondPutList, bondPutVector, bondPutHashSet, bondPutSet, bondPutMap, bondPutNullable, bondPutBonded, bondGetBool, bondGetUInt8, bondGetUInt16, bondGetUInt32, bondGetUInt64, bondGetInt8, bondGetInt16, bondGetInt32, bondGetInt64, bondGetFloat, bondGetDouble, bondGetString, bondGetWString, bondGetBlob, bondGetList, bondGetVector, bondGetHashSet, bondGetSet, bondGetMap, bondGetNullable, bondGetDefNothing, bondGetBonded
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 #
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 #