Portability | good |
---|---|

Stability | experimental |

Maintainer | Vincent Hanquez <vincent@snarc.org> |

Safe Haskell | None |

- class Byteable a where
- toBytes :: a -> ByteString
- byteableLength :: a -> Int
- withBytePtr :: a -> (Ptr Word8 -> IO b) -> IO b

- constEqBytes :: Byteable a => a -> a -> Bool

# Documentation

Class of things that can generate sequence of bytes

toBytes :: a -> ByteStringSource

Convert a byteable type to a bytestring

byteableLength :: a -> IntSource

Return the size of the byteable .

withBytePtr :: a -> (Ptr Word8 -> IO b) -> IO bSource

Provide a way to look at the data of a byteable type with a ptr.

constEqBytes :: Byteable a => a -> a -> BoolSource

A constant time equality test for 2 byteable objects.

If objects are of 2 different sizes, the function will abort early without comparing any bytes.

compared to == , this function will go over all the bytes present before yielding a result even when knowing the overall result early in the processing.