avro-0.4.3.0: Avro serialization support for Haskell

Safe HaskellNone
LanguageHaskell2010

Data.Avro.Encode

Contents

Synopsis

High level interface

getSchema :: forall a. EncodeAvro a => a -> Schema #

encodeContainer :: EncodeAvro a => Codec -> Schema -> [[a]] -> IO ByteString #

Encode chunks of objects into a container, using 16 random bytes for the synchronization markers. Blocks are compressed (or not) according to the given Codec (nullCodec or deflateCodec).

newSyncBytes :: IO ByteString #

Generates a new synchronization marker for encoding Avro containers

encodeContainerWithSync :: EncodeAvro a => Codec -> Schema -> ByteString -> [[a]] -> ByteString #

Encode chunks of objects into a container, using the provided ByteString as the synchronization markers.

Packing containers

containerHeaderWithSync :: Codec -> Schema -> ByteString -> Builder #

Creates an Avro container header for a given schema.

packContainerBlocks :: Codec -> Schema -> [(Int, ByteString)] -> IO ByteString #

Packs a new container from a list of already encoded Avro blocks. Each block is denoted as a pair of a number of objects within that block and the block content.

packContainerBlocksWithSync :: Codec -> Schema -> ByteString -> [(Int, ByteString)] -> ByteString #

Packs a new container from a list of already encoded Avro blocks. Each block is denoted as a pair of a number of objects within that block and the block content.

packContainerValues :: Codec -> Schema -> [[ByteString]] -> IO ByteString #

Packs a container from a given list of already encoded Avro values Each bytestring should represent exactly one one value serialised to Avro.

packContainerValuesWithSync :: Codec -> Schema -> ByteString -> [[ByteString]] -> ByteString #

Packs a container from a given list of already encoded Avro values Each bytestring should represent exactly one one value serialised to Avro.

Lower level interface

class EncodeAvro a where #

Methods

avro :: a -> AvroM #

Instances
EncodeAvro Bool # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Bool -> AvroM #

EncodeAvro Double # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Double -> AvroM #

EncodeAvro Float # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Float -> AvroM #

EncodeAvro Int # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Int -> AvroM #

EncodeAvro Int8 # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Int8 -> AvroM #

EncodeAvro Int16 # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Int16 -> AvroM #

EncodeAvro Int32 # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Int32 -> AvroM #

EncodeAvro Int64 # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Int64 -> AvroM #

EncodeAvro Word8 # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Word8 -> AvroM #

EncodeAvro Word16 # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Word16 -> AvroM #

EncodeAvro Word32 # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Word32 -> AvroM #

EncodeAvro Word64 # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Word64 -> AvroM #

EncodeAvro () # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: () -> AvroM #

EncodeAvro ByteString # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: ByteString -> AvroM #

EncodeAvro ByteString # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: ByteString -> AvroM #

EncodeAvro Text # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Text -> AvroM #

EncodeAvro Text # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Text -> AvroM #

EncodeAvro String # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: String -> AvroM #

EncodeAvro a => EncodeAvro [a] # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: [a] -> AvroM #

EncodeAvro a => EncodeAvro (Maybe a) #

Maybe is modeled as a sum type `{null, a}`.

Instance details

Defined in Data.Avro.Encode

Methods

avro :: Maybe a -> AvroM #

EncodeAvro a => EncodeAvro (Set a) # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Set a -> AvroM #

(Unbox a, EncodeAvro a) => EncodeAvro (Vector a) # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Vector a -> AvroM #

EncodeAvro a => EncodeAvro (Vector a) # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Vector a -> AvroM #

EncodeAvro (Value Type) # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Value Type -> AvroM #

EncodeAvro a => EncodeAvro (HashMap Text a) # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: HashMap Text a -> AvroM #

(Ix i, EncodeAvro a) => EncodeAvro (Array i a) # 
Instance details

Defined in Data.Avro.Encode

Methods

avro :: Array i a -> AvroM #

class Zag a where #

Associated Types

type Zagged a #

Methods

zag :: a -> Zagged a #

Instances
Zag Word # 
Instance details

Defined in Data.Avro.Zag

Associated Types

type Zagged Word :: Type #

Methods

zag :: Word -> Zagged Word #

Zag Word8 # 
Instance details

Defined in Data.Avro.Zag

Associated Types

type Zagged Word8 :: Type #

Methods

zag :: Word8 -> Zagged Word8 #

Zag Word16 # 
Instance details

Defined in Data.Avro.Zag

Associated Types

type Zagged Word16 :: Type #

Methods

zag :: Word16 -> Zagged Word16 #

Zag Word32 # 
Instance details

Defined in Data.Avro.Zag

Associated Types

type Zagged Word32 :: Type #

Methods

zag :: Word32 -> Zagged Word32 #

Zag Word64 # 
Instance details

Defined in Data.Avro.Zag

Associated Types

type Zagged Word64 :: Type #

Methods

zag :: Word64 -> Zagged Word64 #