isobmff-0.14.0.0: A parser and generator for the ISO-14496-12/14 base media file format

Safe HaskellNone
LanguageHaskell2010

Data.Type.BitRecords.Builder.LazyByteStringBuilder

Contents

Synopsis

Documentation

bitBuilderWithSize :: forall (record :: BitRecord). HasFunctionBuilder BitBuilder (Proxy record) => Proxy record -> ToFunction BitBuilder (Proxy record) BuilderWithSize Source #

Create a Builder from a BitRecord and store it in a BuilderWithSize

wrapBitBuilderWithSize :: forall (record :: BitRecord) wrapped. HasFunctionBuilder BitBuilder (Proxy record) => (BuilderWithSize -> wrapped) -> Proxy record -> ToFunction BitBuilder (Proxy record) wrapped Source #

Like bitBuilderWithSize, but toFunction the result and accept as an additional parameter a wrapper function to wrap the final result (the BuilderWithSize) and toFunction the whole machiner.

builderBoxConstructor :: forall (record :: BitRecord) r. HasFunctionBuilder BitBuilder (Proxy record) => Proxy record -> FunctionBuilder BuilderWithSize r (ToFunction BitBuilder (Proxy record) r) Source #

Create a Builder from a BitRecord and store it in a BuilderWithSize; return a FunctionBuilder monoid that does that on toFunction

Low-level interface to building BitRecords and other things

newtype BitBuilder Source #

Constructors

BitBuilder 
Instances
Semigroup BitBuilder Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Monoid BitBuilder Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

HasFunctionBuilder BitBuilder BitBuffer64 Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder BitBuffer64 r :: Type #

(KnownNat v, DynamicContent BitBuilder (Proxy f) rt, Num rt) => HasFunctionBuilder BitBuilder (Proxy (f :=. v)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (f :=. v)) r :: Type #

BitFieldSize (From f) ~ 1 => HasFunctionBuilder BitBuilder (Proxy (f :=. False)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (f :=. False)) r :: Type #

BitFieldSize (From f) ~ 1 => HasFunctionBuilder BitBuilder (Proxy (f :=. True)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (f :=. True)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy nested) => HasFunctionBuilder BitBuilder (Proxy (Labelled l nested)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (Labelled l nested)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy nested) => HasFunctionBuilder BitBuilder (Proxy (Konst nested)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (Konst nested)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy (MkField MkFieldFlag)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (MkField MkFieldFlag)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy (MkField MkFieldI8)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (MkField MkFieldI8)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy (MkField MkFieldI16)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (MkField MkFieldI16)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy (MkField MkFieldI32)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (MkField MkFieldI32)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy (MkField MkFieldI64)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (MkField MkFieldI64)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy (MkField MkFieldU8)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (MkField MkFieldU8)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy (MkField MkFieldU16)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (MkField MkFieldU16)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy (MkField MkFieldU32)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (MkField MkFieldU32)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy (MkField MkFieldU64)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (MkField MkFieldU64)) r :: Type #

(KnownNat v, DynamicContent BitBuilder (Proxy f) rt, Num rt) => HasFunctionBuilder BitBuilder (Proxy (f := v)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (f := v)) r :: Type #

(KnownNat v, DynamicContent BitBuilder (Proxy f) x, Num x) => HasFunctionBuilder BitBuilder (Proxy (f := NegativeNat v)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (f := NegativeNat v)) r :: Type #

(KnownNat v, DynamicContent BitBuilder (Proxy f) x, Num x) => HasFunctionBuilder BitBuilder (Proxy (f := PositiveNat v)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (f := PositiveNat v)) r :: Type #

FieldWidth f ~ 1 => HasFunctionBuilder BitBuilder (Proxy (f := False)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (f := False)) r :: Type #

FieldWidth f ~ 1 => HasFunctionBuilder BitBuilder (Proxy (f := True)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (f := True)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy nested) => HasFunctionBuilder BitBuilder (Proxy (LabelF l nested)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (LabelF l nested)) r :: Type #

KnownChunkSize s => HasFunctionBuilder BitBuilder (Proxy (MkField (MkFieldBits :: BitField (B s) Nat s))) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (MkField MkFieldBits)) r :: Type #

KnownChunkSize size => HasFunctionBuilder BitBuilder (Proxy (MkField (MkFieldCustom :: BitField (EnumValue e) e size))) Source # 
Instance details

Defined in Data.Type.BitRecords.Enum

Associated Types

type ToFunction BitBuilder (Proxy (MkField MkFieldCustom)) r :: Type #

(KnownNat (FromEnum e v), KnownChunkSize size) => HasFunctionBuilder BitBuilder (Proxy (f := v)) Source # 
Instance details

Defined in Data.Type.BitRecords.Enum

Associated Types

type ToFunction BitBuilder (Proxy (f := v)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy (From r)) => HasFunctionBuilder BitBuilder (Proxy r) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy r) r :: Type #

HasFunctionBuilder BitBuilder (Proxy MkFieldFlag) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy MkFieldFlag) r :: Type #

HasFunctionBuilder BitBuilder (Proxy MkFieldU32) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy MkFieldU32) r :: Type #

HasFunctionBuilder BitBuilder (Proxy EmptyBitRecord) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy EmptyBitRecord) r :: Type #

HasFunctionBuilder BitBuilder (Proxy f) => HasFunctionBuilder BitBuilder (Proxy (BitRecordMember f)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (BitRecordMember f)) r :: Type #

HasFunctionBuilder BitBuilder (Proxy f) => HasFunctionBuilder BitBuilder (Proxy (RecordField f)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (RecordField f)) r :: Type #

(HasFunctionBuilder BitBuilder (Proxy l), HasFunctionBuilder BitBuilder (Proxy r)) => HasFunctionBuilder BitBuilder (Proxy (BitRecordAppend l r)) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Associated Types

type ToFunction BitBuilder (Proxy (BitRecordAppend l r)) r :: Type #

DynamicContent BitBuilder (Proxy nested) rt => DynamicContent BitBuilder (Proxy (Labelled l nested)) rt Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Methods

addParameter :: Proxy (Labelled l nested) -> FunctionBuilder BitBuilder next (rt -> next) #

DynamicContent BitBuilder (Proxy nested) rt => DynamicContent BitBuilder (Proxy (Konst nested)) rt Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Methods

addParameter :: Proxy (Konst nested) -> FunctionBuilder BitBuilder next (rt -> next) #

DynamicContent BitBuilder (Proxy (MkField MkFieldI8)) Int8 Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

DynamicContent BitBuilder (Proxy (MkField MkFieldI16)) Int16 Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

DynamicContent BitBuilder (Proxy (MkField MkFieldI32)) Int32 Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

DynamicContent BitBuilder (Proxy (MkField MkFieldI64)) Int64 Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

DynamicContent BitBuilder (Proxy (MkField MkFieldU8)) Word8 Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

DynamicContent BitBuilder (Proxy (MkField MkFieldU16)) Word16 Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

DynamicContent BitBuilder (Proxy (MkField MkFieldU32)) Word32 Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

DynamicContent BitBuilder (Proxy (MkField MkFieldU64)) Word64 Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

DynamicContent BitBuilder (Proxy nested) b => DynamicContent BitBuilder (Proxy (LabelF l nested)) b Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

Methods

addParameter :: Proxy (LabelF l nested) -> FunctionBuilder BitBuilder next (b -> next) #

DynamicContent BitBuilder (Proxy MkFieldFlag) Bool Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

DynamicContent BitBuilder (Proxy MkFieldU32) Word32 Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

KnownChunkSize s => DynamicContent BitBuilder (Proxy (MkField (MkFieldBits :: BitField (B s) Nat s))) (B s) Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder BitBuffer64 r Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (f :=. v)) r Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (f :=. v)) r = r
type ToFunction BitBuilder (Proxy (f :=. False)) r Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (f :=. True)) r Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (Labelled l nested)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (Labelled l nested)) a = ToFunction BitBuilder (Proxy nested) a
type ToFunction BitBuilder (Proxy (Konst nested)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (Konst nested)) a = ToFunction BitBuilder (Proxy nested) a
type ToFunction BitBuilder (Proxy (MkField MkFieldFlag)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (MkField MkFieldI8)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (MkField MkFieldI16)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (MkField MkFieldI32)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (MkField MkFieldI64)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (MkField MkFieldU8)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (MkField MkFieldU16)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (MkField MkFieldU32)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (MkField MkFieldU64)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (f := NegativeNat v)) r Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (f := PositiveNat v)) r Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (f := v)) r Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (f := v)) r = r
type ToFunction BitBuilder (Proxy (f := False)) r Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (f := True)) r Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (f := True)) r = r
type ToFunction BitBuilder (Proxy (LabelF l nested)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (LabelF l nested)) a = ToFunction BitBuilder (Proxy nested) a
type ToFunction BitBuilder (Proxy (MkField (MkFieldBits :: BitField (B s) Nat s))) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (MkField (MkFieldBits :: BitField (B s) Nat s))) a = B s -> a
type ToFunction BitBuilder (Proxy (MkField (MkFieldCustom :: BitField (EnumValue e) e size))) r Source # 
Instance details

Defined in Data.Type.BitRecords.Enum

type ToFunction BitBuilder (Proxy (f := v)) r Source # 
Instance details

Defined in Data.Type.BitRecords.Enum

type ToFunction BitBuilder (Proxy (f := v)) r = r
type ToFunction BitBuilder (Proxy r) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy MkFieldFlag) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy MkFieldU32) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy EmptyBitRecord) r Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (BitRecordMember f)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (RecordField f)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

type ToFunction BitBuilder (Proxy (BitRecordAppend l r)) a Source # 
Instance details

Defined in Data.Type.BitRecords.Builder.LazyByteStringBuilder

flushBitBuilder :: BitBuilderState -> BitBuilderState Source #

Write the partial buffer contents using any number of word8 The unwritten parts of the bittr buffer are at the top. If the

    63  ...  (63-off-1)(63-off)  ...  0
    ^^^^^^^^^^^^^^^^^^^
Relevant bits start to the top!

appendBitBuffer64 :: BitBuffer64 -> BitBuilder Source #

Write all the bits, in chunks, filling and writing the BitBuffer64 in the BitBuilderState as often as necessary.

appendStrictByteString :: ByteString -> BitBuilder Source #

Write all the b*y*tes, into the BitBuilderState this allows general purposes non-byte aligned builders.

BitRecordField instances

BitFields

Assign static values

BitRecord instances

BitRecordMember

BitRecord

AppendedBitRecords

EmptyBitRecord and '...Pretty'

Tracing/Debug Printing

printBuilder :: Builder -> String Source #

Print a Builder to a space seperated series of hexa-decimal bytes.