packages feed

png-chunk-yaftee 0.1.0.0 → 0.1.0.1

raw patch · 2 files changed

+25/−18 lines, 2 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Control.Monad.Yaftee.Pipe.Png.Chunk: type DecodeMembers (nm :: Symbol) (es :: [Type -> Type -> Type -> Type -> Type -> Type -> Type -> Type]) = (Members nm es, Member Named nm C es)
+ Control.Monad.Yaftee.Pipe.Png.Chunk: type EncodeMembers (nm :: Symbol) (es :: [Type -> Type -> Type -> Type -> Type -> Type -> Type -> Type]) = Member Named nm C es
- Control.Monad.Yaftee.Pipe.Png.Chunk: decode :: forall (es :: [(Type -> Type -> Type -> Type) -> Type -> Type -> Type -> Type]). forall (nm :: Symbol) -> (Member P es, Members nm es, Member (Named nm C) es, Member (E String) es) => Int -> E es ByteString C ()
+ Control.Monad.Yaftee.Pipe.Png.Chunk: decode :: forall (es :: [(Type -> Type -> Type -> Type) -> Type -> Type -> Type -> Type]). forall (nm :: Symbol) -> (Member P es, DecodeMembers nm es, Member (E String) es) => Int -> E es ByteString C ()
- Control.Monad.Yaftee.Pipe.Png.Chunk: hDecode :: forall (es :: [(Type -> Type -> Type -> Type) -> Type -> Type -> Type -> Type]). forall (nm :: Symbol) -> (Member P es, Members nm es, Member (Named nm C) es, Member (E String) es, Base I es) => Handle -> Int -> Int -> E es ByteString C ()
+ Control.Monad.Yaftee.Pipe.Png.Chunk: hDecode :: forall (es :: [(Type -> Type -> Type -> Type) -> Type -> Type -> Type -> Type]). forall (nm :: Symbol) -> (Member P es, DecodeMembers nm es, Member (E String) es, Base I es) => Handle -> Int -> Int -> E es ByteString C ()
- Control.Monad.Yaftee.Pipe.Png.Chunk: type EncodeStates (nm :: Symbol) = Named nm C ': States nm
+ Control.Monad.Yaftee.Pipe.Png.Chunk: type EncodeStates (nm :: Symbol) = '[Named nm C]

Files

png-chunk-yaftee.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           png-chunk-yaftee-version:        0.1.0.0+version:        0.1.0.1 synopsis:       PNG's chunk codec on Yaftee description:    Please see the README on GitHub at <https://github.com/YoshikuniJujo/png-chunk-yaftee#readme> category:       Codec,Graphics,Image
src/Control/Monad/Yaftee/Pipe/Png/Chunk.hs view
@@ -3,7 +3,7 @@ {-# LANGUAGE ScopedTypeVariables, TypeApplications #-} {-# LANGUAGE RequiredTypeArguments #-} {-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DataKinds, ConstraintKinds #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE FlexibleContexts #-} {-# OPTIONS_GHC -Wall -fno-warn-tabs #-}@@ -16,11 +16,11 @@  	-- * DECODE -	decode, hDecode, decodeRun_, DecodeStates,+	decodeRun_, DecodeStates, decode, hDecode, DecodeMembers,  	-- * ENCODE -	encode, hEncode, encodeRun_, EncodeStates+	encodeRun_, EncodeStates, encode, hEncode, EncodeMembers  	) where @@ -53,10 +53,17 @@  import Numeric +decodeRun_ ::+	F.Loose (U.U es) =>+	Eff.E (DecodeStates nm `Append` es) i o r -> Eff.E es i o ()+decodeRun_ = void . (`State.runN` Crc32.initial) +type DecodeStates nm = '[State.Named nm Crc32.C]++ decode :: forall nm -> (-	U.Member Pipe.P es, OnDemand.Members nm es,-	U.Member (State.Named nm Crc32.C) es, U.Member (Except.E String) es ) =>+	U.Member Pipe.P es, DecodeMembers nm es,+	U.Member (Except.E String) es ) => 	Int -> Eff.E es BSF.ByteString C () decode nm n = void $ OnDemand.onDemand nm Pipe.=$= PipeCrc32.crc32 nm Pipe.=$= do 	State.putN nm $ OnDemand.RequestBytes 8@@ -66,15 +73,18 @@ 	chunks nm n  hDecode :: forall nm -> (-	U.Member Pipe.P es, OnDemand.Members nm es,-	U.Member (State.Named nm Crc32.C) es, U.Member (Except.E String) es,-	U.Base IO.I es ) =>+	U.Member Pipe.P es, DecodeMembers nm es,+	U.Member (Except.E String) es, U.Base IO.I es ) => 	Handle -> Int -> Int -> Eff.E es BSF.ByteString C () hDecode nm h n n' = void $ 	PipeBS.hGet n h Pipe.=$= 	PipeT.convert BSF.fromStrict Pipe.=$= 	decode nm n' +type DecodeMembers nm es = (+	OnDemand.Members nm es,+	U.Member (State.Named nm Crc32.C) es )+ chunks :: forall nm -> ( 	U.Member Pipe.P es, OnDemand.Members nm es, 	U.Member (State.Named nm Crc32.C) es, U.Member (Except.E String) es ) =>@@ -113,13 +123,6 @@ 		0 -> [] 		m | n < m -> n : go (m - n) | otherwise -> [m] -decodeRun_ ::-	F.Loose (U.U es) =>-	Eff.E (DecodeStates nm `Append` es) i o r -> Eff.E es i o ()-decodeRun_ = void . (`State.runN` Crc32.initial)--type DecodeStates nm = '[State.Named nm Crc32.C]- data C	= Begin Int BSF.ByteString 	| Body BSF.ByteString | End 	| EndOfTheWorld@@ -183,10 +186,14 @@ 	Pipe.yield . BSF.fromBitsBE' $ Crc32.toWord c 	pure $ cn /= "IEND" +type EncodeMembers nm es = (+	U.Member (State.Named nm Crc32.C) es+	)+ encodeRun_ :: forall nm es i o r . 	F.Loose (U.U es) => 	Eff.E (EncodeStates nm `Append` es) i o r -> 	Eff.E es i o ()-encodeRun_ = void . OnDemand.run @nm . PipeCrc32.run @nm+encodeRun_ = void . PipeCrc32.run @nm -type EncodeStates nm = State.Named nm Crc32.C ': OnDemand.States nm+type EncodeStates nm = '[State.Named nm Crc32.C]