packages feed

proto-lens 0.6.0.0 → 0.7.0.0

raw patch · 4 files changed

+54/−5 lines, 4 filesdep ~basedep ~ghc-primnew-uploaderPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base, ghc-prim

API changes (from Hackage documentation)

+ Data.ProtoLens.Encoding.Wire: buildMessageSet :: FieldSet -> Builder
+ Data.ProtoLens.Encoding.Wire: parseMessageSetTaggedValueFromWire :: Word64 -> Parser TaggedValue
+ Data.ProtoLens.Message: packedFileDescriptor :: Message msg => Proxy msg -> ByteString
+ Data.ProtoLens.Message: packedMessageDescriptor :: Message msg => Proxy msg -> ByteString

Files

Changelog.md view
@@ -1,5 +1,14 @@ # Changelog for `proto-lens` +## v0.7.0.0+- Support GHC 8.10.+- Add a method to `Data.ProtoLens.Message` for getting the `DescriptorProto`+  of a given message.  For a simpler API, see `Data.ProtoLens.Descriptor`+  from `proto-lens-protobuf-types`.+- Bump ghc-source-gen to version 0.4.0.0.+- Bump upper bound to allow base-4.14.+- Bump upper bound to allow ghc-prim-0.6.+ ## v0.6.0.0  ### Breaking Changes
proto-lens.cabal view
@@ -1,13 +1,13 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.31.2.+-- This file has been generated from package.yaml by hpack version 0.33.0. -- -- see: https://github.com/sol/hpack ----- hash: 5006405422ef969b41707de8219c7bbf95f72fb7bb41c12a2f22d30086de9113+-- hash: d71629464ee51493ce31ad480ec5872af89ba3c917588b69a61484409a22896c  name:           proto-lens-version:        0.6.0.0+version:        0.7.0.0 synopsis:       A lens-based implementation of protocol buffers in Haskell. description:    The proto-lens library provides an API for protocol buffers using modern Haskell language and library patterns.  Specifically, it provides:                 .@@ -60,11 +60,11 @@   hs-source-dirs:       src   build-depends:-      base >=4.10 && <4.14+      base >=4.10 && <4.15     , bytestring ==0.10.*     , containers >=0.5 && <0.7     , deepseq ==1.4.*-    , ghc-prim >=0.4 && <0.6+    , ghc-prim >=0.4 && <0.7     , lens-family >=1.2 && <2.1     , parsec ==3.1.*     , pretty ==1.1.*
src/Data/ProtoLens/Encoding/Wire.hs view
@@ -16,7 +16,9 @@     , joinTypeAndTag     , parseFieldSet     , buildFieldSet+    , buildMessageSet     , parseTaggedValueFromWire+    , parseMessageSetTaggedValueFromWire     ) where  import Control.DeepSeq (NFData(..))@@ -63,6 +65,15 @@     putVarInt (joinTypeAndTag tag (wireValueToInt wv))     <> buildWireValue wv +-- builds in legacy MessageSet format.+-- See https://github.com/protocolbuffers/protobuf/blob/dec4939439d9ca2adf2bb14edccf876c2587faf2/src/google/protobuf/descriptor.proto#L444+buildTaggedValueAsMessageSet :: TaggedValue -> Builder+buildTaggedValueAsMessageSet (TaggedValue (Tag t) wv) =+    buildTaggedValue ( TaggedValue 1 StartGroup)+    <> buildTaggedValue (TaggedValue 2 (VarInt $ fromIntegral t))+    <> buildTaggedValue (TaggedValue 3 wv)+    <> buildTaggedValue (TaggedValue 1 EndGroup)+ buildWireValue :: WireValue -> Builder buildWireValue (VarInt w) = putVarInt w buildWireValue (Fixed64 w) = putFixed64 w@@ -98,6 +109,18 @@         5 -> Fixed32 <$> getFixed32         _ -> fail $ "Unknown wire type " ++ show w +parseMessageSetTaggedValueFromWire :: Word64 -> Parser TaggedValue+parseMessageSetTaggedValueFromWire t =+    parseTaggedValueFromWire t >>= \v -> case v of+        TaggedValue 1 StartGroup -> parseTaggedValue >>= \ft -> case ft of+            TaggedValue 2 (VarInt f) -> parseTaggedValue >>= \dt -> case dt of+                TaggedValue 3 (Lengthy b) -> parseTaggedValue >>= \et -> case et of+                    TaggedValue 1 EndGroup -> return $ TaggedValue (Tag $ fromIntegral f) (Lengthy b)+                    _ -> fail "missing end_group"+                _ -> fail "missing message"+            _ -> fail "missing field tag"+        _ -> return v+ splitTypeAndTag :: Word64 -> (Tag, Word8) splitTypeAndTag w = (fromIntegral $ w `shiftR` 3, fromIntegral (w .&. 7)) @@ -117,3 +140,6 @@  buildFieldSet :: FieldSet -> Builder buildFieldSet = mconcat . map buildTaggedValue ++buildMessageSet :: FieldSet -> Builder+buildMessageSet = mconcat . map buildTaggedValueAsMessageSet
src/Data/ProtoLens/Message.hs view
@@ -75,6 +75,20 @@     -- @"packagename.messagename"@.     messageName :: Proxy msg -> T.Text +    -- | The serialized protobuffer message descriptor for this type.+    --+    -- For a friendlier version which returns the actual descriptor type,+    -- use @Data.ProtoLens.Descriptor.messageDescriptor@+    -- from the @proto-lens-protobuf-types@ package.+    packedMessageDescriptor :: Proxy msg -> B.ByteString++    -- | The serialized protobuffer file message descriptor containing this type.+    --+    -- For a friendlier version which returns the actual file descriptor type,+    -- use @Data.ProtoLens.Descriptor.fileDescriptor@+    -- from the @proto-lens-protobuf-types@ package.+    packedFileDescriptor :: Proxy msg -> B.ByteString+     -- | A message with all fields set to their default values.     --     -- Satisfies @encodeMessage defMessage == ""@ and @decodeMessage "" == Right defMessage@.