Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Efficient type-level bytestring parsing.
One may implement this using the type-level serializing, but mirroring it for parsing does less work and allocation.
Synopsis
- class ParseReifyBytesW64 (ns :: [Natural]) where
- parseReifyBytesW64 :: ParserT st e ()
- class ParseReifyBytesW32 (ns :: [Natural]) where
- parseReifyBytesW32 :: ParserT st e ()
- class ParseReifyBytesW16 (ns :: [Natural]) where
- parseReifyBytesW16 :: ParserT st e ()
- class ParseReifyBytesW8 (ns :: [Natural]) where
- parseReifyBytesW8 :: ParserT st e ()
Documentation
class ParseReifyBytesW64 (ns :: [Natural]) where Source #
parseReifyBytesW64 :: ParserT st e () Source #
Instances
ParseReifyBytesW32 ns => ParseReifyBytesW64 ns Source # | Try to group |
Defined in Bytezap.Parser.Struct.TypeLits.Bytes parseReifyBytesW64 :: forall (st :: ZeroBitType) e. ParserT st e () Source # | |
(ReifyW8 n1, ReifyW8 n2, ReifyW8 n3, ReifyW8 n4, ReifyW8 n5, ReifyW8 n6, ReifyW8 n7, ReifyW8 n8, ParseReifyBytesW64 ns) => ParseReifyBytesW64 (n1 ': (n2 ': (n3 ': (n4 ': (n5 ': (n6 ': (n7 ': (n8 ': ns)))))))) Source # | Enough bytes to make a |
Defined in Bytezap.Parser.Struct.TypeLits.Bytes parseReifyBytesW64 :: forall (st :: ZeroBitType) e. ParserT st e () Source # |
class ParseReifyBytesW32 (ns :: [Natural]) where Source #
Serialize a type-level bytestring, largest grouping Word32
.
parseReifyBytesW32 :: ParserT st e () Source #
Instances
ParseReifyBytesW16 ns => ParseReifyBytesW32 ns Source # | Try to group |
Defined in Bytezap.Parser.Struct.TypeLits.Bytes parseReifyBytesW32 :: forall (st :: ZeroBitType) e. ParserT st e () Source # | |
(ReifyW8 n1, ReifyW8 n2, ReifyW8 n3, ReifyW8 n4, ParseReifyBytesW32 ns) => ParseReifyBytesW32 (n1 ': (n2 ': (n3 ': (n4 ': ns)))) Source # | Enough bytes to make a |
Defined in Bytezap.Parser.Struct.TypeLits.Bytes parseReifyBytesW32 :: forall (st :: ZeroBitType) e. ParserT st e () Source # |
class ParseReifyBytesW16 (ns :: [Natural]) where Source #
Serialize a type-level bytestring, largest grouping Word16
.
parseReifyBytesW16 :: ParserT st e () Source #
Instances
ParseReifyBytesW8 ns => ParseReifyBytesW16 ns Source # | Reify byte-by-byte next. |
Defined in Bytezap.Parser.Struct.TypeLits.Bytes parseReifyBytesW16 :: forall (st :: ZeroBitType) e. ParserT st e () Source # | |
(ReifyW8 n1, ReifyW8 n2, ParseReifyBytesW16 ns) => ParseReifyBytesW16 (n1 ': (n2 ': ns)) Source # | Enough bytes to make a |
Defined in Bytezap.Parser.Struct.TypeLits.Bytes parseReifyBytesW16 :: forall (st :: ZeroBitType) e. ParserT st e () Source # |
class ParseReifyBytesW8 (ns :: [Natural]) where Source #
Serialize a type-level bytestring, byte-by-byte.
parseReifyBytesW8 :: ParserT st e () Source #
Instances
ParseReifyBytesW8 ('[] :: [Natural]) Source # | End of the line. |
Defined in Bytezap.Parser.Struct.TypeLits.Bytes parseReifyBytesW8 :: forall (st :: ZeroBitType) e. ParserT st e () Source # | |
(ReifyW8 n1, ParseReifyBytesW8 ns) => ParseReifyBytesW8 (n1 ': ns) Source # | Reify the next byte. |
Defined in Bytezap.Parser.Struct.TypeLits.Bytes parseReifyBytesW8 :: forall (st :: ZeroBitType) e. ParserT st e () Source # |