liszt-0.1: Append only key-list database

Safe HaskellNone
LanguageHaskell2010

Database.Liszt.Internal

Contents

Synopsis

Documentation

type Tag = Encoding Source #

Tag is an extra value attached to a payload. This can be used to perform a binary search.

withLiszt :: (MonadIO m, MonadMask m) => FilePath -> (LisztHandle -> m a) -> m a Source #

Writing

clear :: Key -> Transaction () Source #

Replace the specified key with an empty list.

Reading

Frame

data Frame a Source #

Constructors

Empty 
Leaf1 !KeyPointer !(Spine a) 
Leaf2 !KeyPointer !(Spine a) !KeyPointer !(Spine a) 
Node2 !a !KeyPointer !(Spine a) !a 
Node3 !a !KeyPointer !(Spine a) !a !KeyPointer !(Spine a) !a 
Tree !Tag !RawPointer !a !a 
Leaf !Tag !RawPointer 
Instances
Functor Frame Source # 
Instance details

Defined in Database.Liszt.Internal

Methods

fmap :: (a -> b) -> Frame a -> Frame b #

(<$) :: a -> Frame b -> Frame a #

Foldable Frame Source # 
Instance details

Defined in Database.Liszt.Internal

Methods

fold :: Monoid m => Frame m -> m #

foldMap :: Monoid m => (a -> m) -> Frame a -> m #

foldr :: (a -> b -> b) -> b -> Frame a -> b #

foldr' :: (a -> b -> b) -> b -> Frame a -> b #

foldl :: (b -> a -> b) -> b -> Frame a -> b #

foldl' :: (b -> a -> b) -> b -> Frame a -> b #

foldr1 :: (a -> a -> a) -> Frame a -> a #

foldl1 :: (a -> a -> a) -> Frame a -> a #

toList :: Frame a -> [a] #

null :: Frame a -> Bool #

length :: Frame a -> Int #

elem :: Eq a => a -> Frame a -> Bool #

maximum :: Ord a => Frame a -> a #

minimum :: Ord a => Frame a -> a #

sum :: Num a => Frame a -> a #

product :: Num a => Frame a -> a #

Traversable Frame Source # 
Instance details

Defined in Database.Liszt.Internal

Methods

traverse :: Applicative f => (a -> f b) -> Frame a -> f (Frame b) #

sequenceA :: Applicative f => Frame (f a) -> f (Frame a) #

mapM :: Monad m => (a -> m b) -> Frame a -> m (Frame b) #

sequence :: Monad m => Frame (m a) -> m (Frame a) #

Eq a => Eq (Frame a) Source # 
Instance details

Defined in Database.Liszt.Internal

Methods

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

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

Show a => Show (Frame a) Source # 
Instance details

Defined in Database.Liszt.Internal

Methods

showsPrec :: Int -> Frame a -> ShowS #

show :: Frame a -> String #

showList :: [Frame a] -> ShowS #

Generic (Frame a) Source # 
Instance details

Defined in Database.Liszt.Internal

Associated Types

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

Methods

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

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

Serialise a => Serialise (Frame a) Source # 
Instance details

Defined in Database.Liszt.Internal

type Rep (Frame a) Source # 
Instance details

Defined in Database.Liszt.Internal

type Rep (Frame a)

Fetching

class Fetchable a where Source #

Minimal complete definition

fetchFrame

Methods

fetchFrame :: LisztHandle -> a -> IO (Frame a) Source #

data RawPointer Source #

Constructors

RP !Int !Int 
Instances
Eq RawPointer Source # 
Instance details

Defined in Database.Liszt.Internal

Show RawPointer Source # 
Instance details

Defined in Database.Liszt.Internal

Generic RawPointer Source # 
Instance details

Defined in Database.Liszt.Internal

Associated Types

type Rep RawPointer :: * -> * #

NFData RawPointer Source # 
Instance details

Defined in Database.Liszt.Internal

Methods

rnf :: RawPointer -> () #

Serialise RawPointer Source # 
Instance details

Defined in Database.Liszt.Internal

Fetchable RawPointer Source # 
Instance details

Defined in Database.Liszt.Internal

type Rep RawPointer Source # 
Instance details

Defined in Database.Liszt.Internal

type Rep RawPointer = D1 (MetaData "RawPointer" "Database.Liszt.Internal" "liszt-0.1-1cOiQgJXwtqKFMyn5HpvuM" False) (C1 (MetaCons "RP" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int)))

Footer

Spine

type Spine a = [(Int, a)] Source #