flat-0.3: Principled and efficient bit-oriented binary serialization.

Safe HaskellNone
LanguageHaskell2010

Data.Flat.Filler

Description

Pre-value and post-value byte alignments

Synopsis

Documentation

data Filler #

A meaningless sequence of 0 bits terminated with a 1 bit (easier to implement than the reverse) Useful to align an encoded value at byte/word boundaries.

Constructors

FillerBit Filler 
FillerEnd 

Instances

Eq Filler # 

Methods

(==) :: Filler -> Filler -> Bool #

(/=) :: Filler -> Filler -> Bool #

Ord Filler # 
Show Filler # 
Generic Filler # 

Associated Types

type Rep Filler :: * -> * #

Methods

from :: Filler -> Rep Filler x #

to :: Rep Filler x -> Filler #

NFData Filler # 

Methods

rnf :: Filler -> () #

Flat Filler #

Use a special encoding for the filler

type Rep Filler # 
type Rep Filler = D1 * (MetaData "Filler" "Data.Flat.Filler" "flat-0.3-RAAOIY8qSqJHIedocvgz7" False) ((:+:) * (C1 * (MetaCons "FillerBit" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Filler))) (C1 * (MetaCons "FillerEnd" PrefixI False) (U1 *)))

fillerLength :: Num a => Filler -> a #

Length of a filler in bits

data PreAligned a #

A Pre aligned value, a value preceded by a filler

Constructors

PreAligned 

Fields

Instances

Eq a => Eq (PreAligned a) # 

Methods

(==) :: PreAligned a -> PreAligned a -> Bool #

(/=) :: PreAligned a -> PreAligned a -> Bool #

Ord a => Ord (PreAligned a) # 
Show a => Show (PreAligned a) # 
Generic (PreAligned a) # 

Associated Types

type Rep (PreAligned a) :: * -> * #

Methods

from :: PreAligned a -> Rep (PreAligned a) x #

to :: Rep (PreAligned a) x -> PreAligned a #

NFData a => NFData (PreAligned a) # 

Methods

rnf :: PreAligned a -> () #

Flat a => Flat (PreAligned a) # 
type Rep (PreAligned a) # 
type Rep (PreAligned a) = D1 * (MetaData "PreAligned" "Data.Flat.Filler" "flat-0.3-RAAOIY8qSqJHIedocvgz7" False) (C1 * (MetaCons "PreAligned" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "preFiller") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Filler)) (S1 * (MetaSel (Just Symbol "preValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * a))))

preAligned :: a -> PreAligned a #

Pre align a value

data PostAligned a #

A Post aligned value, a value followed by a filler

Constructors

PostAligned 

Fields

Instances

Eq a => Eq (PostAligned a) # 
Ord a => Ord (PostAligned a) # 
Show a => Show (PostAligned a) # 
Generic (PostAligned a) # 

Associated Types

type Rep (PostAligned a) :: * -> * #

Methods

from :: PostAligned a -> Rep (PostAligned a) x #

to :: Rep (PostAligned a) x -> PostAligned a #

NFData a => NFData (PostAligned a) # 

Methods

rnf :: PostAligned a -> () #

Flat a => Flat (PostAligned a) # 
type Rep (PostAligned a) # 
type Rep (PostAligned a) = D1 * (MetaData "PostAligned" "Data.Flat.Filler" "flat-0.3-RAAOIY8qSqJHIedocvgz7" False) (C1 * (MetaCons "PostAligned" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "postValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * a)) (S1 * (MetaSel (Just Symbol "postFiller") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Filler))))

postAligned :: a -> PostAligned a #

Post align a value