packages feed

describe 0.3.0.0 → 0.3.0.1

raw patch · 8 files changed

+37/−1 lines, 8 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for describe +##0.3.0.1 -- 2020-01-09++* Added unexposed combinator modules+ ##0.3.0.0 -- 2020-01-09  * Reorganized module structure
describe.cabal view
@@ -3,7 +3,7 @@ --   For further documentation, see http://haskell.org/cabal/users-guide/  name:                describe-version:             0.3.0.0+version:             0.3.0.1 synopsis:            Combinators for describing binary data structures description:         Combinators for describing binary data structures, which eliminate the boilerplate of having to write isomorphic Get and Put instances. Please see the Github page for examples. homepage:            https://github.com/riugabachi/describe@@ -60,6 +60,8 @@                        Data.Serialize.Describe.Combinators.FList,                        Data.Serialize.Describe.Combinators.Const,                        Data.Serialize.Describe.Combinators.Isolate,+                       Data.Serialize.Describe.Combinators.Byte,+                       Data.Serialize.Describe.Combinators.Remaining,                        Data.Serialize.Describe.Combinators.ByteEnum,                        Data.Serialize.Describe.Class   hs-source-dirs:      src
+ src/Data/Serialize/Describe/Combinators/Byte.hs view
@@ -0,0 +1,12 @@+module Data.Serialize.Describe.Combinators.Byte where++import Data.Word+import Data.Int+import Data.Serialize.Describe.Descriptor+import Data.Serialize.Describe.Class++w8 :: Integral i => (s -> i) -> Descriptor s i+w8 f = fromIntegral <$> describe @Word8 (fromIntegral . f)++i8 :: Integral i => (s -> i) -> Descriptor s i+i8 f = fromIntegral <$> describe @Int8 (fromIntegral . f)
src/Data/Serialize/Describe/Combinators/Const.hs view
@@ -4,6 +4,7 @@ import Data.Serialize.Describe import Data.Proxy +-- | A type level wrapper around the equivalent of the @pure . const@ descriptor. data Const (n :: Nat) t = Const  instance KnownNat n => Show (Const n t) where
src/Data/Serialize/Describe/Combinators/FList.hs view
@@ -7,6 +7,7 @@ import Data.Serialize.Describe.Combinators.Const import Control.Monad +-- | A type level wrapper around a fixed-length list combinator, with similar semantics to @FText@. The list element must be @Nullable@, meaning that it must have default value that can be used for padding the list if need be. newtype FList (n :: Nat) a    = FList { unwrapFList :: [a] }   deriving (Show) via [a]
src/Data/Serialize/Describe/Combinators/Isolate.hs view
@@ -3,5 +3,6 @@ import qualified Data.Serialize.Get as G import Data.Serialize.Describe.Descriptor +-- | Wrapper around @isolate@ from Data.Serialize.Get isolate :: Int -> Descriptor s a -> Descriptor s a isolate amt desc = Descriptor (G.isolate amt $ unwrapGet desc, flip unwrapPut desc)
src/Data/Serialize/Describe/Combinators/LPList.hs view
@@ -3,6 +3,7 @@ import Data.Serialize.Describe import Control.Monad +-- | A type level wrapper around a length-prefixed list combinator. The parameter @t@ is the integral descriptor to encode the length in. newtype LPList t a    = LPList { unwrapLPList :: [a] }   deriving (Show) via [a]
+ src/Data/Serialize/Describe/Combinators/Remaining.hs view
@@ -0,0 +1,14 @@+module Data.Serialize.Describe.Combinators.Remaining where++import Data.ByteString+import qualified Data.Serialize.Get as G+import qualified Data.Serialize.Put as P+import Data.Serialize.Describe.Descriptor+import Data.Serialize.Describe.Class++-- | A  'Remaining' represents the rest of the buffer. Upon serialization, the entire wrapped ByteString will be written.+newtype Remaining = Remaining { unwrapRemaining :: ByteString }++instance Describe Remaining where+  describe f = Descriptor (fmap Remaining . G.getByteString =<< G.remaining, \s -> P.putByteString (unwrapRemaining (f s)) >> pure (f s))+