hw-kafka-avro 1.1.0 → 1.2.0
raw patch · 4 files changed
+20/−16 lines, 4 filesdep ~avronew-uploader
Dependency ranges changed: avro
Files
- example/Main.hs +10/−9
- example/Message.hs +5/−3
- hw-kafka-avro.cabal +2/−2
- src/Kafka/Avro/Decode.hs +3/−2
example/Main.hs view
@@ -1,17 +1,18 @@-{-# LANGUAGE OverloadedStrings, ScopedTypeVariables #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ScopedTypeVariables #-} module Main where import Control.Monad.Trans.Except+import qualified Data.Aeson as J+import qualified Data.Avro as A+import Data.Avro.Schema as S+import qualified Data.Avro.Types as AT import Data.Monoid-import qualified Data.Aeson as J-import Data.Avro as A-import Data.Avro.Schema as S-import qualified Data.Avro.Types as AT -import Data.Int-import Data.Text-import Kafka.Avro-import Message+import Data.Int+import Data.Text+import Kafka.Avro+import Message exampleMessage = TestMessage 1 "Example" True 12345678
example/Message.hs view
@@ -5,10 +5,10 @@ -- import Data.Avro+import Data.Avro.Schema+import qualified Data.Avro.Types as AT import Data.Int import Data.Text-import Data.Avro.Schema-import qualified Data.Avro.Types as AT data TestMessage = TestMessage Int64 Text Bool Int64 deriving (Show, Eq, Ord) @@ -21,6 +21,9 @@ , fld "timestamp" Long Nothing ] +instance HasAvroSchema TestMessage where+ schema = pure testMessageSchema+ instance FromAvro TestMessage where fromAvro (AT.Record _ r) = TestMessage <$> r .: "id"@@ -37,4 +40,3 @@ , "is_active" .= d , "timestamp" .= t ]- schema = pure testMessageSchema
hw-kafka-avro.cabal view
@@ -1,5 +1,5 @@ name: hw-kafka-avro-version: 1.1.0+version: 1.2.0 synopsis: Avro support for Kafka infrastructure description: Please see README.md homepage: https://github.com/haskell-works/hw-kafka-avro#readme@@ -26,7 +26,7 @@ Kafka.Avro.SchemaRegistry build-depends: aeson,- avro,+ avro >= 0.2, base >= 4.7 && < 5, binary, bytestring,
src/Kafka/Avro/Decode.hs view
@@ -5,7 +5,8 @@ ) where import Control.Monad.IO.Class (MonadIO)-import Data.Avro as A (FromAvro, Result (..), decode)+import Data.Avro as A (FromAvro, Result (..))+import qualified Data.Avro as A (decodeWithSchema) import Data.Avro.Schema (Schema) import Data.Bits (shiftL) import Data.ByteString.Lazy (ByteString)@@ -34,7 +35,7 @@ return $ res >>= decode payload where schemaData = maybe (Left BadPayloadNoSchemaId) Right (extractSchemaId bs)- decode p s = resultToEither s (A.decode s p)+ decode p s = resultToEither s (A.decodeWithSchema s p) extractSchemaId :: ByteString -> Maybe (SchemaId, ByteString) extractSchemaId bs = do