Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Bps (s :: Strength) i a = Bps {
- bpsMagic :: SW s (Magic "BPS1")
- bpsSourceSize :: SW s (BpsVarint i)
- bpsTargetSize :: SW s (BpsVarint i)
- bpsMetadata :: BpsMeta a
- bpsCommands :: [BpsCommand]
- bpsFooter :: BpsFooter s
- type BpsVarint = Varnat 'Bijective 'OffContinues 'LE
- data BpsMeta a
- data BpsCommand
- data BpsFooter (s :: Strength) = BpsFooter {
- bpsFooterSourceChecksum :: SW s (Sized 4 ByteString)
- bpsFooterTargetChecksum :: SW s (Sized 4 ByteString)
- bpsFooterPatchChecksum :: SW s (Sized 4 ByteString)
Documentation
data Bps (s :: Strength) i a Source #
TODO
* can't do generic because BPS doesn't store command list length, instead
requiring a dynamic check on every command
* wonder if this is better or more efficient that using a BpsVarint
for
the length, same as metadata, or storing the end size as a BpsVarint
.
* maybe two diff types of varint, +ve and -ve. unclear from spec
* perhaps store the varint type(s) as a type var, to allow switching
between efficient machine ints and safe Integer
, Natural
!
Bps | |
|
data BpsCommand Source #
data BpsFooter (s :: Strength) Source #
BpsFooter | |
|