-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Serialization and deserialization monads for streams and ByteStrings. -- -- Serialization and deserialization monads which can work on either -- streams or ByteStrings, running under IO in the former case and as -- pure functions in the latter. @package direct-binary-files @version 1.0 module BinaryFiles data Endianness BigEndian :: Endianness LittleEndian :: Endianness class HasEndianness hasEndianness considerEndianness :: HasEndianness hasEndianness => hasEndianness -> Endianness class Serializable context a serialize :: Serializable context a => a -> ContextualSerialization context () deserialize :: Serializable context a => ContextualDeserialization context a type Serialization a = forall context. ContextualSerialization context a type Deserialization a = forall context. ContextualDeserialization context a data ContextualSerialization context a data ContextualDeserialization context a data SomeSerializationFailure SomeSerializationFailure :: failure -> SomeSerializationFailure class (Show failure, Typeable failure) => SerializationFailure failure where toSerializationFailure failure = SomeSerializationFailure failure fromSerializationFailure someFailure = case someFailure of { SomeSerializationFailure failure -> cast failure } toSerializationFailure :: SerializationFailure failure => failure -> SomeSerializationFailure fromSerializationFailure :: SerializationFailure failure => SomeSerializationFailure -> Maybe failure data LowLevelSerializationFailure LowLevelSerializationFailure :: IOException -> LowLevelSerializationFailure data OutOfRangeSerializationFailure OutOfRangeSerializationFailure :: Int -> OutOfRangeSerializationFailure data InsufficientDataSerializationFailure InsufficientDataSerializationFailure :: Int -> InsufficientDataSerializationFailure class MonadSerial m getContext :: (MonadSerial m, Monad (m context)) => m context context withContext :: (MonadSerial m, Monad (m context), Monad (m context')) => context' -> m context' a -> m context a getTags :: (MonadSerial m, Monad (m context)) => m context [(Int, String)] withTag :: (MonadSerial m, Monad (m context)) => String -> m context a -> m context a withWindow :: (MonadSerial m, Monad (m context)) => SerialOrigin -> Int -> Int -> m context a -> m context a throw :: (MonadSerial m, Monad (m context), SerializationFailure failure) => failure -> m context a catch :: (MonadSerial m, Monad (m context), SerializationFailure failure) => m context a -> (Int -> [(Int, String)] -> failure -> m context a) -> m context a seek :: MonadSerial m => SerialOrigin -> Int -> m context () tell :: MonadSerial m => m context Int isEOF :: MonadSerial m => m context Bool data SerialOrigin OffsetFromStart :: SerialOrigin OffsetFromCurrent :: SerialOrigin OffsetFromEnd :: SerialOrigin read :: MonadSerialReader m => Int -> m context ByteString write :: MonadSerialWriter m => ByteString -> m context () runSerializationToByteString :: ContextualSerialization () a -> Either (Int, [(Int, String)], SomeSerializationFailure) (a, ByteString) runSerializationToFile :: ContextualSerialization () a -> FilePath -> IO (Either (Int, [(Int, String)], SomeSerializationFailure) a) runDeserializationFromByteString :: ContextualDeserialization () a -> ByteString -> Either (Int, [(Int, String)], SomeSerializationFailure) a runDeserializationFromFile :: ContextualDeserialization () a -> FilePath -> IO (Either (Int, [(Int, String)], SomeSerializationFailure) a) runSubDeserializationFromByteString :: ContextualDeserialization () a -> ByteString -> Deserialization a toByteString :: Serializable () a => a -> (Either (Int, [(Int, String)], SomeSerializationFailure) ByteString) toFile :: Serializable () a => a -> FilePath -> IO (Maybe (Int, [(Int, String)], SomeSerializationFailure)) fromByteString :: Serializable () a => ByteString -> Either (Int, [(Int, String)], SomeSerializationFailure) a fromFile :: Serializable () a => FilePath -> IO (Either (Int, [(Int, String)], SomeSerializationFailure) a) serializeWord :: (Bits word, Integral word, Num word, HasEndianness context) => word -> ContextualSerialization context () deserializeWord :: (Bits word, Integral word, Num word, HasEndianness context) => ContextualDeserialization context word serializeNullTerminatedText :: ByteString -> Serialization () deserializeNullTerminatedText :: Deserialization ByteString serializeNullPaddedText :: Int -> ByteString -> Serialization () deserializeNullPaddedText :: Int -> Deserialization ByteString instance Typeable LowLevelSerializationFailure instance Typeable OutOfRangeSerializationFailure instance Typeable InsufficientDataSerializationFailure instance Typeable SomeSerializationFailure instance Eq Endianness instance Show Endianness instance Eq SerialOrigin instance Ord SerialOrigin instance Show SerialOrigin instance Show InsufficientDataSerializationFailure instance Show OutOfRangeSerializationFailure instance Show LowLevelSerializationFailure instance Show SomeSerializationFailure instance SerializationFailure InsufficientDataSerializationFailure instance SerializationFailure OutOfRangeSerializationFailure instance SerializationFailure LowLevelSerializationFailure instance SerializationFailure SomeSerializationFailure instance MonadSerialIO BackendSpecificDeserialization FilePath instance MonadSerialIO BackendSpecificSerialization FilePath instance MonadSerialByteStringWriter BackendSpecificSerialization ByteString instance MonadSerialByteString BackendSpecificDeserialization instance MonadSerialByteString BackendSpecificSerialization instance MonadSerialReader ContextualDeserialization instance MonadSerialReader (BackendSpecificDeserialization FilePath) instance MonadSerialReader (BackendSpecificDeserialization ByteString) instance MonadSerialWriter ContextualSerialization instance MonadSerialWriter (BackendSpecificSerialization FilePath) instance MonadSerialWriter (BackendSpecificSerialization ByteString) instance MonadSerial ContextualDeserialization instance MonadSerial ContextualSerialization instance MonadSerial (BackendSpecificDeserialization FilePath) instance MonadSerial (BackendSpecificDeserialization ByteString) instance MonadSerial (BackendSpecificSerialization FilePath) instance MonadSerial (BackendSpecificSerialization ByteString) instance BackendSpecificMonadSerial BackendSpecificDeserialization FilePath instance BackendSpecificMonadSerial BackendSpecificDeserialization ByteString instance BackendSpecificMonadSerial BackendSpecificSerialization FilePath instance BackendSpecificMonadSerial BackendSpecificSerialization ByteString instance Monad (ContextualDeserialization context) instance Monad (ContextualSerialization context) instance Monad (PrimitiveMonad backend) => Monad (BackendSpecificDeserialization backend context) instance Monad (PrimitiveMonad backend) => Monad (BackendSpecificSerialization backend context) instance Monad Identity instance Serial FilePath instance Serial ByteString instance HasEndianness Endianness