module Haskpatch.Format.Bps where
import Binrep.Type.Magic
import Binrep.Type.Sized
import Binrep.Type.Varint
import Binrep.Type.Common
import Strongweak
import Data.ByteString qualified as B
data Bps (s :: Strength) i a = Bps
{ forall {k} (s :: Strength) i (a :: k).
Bps s i a -> SW s (Magic "BPS1")
bpsMagic :: SW s (Magic "BPS1")
, forall {k} (s :: Strength) i (a :: k).
Bps s i a -> SW s (BpsVarint i)
bpsSourceSize :: SW s (BpsVarint i)
, forall {k} (s :: Strength) i (a :: k).
Bps s i a -> SW s (BpsVarint i)
bpsTargetSize :: SW s (BpsVarint i)
, forall {k} (s :: Strength) i (a :: k). Bps s i a -> BpsMeta a
bpsMetadata :: BpsMeta a
, forall {k} (s :: Strength) i (a :: k). Bps s i a -> [BpsCommand]
bpsCommands :: [BpsCommand]
, :: BpsFooter s
}
type BpsVarint = Varnat 'Bijective 'OffContinues 'LE
data BpsMeta a
data BpsCommand
= BpsCommandSourceRead
| BpsCommandTargetRead
| BpsCommandSourceCopy
| BpsCommandTargetCopy
data (s :: Strength) =
{ :: SW s (Sized 4 B.ByteString)
, :: SW s (Sized 4 B.ByteString)
, :: SW s (Sized 4 B.ByteString)
}