Portability | unknown |
---|---|
Stability | unstable |
Maintainer | Conrad Parker <conrad@metadecks.org> |
Interface for implementing ZoomCache codec instances. This module re-exports the interfaces required for developing zoom-cache codecs.
For sample implementations, read the source of the provided instances Data.ZoomCache.Int and Data.ZoomCache.Double.
- class ZoomReadable a where
- data RawData a :: *
- data SummaryData a :: *
- readRaw :: (Functor m, MonadIO m) => Iteratee [Word8] m a
- fromList :: [a] -> RawData a
- readSummary :: (Functor m, MonadIO m) => Iteratee [Word8] m (SummaryData a)
- prettyRawData :: RawData a -> [String]
- prettySummaryData :: SummaryData a -> String
- class ZoomWritable a where
- data SummaryWork a :: *
- fromRaw :: a -> Builder
- fromSummaryData :: SummaryData a -> Builder
- initSummaryWork :: TimeStamp -> SummaryWork a
- toSummaryData :: Double -> SummaryWork a -> SummaryData a
- updateSummaryData :: Int -> TimeStamp -> a -> SummaryWork a -> SummaryWork a
- appendSummaryData :: Double -> SummaryData a -> Double -> SummaryData a -> SummaryData a
- class ZoomWrite t where
- data TimeStamp = TS {}
- zReadInt16 :: (Functor m, MonadIO m) => Iteratee [Word8] m Int
- zReadInt32 :: (Functor m, MonadIO m) => Iteratee [Word8] m Int
- zReadInt64 :: (Functor m, MonadIO m) => Iteratee [Word8] m Integer
- zReadFloat64be :: (Functor m, MonadIO m) => Iteratee [Word8] m Double
- readRational64 :: (Functor m, MonadIO m) => Iteratee [Word8] m Rational
- fromRational64 :: Rational -> Builder
- fromIntegral32be :: forall a. Integral a => a -> Builder
- fromDouble :: Double -> Builder
- writeData :: (Typeable a, ZoomWrite a, ZoomWritable a) => TrackNo -> a -> ZoomW ()
- writeDataVBR :: (Typeable a, ZoomWrite a, ZoomWritable a) => TrackNo -> (TimeStamp, a) -> ZoomW ()
Interfaces
class ZoomReadable a whereSource
data SummaryData a :: *Source
readRaw :: (Functor m, MonadIO m) => Iteratee [Word8] m aSource
fromList :: [a] -> RawData aSource
readSummary :: (Functor m, MonadIO m) => Iteratee [Word8] m (SummaryData a)Source
prettyRawData :: RawData a -> [String]Source
prettySummaryData :: SummaryData a -> StringSource
class ZoomWritable a whereSource
data SummaryWork a :: *Source
fromSummaryData :: SummaryData a -> BuilderSource
initSummaryWork :: TimeStamp -> SummaryWork aSource
toSummaryData :: Double -> SummaryWork a -> SummaryData aSource
updateSummaryData :: Int -> TimeStamp -> a -> SummaryWork a -> SummaryWork aSource
appendSummaryData :: Double -> SummaryData a -> Double -> SummaryData a -> SummaryData aSource
The ZoomWrite class provides write
, a method to write a
Haskell value to an open ZoomCache file.
ZoomCache Types
Raw data iteratees
Binary data helpers
fromRational64 :: Rational -> BuilderSource
Serialize a Rational
as a sequence of two 64bit big endian format
integers.
fromIntegral32be :: forall a. Integral a => a -> BuilderSource
Serialize an Integral
in 32bit big endian format.
fromDouble :: Double -> BuilderSource
Serialize a Double
in big-endian IEEE 754-2008 binary64 format
(IEEE 754-1985 double format).
Write instance helpers
writeDataVBR :: (Typeable a, ZoomWrite a, ZoomWritable a) => TrackNo -> (TimeStamp, a) -> ZoomW ()Source