bytepatch-0.4.1: Patch byte-representable data in a bytestream
Safe HaskellSafe-Inferred
LanguageGHC2021

StreamPatch.Simple

Description

TODO remove ASAP. figure out Aeson with Vinyl

Synopsis

Documentation

data MultiPatch s (v :: Via) a Source #

Instances

Instances details
Functor (MultiPatch s ('ViaDigest h)) Source # 
Instance details

Defined in StreamPatch.Simple

Methods

fmap :: (a -> b) -> MultiPatch s ('ViaDigest h) a -> MultiPatch s ('ViaDigest h) b #

(<$) :: a -> MultiPatch s ('ViaDigest h) b -> MultiPatch s ('ViaDigest h) a #

Functor (MultiPatch s ('ViaEq ec)) Source # 
Instance details

Defined in StreamPatch.Simple

Methods

fmap :: (a -> b) -> MultiPatch s ('ViaEq ec) a -> MultiPatch s ('ViaEq ec) b #

(<$) :: a -> MultiPatch s ('ViaEq ec) b -> MultiPatch s ('ViaEq ec) a #

(FromJSON (CompareRep v a), FromJSON a, FromJSON s) => FromJSON (MultiPatch s v a) Source # 
Instance details

Defined in StreamPatch.Simple

(ToJSON (CompareRep v a), ToJSON a, ToJSON s) => ToJSON (MultiPatch s v a) Source # 
Instance details

Defined in StreamPatch.Simple

Generic (MultiPatch s v a) Source # 
Instance details

Defined in StreamPatch.Simple

Associated Types

type Rep (MultiPatch s v a) :: Type -> Type #

Methods

from :: MultiPatch s v a -> Rep (MultiPatch s v a) x #

to :: Rep (MultiPatch s v a) x -> MultiPatch s v a #

(Show a, Show s, Show (CompareRep v a)) => Show (MultiPatch s v a) Source # 
Instance details

Defined in StreamPatch.Simple

Methods

showsPrec :: Int -> MultiPatch s v a -> ShowS #

show :: MultiPatch s v a -> String #

showList :: [MultiPatch s v a] -> ShowS #

(Eq a, Eq s, Eq (CompareRep v a)) => Eq (MultiPatch s v a) Source # 
Instance details

Defined in StreamPatch.Simple

Methods

(==) :: MultiPatch s v a -> MultiPatch s v a -> Bool #

(/=) :: MultiPatch s v a -> MultiPatch s v a -> Bool #

type Rep (MultiPatch s v a) Source # 
Instance details

Defined in StreamPatch.Simple

data Aligned p Source #

Constructors

Aligned 

Instances

Instances details
FromJSON p => FromJSON (Aligned p) Source # 
Instance details

Defined in StreamPatch.Simple

ToJSON p => ToJSON (Aligned p) Source # 
Instance details

Defined in StreamPatch.Simple

Generic (Aligned p) Source # 
Instance details

Defined in StreamPatch.Simple

Associated Types

type Rep (Aligned p) :: Type -> Type #

Methods

from :: Aligned p -> Rep (Aligned p) x #

to :: Rep (Aligned p) x -> Aligned p #

Show p => Show (Aligned p) Source # 
Instance details

Defined in StreamPatch.Simple

Methods

showsPrec :: Int -> Aligned p -> ShowS #

show :: Aligned p -> String #

showList :: [Aligned p] -> ShowS #

Eq p => Eq (Aligned p) Source # 
Instance details

Defined in StreamPatch.Simple

Methods

(==) :: Aligned p -> Aligned p -> Bool #

(/=) :: Aligned p -> Aligned p -> Bool #

type Rep (Aligned p) Source # 
Instance details

Defined in StreamPatch.Simple

type Rep (Aligned p) = D1 ('MetaData "Aligned" "StreamPatch.Simple" "bytepatch-0.4.1-inplace" 'False) (C1 ('MetaCons "Aligned" 'PrefixI 'True) (S1 ('MetaSel ('Just "alignedAlign") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "alignedPatches") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [p])))

convert :: (MultiPatch s v a -> Rec (Flap a) fs) -> MultiPatch s v a -> Patch s fs a Source #

convertBin :: forall s a v. MultiPatch s v a -> Patch s '[Const MetaPrep, Meta v, Meta] a Source #

convertEmpty :: forall s a v. MultiPatch s v a -> Patch s '[] a Source #

align :: forall st a ss rs is i r. (r ~ Const (Meta st), Num st, Eq st, rs ~ RDelete r ss, RElem r ss i, RSubset rs ss is) => Aligned (Patch Integer ss a) -> Either (Error st) [Patch st rs a] Source #

cmBin :: MultiPatch s c a -> Rec (Flap a) '[Meta] Source #

cmCompare :: MultiPatch s v a -> Rec (Flap a) '[Meta v] Source #

cm :: f a -> Rec (Flap a) '[f] Source #

metaWrap1 :: f a -> HFunctorList '[f] a Source #

Convenience function to wrap a single meta into an HFunctorList.

metaEmpty :: HFunctorList '[] a Source #

Convenience function for the empty HFunctorList.

convertBackBin :: forall v s a. Patch s '[Meta v, Meta] a -> MultiPatch s v a Source #