Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.Deserializer
Description
Deserialization monad and deserializable types.
Synopsis
- class (Monad μ, Parsing μ) => Deserializer (μ :: Type -> Type) where
- endian :: Proxy μ -> Endian
- word8 :: μ Word8
- word16 :: μ Word16
- word32 :: μ Word32
- word64 :: μ Word64
- word16L :: μ Word16
- word16B :: μ Word16
- word32L :: μ Word32
- word32B :: μ Word32
- word64L :: μ Word64
- word64B :: μ Word64
- satisfy :: (Word8 -> Bool) -> μ Word8
- byte :: Word8 -> μ Word8
- notByte :: Word8 -> μ Word8
- bytes :: ByteString -> μ ByteString
- skip :: Int -> μ ()
- ensure :: Int -> μ ByteString
- ensure_ :: Int -> μ ()
- check :: Int -> μ Bool
- take :: Int -> μ ByteString
- chunk :: μ ByteString
- isolate :: Int -> μ α -> μ α
- newtype BinaryDeserializer α = BinaryDeserializer {
- binaryDeserializer :: Get α
- newtype CerealDeserializer α = CerealDeserializer {
- cerealDeserializer :: Get α
- word16H :: Deserializer μ => μ Word16
- word32H :: Deserializer μ => μ Word32
- word64H :: Deserializer μ => μ Word64
- word :: Deserializer μ => μ Word
- wordL :: Deserializer μ => μ Word
- wordB :: Deserializer μ => μ Word
- wordH :: Deserializer μ => μ Word
- int8 :: Deserializer μ => μ Int8
- int16 :: Deserializer μ => μ Int16
- int16L :: Deserializer μ => μ Int16
- int16B :: Deserializer μ => μ Int16
- int16H :: Deserializer μ => μ Int16
- int32 :: Deserializer μ => μ Int32
- int32L :: Deserializer μ => μ Int32
- int32B :: Deserializer μ => μ Int32
- int32H :: Deserializer μ => μ Int32
- int64 :: Deserializer μ => μ Int64
- int64L :: Deserializer μ => μ Int64
- int64B :: Deserializer μ => μ Int64
- int64H :: Deserializer μ => μ Int64
- int :: Deserializer μ => μ Int
- intL :: Deserializer μ => μ Int
- intB :: Deserializer μ => μ Int
- intH :: Deserializer μ => μ Int
- module Text.Parser.Combinators
- label :: Parsing μ => String -> μ α -> μ α
- module Text.Parser.LookAhead
- newtype LittleEndianDeserializer (μ :: Type -> Type) α = LittleEndianDeserializer {
- deserializeL :: μ α
- newtype BigEndianDeserializer (μ :: Type -> Type) α = BigEndianDeserializer {
- deserializeB :: μ α
- deserializeIn :: Deserializer μ => Endian -> (forall (μ' :: Type -> Type). Deserializer μ' => μ' α) -> μ α
- deserializeH :: Deserializer μ => (forall (μ' :: Type -> Type). Deserializer μ' => μ' α) -> μ α
- data Deserialized α
- = Deserialized α
- | Malformed [String] String
- isDeserialized :: Deserialized α -> Bool
- isMalformed :: Deserialized α -> Bool
- maybeDeserialized :: Deserialized α -> Maybe α
- defaultDeserializer :: (forall (μ :: Type -> Type). Deserializer μ => μ α) -> ByteString -> Deserialized α
- class Deserializable α where
- get :: Deserializer μ => μ α
- getIn :: (Deserializer μ, Deserializable α) => Endian -> μ α
- getL :: (Deserializer μ, Deserializable α) => μ α
- getB :: (Deserializer μ, Deserializable α) => μ α
- getH :: (Deserializer μ, Deserializable α) => μ α
- deserializeBytes :: Deserializable α => [Word8] -> Deserialized α
- deserializeBytesAs :: Deserializable α => p α -> [Word8] -> Deserialized α
- deserializeByteString :: Deserializable α => ByteString -> Deserialized α
- deserializeByteStringAs :: Deserializable α => p α -> ByteString -> Deserialized α
- deserializeLazyByteString :: Deserializable α => ByteString -> Deserialized α
- deserializeLazyByteStringAs :: Deserializable α => p α -> ByteString -> Deserialized α
- fromBytes :: Deserializable α => [Word8] -> Maybe α
- fromBytesAs :: Deserializable α => p α -> [Word8] -> Maybe α
- fromByteString :: Deserializable α => ByteString -> Maybe α
- fromByteStringAs :: Deserializable α => p α -> ByteString -> Maybe α
- fromLazyByteString :: Deserializable α => ByteString -> Maybe α
- fromLazyByteStringAs :: Deserializable α => p α -> ByteString -> Maybe α
- class RestDeserializable α where
- getRest :: Deserializer μ => μ α
Deserialization monad
class (Monad μ, Parsing μ) => Deserializer (μ :: Type -> Type) where Source #
Deserialization monad.
Methods
endian :: Proxy μ -> Endian Source #
Default byte order of the deserializer.
Deserialze a byte.
Deserialize an unsigned 16-bit integer in default byte order.
Deserialize an unsigned 32-bit integer in default byte order.
Deserialize an unsigned 64-bit integer in default byte order.
Deserialize an unsigned 16-bit integer in little endian.
Deserialize an unsigned 16-bit integer in big endian.
Deserialize an unsigned 32-bit integer in little endian.
Deserialize an unsigned 32-bit integer in big endian.
Deserialize an unsigned 64-bit integer in little endian.
Deserialize an unsigned 64-bit integer in big endian.
satisfy :: (Word8 -> Bool) -> μ Word8 Source #
satisfy
p deserializes a byte that satisfies the predicate p,
failing otherwise.
byte :: Word8 -> μ Word8 Source #
Deserialize the specified byte value, failing on any other input.
notByte :: Word8 -> μ Word8 Source #
notByte
c deserializes any byte that is not equal to c, failing
if c is encountered.
bytes :: ByteString -> μ ByteString Source #
bytes
bs deserializes a sequence of bytes given by bs, failing
on any other input.
Skip exactly the given number of bytes.
ensure :: Int -> μ ByteString Source #
ensure
n checks that the input has at least n more bytes and
returns a portion of the input of length greater or equal to n
(without consuming it).
ensure_ :: Int -> μ () Source #
ensure_
n fails if the input has less than n more bytes.
check :: Int -> μ Bool Source #
take :: Int -> μ ByteString Source #
Consume exactly the given number of bytes.
chunk :: μ ByteString Source #
Consume a portion of the input (the size of the returned
ByteString
is implementation dependent). Empty result means that
the eof
is reached.
Instances
newtype BinaryDeserializer α Source #
A wrapper around the Get
monad (to avoid orphan instances).
Constructors
BinaryDeserializer | |
Fields
|
Instances
newtype CerealDeserializer α Source #
A wrapper around the Get
monad (to avoid orphan instances).
Constructors
CerealDeserializer | |
Fields
|
Instances
Deserializer CerealDeserializer Source # | |||||
Defined in Data.Deserializer Methods endian :: Proxy CerealDeserializer -> Endian Source # word8 :: CerealDeserializer Word8 Source # word16 :: CerealDeserializer Word16 Source # word32 :: CerealDeserializer Word32 Source # word64 :: CerealDeserializer Word64 Source # word16L :: CerealDeserializer Word16 Source # word16B :: CerealDeserializer Word16 Source # word32L :: CerealDeserializer Word32 Source # word32B :: CerealDeserializer Word32 Source # word64L :: CerealDeserializer Word64 Source # word64B :: CerealDeserializer Word64 Source # satisfy :: (Word8 -> Bool) -> CerealDeserializer Word8 Source # byte :: Word8 -> CerealDeserializer Word8 Source # notByte :: Word8 -> CerealDeserializer Word8 Source # bytes :: ByteString -> CerealDeserializer ByteString Source # skip :: Int -> CerealDeserializer () Source # ensure :: Int -> CerealDeserializer ByteString Source # ensure_ :: Int -> CerealDeserializer () Source # check :: Int -> CerealDeserializer Bool Source # take :: Int -> CerealDeserializer ByteString Source # chunk :: CerealDeserializer ByteString Source # isolate :: Int -> CerealDeserializer α -> CerealDeserializer α Source # | |||||
Alternative CerealDeserializer Source # | |||||
Defined in Data.Deserializer Methods empty :: CerealDeserializer a # (<|>) :: CerealDeserializer a -> CerealDeserializer a -> CerealDeserializer a # some :: CerealDeserializer a -> CerealDeserializer [a] # many :: CerealDeserializer a -> CerealDeserializer [a] # | |||||
Applicative CerealDeserializer Source # | |||||
Defined in Data.Deserializer Methods pure :: a -> CerealDeserializer a # (<*>) :: CerealDeserializer (a -> b) -> CerealDeserializer a -> CerealDeserializer b # liftA2 :: (a -> b -> c) -> CerealDeserializer a -> CerealDeserializer b -> CerealDeserializer c # (*>) :: CerealDeserializer a -> CerealDeserializer b -> CerealDeserializer b # (<*) :: CerealDeserializer a -> CerealDeserializer b -> CerealDeserializer a # | |||||
Functor CerealDeserializer Source # | |||||
Defined in Data.Deserializer Methods fmap :: (a -> b) -> CerealDeserializer a -> CerealDeserializer b # (<$) :: a -> CerealDeserializer b -> CerealDeserializer a # | |||||
Monad CerealDeserializer Source # | |||||
Defined in Data.Deserializer Methods (>>=) :: CerealDeserializer a -> (a -> CerealDeserializer b) -> CerealDeserializer b # (>>) :: CerealDeserializer a -> CerealDeserializer b -> CerealDeserializer b # return :: a -> CerealDeserializer a # | |||||
Parsing CerealDeserializer Source # | |||||
Defined in Data.Deserializer Methods try :: CerealDeserializer a -> CerealDeserializer a # (<?>) :: CerealDeserializer a -> String -> CerealDeserializer a # skipMany :: CerealDeserializer a -> CerealDeserializer () # skipSome :: CerealDeserializer a -> CerealDeserializer () # unexpected :: String -> CerealDeserializer a # eof :: CerealDeserializer () # notFollowedBy :: Show a => CerealDeserializer a -> CerealDeserializer () # | |||||
LookAheadParsing CerealDeserializer Source # | |||||
Defined in Data.Deserializer Methods lookAhead :: CerealDeserializer a -> CerealDeserializer a # | |||||
Generic (CerealDeserializer α) Source # | |||||
Defined in Data.Deserializer Associated Types
Methods from :: CerealDeserializer α -> Rep (CerealDeserializer α) x # to :: Rep (CerealDeserializer α) x -> CerealDeserializer α # | |||||
type Rep (CerealDeserializer α) Source # | |||||
Defined in Data.Deserializer type Rep (CerealDeserializer α) = D1 ('MetaData "CerealDeserializer" "Data.Deserializer" "data-serializer-0.3.5-63p8B2uiQqqHqt8aDVw2JD" 'True) (C1 ('MetaCons "CerealDeserializer" 'PrefixI 'True) (S1 ('MetaSel ('Just "cerealDeserializer") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Get α)))) |
Binary word parsing
word16H :: Deserializer μ => μ Word16 Source #
Deserialize an unsigned 16-bit integer in host byte order.
word32H :: Deserializer μ => μ Word32 Source #
Deserialize an unsigned 32-bit integer in host byte order.
word64H :: Deserializer μ => μ Word64 Source #
Deserialize an unsigned 64-bit integer in host byte order.
word :: Deserializer μ => μ Word Source #
Deserialize an unsigned native-sized integer in serializer default byte order.
wordL :: Deserializer μ => μ Word Source #
Deserialize an unsigned native-sized integer in little endian.
wordB :: Deserializer μ => μ Word Source #
Deserialize an unsigned native-sized integer in big endian.
wordH :: Deserializer μ => μ Word Source #
Deserialize an unsigned native-sized integer in host byte order.
int8 :: Deserializer μ => μ Int8 Source #
Deserialize a signed 8-bit integer.
int16 :: Deserializer μ => μ Int16 Source #
Deserialize a signed 16-bit integer in serializer default byte order.
int16L :: Deserializer μ => μ Int16 Source #
Deserialize a signed 16-bit integer in little endian.
int16B :: Deserializer μ => μ Int16 Source #
Deserialize a signed 16-bit integer in big endian.
int16H :: Deserializer μ => μ Int16 Source #
Deserialize a signed 16-bit integer in host byte order.
int32 :: Deserializer μ => μ Int32 Source #
Deserialize a signed 32-bit integer in serializer default byte order.
int32L :: Deserializer μ => μ Int32 Source #
Deserialize a signed 32-bit integer in little endian.
int32B :: Deserializer μ => μ Int32 Source #
Deserialize a signed 32-bit integer in big endian.
int32H :: Deserializer μ => μ Int32 Source #
Deserialize a signed 32-bit integer in host byte order.
int64 :: Deserializer μ => μ Int64 Source #
Deserialize a signed 64-bit integer in serializer default byte order.
int64L :: Deserializer μ => μ Int64 Source #
Deserialize a signed 64-bit integer in little endian.
int64B :: Deserializer μ => μ Int64 Source #
Deserialize a signed 64-bit integer in big endian.
int64H :: Deserializer μ => μ Int64 Source #
Deserialize a signed 64-bit integer in host byte order.
int :: Deserializer μ => μ Int Source #
Deserialize a signed native-sized integer in serializer default byte order.
intL :: Deserializer μ => μ Int Source #
Deserialize a signed native-sized integer in little endian.
intB :: Deserializer μ => μ Int Source #
Deserialize a signed native-sized integer in big endian.
intH :: Deserializer μ => μ Int Source #
Deserialize a signed native-sized integer in host byte order.
Parsing combinators
module Text.Parser.Combinators
module Text.Parser.LookAhead
Endian deserializers
newtype LittleEndianDeserializer (μ :: Type -> Type) α Source #
Deserializer wrapper with little endian default byte order.
Constructors
LittleEndianDeserializer | |
Fields
|
Instances
Deserializer μ => Deserializer (LittleEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods endian :: Proxy (LittleEndianDeserializer μ) -> Endian Source # word8 :: LittleEndianDeserializer μ Word8 Source # word16 :: LittleEndianDeserializer μ Word16 Source # word32 :: LittleEndianDeserializer μ Word32 Source # word64 :: LittleEndianDeserializer μ Word64 Source # word16L :: LittleEndianDeserializer μ Word16 Source # word16B :: LittleEndianDeserializer μ Word16 Source # word32L :: LittleEndianDeserializer μ Word32 Source # word32B :: LittleEndianDeserializer μ Word32 Source # word64L :: LittleEndianDeserializer μ Word64 Source # word64B :: LittleEndianDeserializer μ Word64 Source # satisfy :: (Word8 -> Bool) -> LittleEndianDeserializer μ Word8 Source # byte :: Word8 -> LittleEndianDeserializer μ Word8 Source # notByte :: Word8 -> LittleEndianDeserializer μ Word8 Source # bytes :: ByteString -> LittleEndianDeserializer μ ByteString Source # skip :: Int -> LittleEndianDeserializer μ () Source # ensure :: Int -> LittleEndianDeserializer μ ByteString Source # ensure_ :: Int -> LittleEndianDeserializer μ () Source # check :: Int -> LittleEndianDeserializer μ Bool Source # take :: Int -> LittleEndianDeserializer μ ByteString Source # chunk :: LittleEndianDeserializer μ ByteString Source # isolate :: Int -> LittleEndianDeserializer μ α -> LittleEndianDeserializer μ α Source # | |||||
Alternative μ => Alternative (LittleEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods empty :: LittleEndianDeserializer μ a # (<|>) :: LittleEndianDeserializer μ a -> LittleEndianDeserializer μ a -> LittleEndianDeserializer μ a # some :: LittleEndianDeserializer μ a -> LittleEndianDeserializer μ [a] # many :: LittleEndianDeserializer μ a -> LittleEndianDeserializer μ [a] # | |||||
Applicative μ => Applicative (LittleEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods pure :: a -> LittleEndianDeserializer μ a # (<*>) :: LittleEndianDeserializer μ (a -> b) -> LittleEndianDeserializer μ a -> LittleEndianDeserializer μ b # liftA2 :: (a -> b -> c) -> LittleEndianDeserializer μ a -> LittleEndianDeserializer μ b -> LittleEndianDeserializer μ c # (*>) :: LittleEndianDeserializer μ a -> LittleEndianDeserializer μ b -> LittleEndianDeserializer μ b # (<*) :: LittleEndianDeserializer μ a -> LittleEndianDeserializer μ b -> LittleEndianDeserializer μ a # | |||||
Functor μ => Functor (LittleEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods fmap :: (a -> b) -> LittleEndianDeserializer μ a -> LittleEndianDeserializer μ b # (<$) :: a -> LittleEndianDeserializer μ b -> LittleEndianDeserializer μ a # | |||||
Monad μ => Monad (LittleEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods (>>=) :: LittleEndianDeserializer μ a -> (a -> LittleEndianDeserializer μ b) -> LittleEndianDeserializer μ b # (>>) :: LittleEndianDeserializer μ a -> LittleEndianDeserializer μ b -> LittleEndianDeserializer μ b # return :: a -> LittleEndianDeserializer μ a # | |||||
Parsing μ => Parsing (LittleEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods try :: LittleEndianDeserializer μ a -> LittleEndianDeserializer μ a # (<?>) :: LittleEndianDeserializer μ a -> String -> LittleEndianDeserializer μ a # skipMany :: LittleEndianDeserializer μ a -> LittleEndianDeserializer μ () # skipSome :: LittleEndianDeserializer μ a -> LittleEndianDeserializer μ () # unexpected :: String -> LittleEndianDeserializer μ a # eof :: LittleEndianDeserializer μ () # notFollowedBy :: Show a => LittleEndianDeserializer μ a -> LittleEndianDeserializer μ () # | |||||
LookAheadParsing μ => LookAheadParsing (LittleEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods lookAhead :: LittleEndianDeserializer μ a -> LittleEndianDeserializer μ a # | |||||
(Typeable μ, Typeable α, Data (μ α)) => Data (LittleEndianDeserializer μ α) Source # | |||||
Defined in Data.Deserializer Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LittleEndianDeserializer μ α -> c (LittleEndianDeserializer μ α) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (LittleEndianDeserializer μ α) # toConstr :: LittleEndianDeserializer μ α -> Constr # dataTypeOf :: LittleEndianDeserializer μ α -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (LittleEndianDeserializer μ α)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (LittleEndianDeserializer μ α)) # gmapT :: (forall b. Data b => b -> b) -> LittleEndianDeserializer μ α -> LittleEndianDeserializer μ α # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LittleEndianDeserializer μ α -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LittleEndianDeserializer μ α -> r # gmapQ :: (forall d. Data d => d -> u) -> LittleEndianDeserializer μ α -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> LittleEndianDeserializer μ α -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> LittleEndianDeserializer μ α -> m (LittleEndianDeserializer μ α) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LittleEndianDeserializer μ α -> m (LittleEndianDeserializer μ α) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LittleEndianDeserializer μ α -> m (LittleEndianDeserializer μ α) # | |||||
Generic (LittleEndianDeserializer μ α) Source # | |||||
Defined in Data.Deserializer Associated Types
Methods from :: LittleEndianDeserializer μ α -> Rep (LittleEndianDeserializer μ α) x # to :: Rep (LittleEndianDeserializer μ α) x -> LittleEndianDeserializer μ α # | |||||
type Rep (LittleEndianDeserializer μ α) Source # | |||||
Defined in Data.Deserializer type Rep (LittleEndianDeserializer μ α) = D1 ('MetaData "LittleEndianDeserializer" "Data.Deserializer" "data-serializer-0.3.5-63p8B2uiQqqHqt8aDVw2JD" 'True) (C1 ('MetaCons "LittleEndianDeserializer" 'PrefixI 'True) (S1 ('MetaSel ('Just "deserializeL") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (μ α)))) |
newtype BigEndianDeserializer (μ :: Type -> Type) α Source #
Deserializer wrapper with big endian default byte order.
Constructors
BigEndianDeserializer | |
Fields
|
Instances
Deserializer μ => Deserializer (BigEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods endian :: Proxy (BigEndianDeserializer μ) -> Endian Source # word8 :: BigEndianDeserializer μ Word8 Source # word16 :: BigEndianDeserializer μ Word16 Source # word32 :: BigEndianDeserializer μ Word32 Source # word64 :: BigEndianDeserializer μ Word64 Source # word16L :: BigEndianDeserializer μ Word16 Source # word16B :: BigEndianDeserializer μ Word16 Source # word32L :: BigEndianDeserializer μ Word32 Source # word32B :: BigEndianDeserializer μ Word32 Source # word64L :: BigEndianDeserializer μ Word64 Source # word64B :: BigEndianDeserializer μ Word64 Source # satisfy :: (Word8 -> Bool) -> BigEndianDeserializer μ Word8 Source # byte :: Word8 -> BigEndianDeserializer μ Word8 Source # notByte :: Word8 -> BigEndianDeserializer μ Word8 Source # bytes :: ByteString -> BigEndianDeserializer μ ByteString Source # skip :: Int -> BigEndianDeserializer μ () Source # ensure :: Int -> BigEndianDeserializer μ ByteString Source # ensure_ :: Int -> BigEndianDeserializer μ () Source # check :: Int -> BigEndianDeserializer μ Bool Source # take :: Int -> BigEndianDeserializer μ ByteString Source # chunk :: BigEndianDeserializer μ ByteString Source # isolate :: Int -> BigEndianDeserializer μ α -> BigEndianDeserializer μ α Source # | |||||
Alternative μ => Alternative (BigEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods empty :: BigEndianDeserializer μ a # (<|>) :: BigEndianDeserializer μ a -> BigEndianDeserializer μ a -> BigEndianDeserializer μ a # some :: BigEndianDeserializer μ a -> BigEndianDeserializer μ [a] # many :: BigEndianDeserializer μ a -> BigEndianDeserializer μ [a] # | |||||
Applicative μ => Applicative (BigEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods pure :: a -> BigEndianDeserializer μ a # (<*>) :: BigEndianDeserializer μ (a -> b) -> BigEndianDeserializer μ a -> BigEndianDeserializer μ b # liftA2 :: (a -> b -> c) -> BigEndianDeserializer μ a -> BigEndianDeserializer μ b -> BigEndianDeserializer μ c # (*>) :: BigEndianDeserializer μ a -> BigEndianDeserializer μ b -> BigEndianDeserializer μ b # (<*) :: BigEndianDeserializer μ a -> BigEndianDeserializer μ b -> BigEndianDeserializer μ a # | |||||
Functor μ => Functor (BigEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods fmap :: (a -> b) -> BigEndianDeserializer μ a -> BigEndianDeserializer μ b # (<$) :: a -> BigEndianDeserializer μ b -> BigEndianDeserializer μ a # | |||||
Monad μ => Monad (BigEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods (>>=) :: BigEndianDeserializer μ a -> (a -> BigEndianDeserializer μ b) -> BigEndianDeserializer μ b # (>>) :: BigEndianDeserializer μ a -> BigEndianDeserializer μ b -> BigEndianDeserializer μ b # return :: a -> BigEndianDeserializer μ a # | |||||
Parsing μ => Parsing (BigEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods try :: BigEndianDeserializer μ a -> BigEndianDeserializer μ a # (<?>) :: BigEndianDeserializer μ a -> String -> BigEndianDeserializer μ a # skipMany :: BigEndianDeserializer μ a -> BigEndianDeserializer μ () # skipSome :: BigEndianDeserializer μ a -> BigEndianDeserializer μ () # unexpected :: String -> BigEndianDeserializer μ a # eof :: BigEndianDeserializer μ () # notFollowedBy :: Show a => BigEndianDeserializer μ a -> BigEndianDeserializer μ () # | |||||
LookAheadParsing μ => LookAheadParsing (BigEndianDeserializer μ) Source # | |||||
Defined in Data.Deserializer Methods lookAhead :: BigEndianDeserializer μ a -> BigEndianDeserializer μ a # | |||||
(Typeable μ, Typeable α, Data (μ α)) => Data (BigEndianDeserializer μ α) Source # | |||||
Defined in Data.Deserializer Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> BigEndianDeserializer μ α -> c (BigEndianDeserializer μ α) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (BigEndianDeserializer μ α) # toConstr :: BigEndianDeserializer μ α -> Constr # dataTypeOf :: BigEndianDeserializer μ α -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (BigEndianDeserializer μ α)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (BigEndianDeserializer μ α)) # gmapT :: (forall b. Data b => b -> b) -> BigEndianDeserializer μ α -> BigEndianDeserializer μ α # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BigEndianDeserializer μ α -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BigEndianDeserializer μ α -> r # gmapQ :: (forall d. Data d => d -> u) -> BigEndianDeserializer μ α -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> BigEndianDeserializer μ α -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> BigEndianDeserializer μ α -> m (BigEndianDeserializer μ α) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BigEndianDeserializer μ α -> m (BigEndianDeserializer μ α) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BigEndianDeserializer μ α -> m (BigEndianDeserializer μ α) # | |||||
Generic (BigEndianDeserializer μ α) Source # | |||||
Defined in Data.Deserializer Associated Types
Methods from :: BigEndianDeserializer μ α -> Rep (BigEndianDeserializer μ α) x # to :: Rep (BigEndianDeserializer μ α) x -> BigEndianDeserializer μ α # | |||||
type Rep (BigEndianDeserializer μ α) Source # | |||||
Defined in Data.Deserializer type Rep (BigEndianDeserializer μ α) = D1 ('MetaData "BigEndianDeserializer" "Data.Deserializer" "data-serializer-0.3.5-63p8B2uiQqqHqt8aDVw2JD" 'True) (C1 ('MetaCons "BigEndianDeserializer" 'PrefixI 'True) (S1 ('MetaSel ('Just "deserializeB") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (μ α)))) |
deserializeIn :: Deserializer μ => Endian -> (forall (μ' :: Type -> Type). Deserializer μ' => μ' α) -> μ α Source #
Force the default byte order.
deserializeH :: Deserializer μ => (forall (μ' :: Type -> Type). Deserializer μ' => μ' α) -> μ α Source #
Force the default byte order to be the host byte order.
Default deserializer
data Deserialized α Source #
Deserialization result.
Constructors
Deserialized α | |
Malformed [String] String |
isDeserialized :: Deserialized α -> Bool Source #
Map Deserialized
to True
and Malformed
to False
.
isMalformed :: Deserialized α -> Bool Source #
Map Deserialized
to False
and Malformed
to True
.
maybeDeserialized :: Deserialized α -> Maybe α Source #
Map Deserialized
values to Just
and Malformed
to Nothing
.
defaultDeserializer :: (forall (μ :: Type -> Type). Deserializer μ => μ α) -> ByteString -> Deserialized α Source #
Deserialize a ByteString
via the default deserializer.
Deserializable types
class Deserializable α where Source #
Methods
get :: Deserializer μ => μ α Source #
Instances
Deserializable ByteString Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ ByteString Source # | |
Deserializable ShortByteString Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ ShortByteString Source # | |
Deserializable Int16 Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ Int16 Source # | |
Deserializable Int32 Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ Int32 Source # | |
Deserializable Int64 Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ Int64 Source # | |
Deserializable Int8 Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ Int8 Source # | |
Deserializable Word16 Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ Word16 Source # | |
Deserializable Word32 Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ Word32 Source # | |
Deserializable Word64 Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ Word64 Source # | |
Deserializable Word8 Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ Word8 Source # | |
Deserializable Bool Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ Bool Source # | |
Deserializable Int Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ Int Source # | |
Deserializable Word Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ Word Source # | |
Deserializable α => Deserializable (Maybe α) Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ (Maybe α) Source # | |
(Deserializable α, Deserializable β) => Deserializable (Either α β) Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ (Either α β) Source # | |
(Deserializable α, Deserializable β) => Deserializable (α, β) Source # | |
Defined in Data.Deserializer Methods get :: Deserializer μ => μ (α, β) Source # |
getIn :: (Deserializer μ, Deserializable α) => Endian -> μ α Source #
Deserialize a value using the provided default byte order.
getL :: (Deserializer μ, Deserializable α) => μ α Source #
Deserialize a value using little endian as the default byte order.
getB :: (Deserializer μ, Deserializable α) => μ α Source #
Deserialize a value using big endian as the default byte order.
getH :: (Deserializer μ, Deserializable α) => μ α Source #
Deserialize a value using host byte order as the default byte order.
deserializeBytes :: Deserializable α => [Word8] -> Deserialized α Source #
Deserialize a value of type α
from a list of bytes via
the defaultDeserializer
.
deserializeBytesAs :: Deserializable α => p α -> [Word8] -> Deserialized α Source #
Provide a hint for the type system when using deserializeBytes
.
deserializeByteString :: Deserializable α => ByteString -> Deserialized α Source #
Deserialize a value of type α
from a ByteString
via
the defaultDeserializer
.
deserializeByteStringAs :: Deserializable α => p α -> ByteString -> Deserialized α Source #
Provide a hint for the type system when using deserializeByteString
.
deserializeLazyByteString :: Deserializable α => ByteString -> Deserialized α Source #
Deserialize a value of type α
from a ByteString
via
the defaultDeserializer
.
deserializeLazyByteStringAs :: Deserializable α => p α -> ByteString -> Deserialized α Source #
Provide a hint for the type system when using
deserializeLazyByteString
.
fromBytes :: Deserializable α => [Word8] -> Maybe α Source #
A shorthand for
.maybeDeserialized
. deserializeBytes
fromBytesAs :: Deserializable α => p α -> [Word8] -> Maybe α Source #
Provide a hint for the type system when using fromBytes
fromByteString :: Deserializable α => ByteString -> Maybe α Source #
A shorthand for
.maybeDeserialized
. deserializeByteString
fromByteStringAs :: Deserializable α => p α -> ByteString -> Maybe α Source #
Provide a hint for the type system when using fromByteString
fromLazyByteString :: Deserializable α => ByteString -> Maybe α Source #
A shorthand for
.maybeDeserialized
. deserializeLazyByteString
fromLazyByteStringAs :: Deserializable α => p α -> ByteString -> Maybe α Source #
Provide a hint for the type system when using fromLazyByteString
class RestDeserializable α where Source #
Deserializable type. getRest
must consume all the remaining input
or fail.
Methods
getRest :: Deserializer μ => μ α Source #
Instances
RestDeserializable Builder Source # | |
Defined in Data.Deserializer Methods getRest :: Deserializer μ => μ Builder Source # | |
RestDeserializable ByteString Source # | |
Defined in Data.Deserializer Methods getRest :: Deserializer μ => μ ByteString Source # | |
RestDeserializable ByteString Source # | |
Defined in Data.Deserializer Methods getRest :: Deserializer μ => μ ByteString Source # | |
RestDeserializable ShortByteString Source # | |
Defined in Data.Deserializer Methods getRest :: Deserializer μ => μ ShortByteString Source # | |
Deserializable α => RestDeserializable [α] Source # | |
Defined in Data.Deserializer Methods getRest :: Deserializer μ => μ [α] Source # | |
(RestDeserializable α, RestDeserializable β) => RestDeserializable (Either α β) Source # | |
Defined in Data.Deserializer Methods getRest :: Deserializer μ => μ (Either α β) Source # | |
(Deserializable α, RestDeserializable β) => RestDeserializable (α, β) Source # | |
Defined in Data.Deserializer Methods getRest :: Deserializer μ => μ (α, β) Source # |