Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- class Get a where
- type Getter a = Parser E a
- newtype ViaGetC a = ViaGetC {
- unViaGetC :: a
- runGet :: Get a => ByteString -> Either E (a, ByteString)
- runGetter :: Getter a -> ByteString -> Either E (a, ByteString)
- getWrapGeneric :: Get a => String -> (E -> EGeneric E) -> Getter a
- getGenericNonSum :: forall a. (Generic a, GTraverseNonSum Get (Rep a), GAssertNotVoid a, GAssertNotSum a) => Getter a
- getGenericSum :: forall pt a. (Generic a, GTraverseSum Get (Rep a), Get pt, GAssertNotVoid a, GAssertSum a) => PfxTagCfg pt -> Getter a
- eBase :: EBase -> Getter a
- getEBase :: Getter a -> EBase -> Getter a
- bzToFp :: forall a e st. KnownNat (CBLen a) => ParserT st e a -> ParserT st e a
- fpToBz :: ParserT st e a -> Int# -> (a -> Int# -> ParserT st e r) -> ParserT st e r
- getWrapGeneric' :: Getter a -> String -> (E -> EGeneric E) -> Getter a
- getPrim :: forall a. Prim' a => Getter a
- module Binrep.Get.Error
Documentation
Instances
(TypeError ENoEmpty :: Constraint) => Get Void Source # | |
Get Int8 Source # | 8-bit (1-byte) words do not require byte order in order to precisely define their representation. |
Get Word8 Source # | 8-bit (1-byte) words do not require byte order in order to precisely define their representation. |
Get ByteString Source # | Return the rest of the input. A plain unannotated bytestring isn't very useful -- you'll usually want to null-terminate or length-prefix it. Note that this _does_ perform work: we make a new bytestring so we don't rely on the input bytestring. To use the input bytestring directly, see Binrep.Type.Thin. |
Defined in Binrep.Get get :: Getter ByteString Source # | |
Get () Source # | Unit type parses nothing. |
Defined in Binrep.Get | |
Get a => Get (Identity a) Source # | |
(Generic a, GTraverseNonSum Get (Rep a), GAssertNotVoid a, GAssertNotSum a) => Get (GenericallyNonSum a) Source # | |
Defined in Binrep.Get get :: Getter (GenericallyNonSum a) Source # | |
Prim' a => Get (ViaPrim a) Source # | |
(GetC a, KnownNat (CBLen a)) => Get (ViaGetC a) Source # | |
Get a => Get (NullTerminated a) Source # | We may parse any null-terminated data using a special flatparse combinator. |
Defined in Binrep.Type.NullTerminated get :: Getter (NullTerminated a) Source # | |
Get (Thin ByteString) Source # | |
Defined in Binrep.Type.Thin | |
Get a => Get [a] Source # | Parse elements until EOF. Sometimes used at the "top" of binary formats. |
Defined in Binrep.Get | |
(TypeError ENoSum :: Constraint) => Get (Either a b) Source # | |
(bs ~ MagicBytes a, ParseReifyBytesW64 bs, ReifyBytesW64 bs, KnownNat (Length bs)) => Get (Magic a) Source # | |
(Get a, KnownNat n) => Get (NullPadded n a) Source # | |
Defined in Binrep.Type.NullPadded get :: Getter (NullPadded n a) Source # | |
(Prefix pfx, GetSize a, Get pfx) => Get (SizePrefixed pfx a) Source # | |
Defined in Binrep.Type.Prefix.Size get :: Getter (SizePrefixed pfx a) Source # | |
(Get a, KnownNat n) => Get (Sized n a) Source # | |
(Prim' a, ByteSwap a) => Get (ByteOrdered 'BigEndian a) Source # | |
Defined in Binrep.Get | |
(Prim' a, ByteSwap a) => Get (ByteOrdered 'LittleEndian a) Source # | |
Defined in Binrep.Get get :: Getter (ByteOrdered 'LittleEndian a) Source # | |
Get (ByteOrdered end Int8) Source # | Byte order is irrelevant for 8-bit (1-byte) words. |
Defined in Binrep.Get | |
Get (ByteOrdered end Word8) Source # | Byte order is irrelevant for 8-bit (1-byte) words. |
Defined in Binrep.Get | |
(Get l, Get r) => Get (l, r) Source # | Parse tuples left-to-right. |
Defined in Binrep.Get | |
GenericTraverse Get Source # | |
Defined in Binrep.Get type GenericTraverseF Get :: Type -> Type # type GenericTraverseC Get a # genericTraverseAction :: GenericTraverseC Get a => String -> String -> Maybe String -> Natural -> GenericTraverseF Get a # genericTraverseV1 :: forall {k1} (p :: k1). GenericTraverseF Get (V1 p) # | |
GenericTraverseSum Get Source # | |
Defined in Binrep.Get genericTraverseSumPfxTagAction :: GenericTraverseC Get pt => String -> GenericTraverseF Get pt # genericTraverseSumNoMatchingCstrAction :: String -> [String] -> Text -> GenericTraverseF Get a # | |
Get (Refined pr (Refined pl a)) => Get (Refined (And pl pr) a) Source # | |
(Prefix pfx, GetCount f, Get pfx, Get a) => Get (CountPrefixed pfx f a) Source # | |
Defined in Binrep.Type.Prefix.Count get :: Getter (CountPrefixed pfx f a) Source # | |
type GenericTraverseF Get Source # | |
Defined in Binrep.Get | |
type GenericTraverseC Get a Source # | |
Defined in Binrep.Get |
runGet :: Get a => ByteString -> Either E (a, ByteString) Source #
runGetter :: Getter a -> ByteString -> Either E (a, ByteString) Source #
getWrapGeneric :: Get a => String -> (E -> EGeneric E) -> Getter a Source #
Parse. On parse error, coat it in a generic context layer.
getGenericNonSum :: forall a. (Generic a, GTraverseNonSum Get (Rep a), GAssertNotVoid a, GAssertNotSum a) => Getter a Source #
getGenericSum :: forall pt a. (Generic a, GTraverseSum Get (Rep a), Get pt, GAssertNotVoid a, GAssertSum a) => PfxTagCfg pt -> Getter a Source #
bzToFp :: forall a e st. KnownNat (CBLen a) => ParserT st e a -> ParserT st e a Source #
Convert a bytezap struct parser to a flatparse parser.
module Binrep.Get.Error