leveldb-haskell-0.4.0: Haskell bindings to LevelDB

Copyright(c) 2014 Kim Altintop
LicenseBSD3
Maintainerkim.altintop@gmail.com
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Database.LevelDB.Streaming

Contents

Description

High-level, Data.List-like, streaming interface to Database.LevelDB.Iterator.

This module contains types and functions to construct Streams from Iterators, and re-exports the functions operating on Streams from Data.Stream.Monadic.

Note that most of the functions from the latter module are (intentionally) conflicting with the Prelude, it is thus recommended to import this module qualified:

import Database.LevelDB -- or Database.LevelDB.Base
import qualified Database.LevelDB.Streaming as S

Synopsis

Documentation

data KeyRange Source

Constructors

KeyRange 
AllKeys 

data Direction Source

Constructors

Asc 
Desc 

Instances

type Entry = (Key, Value) Source

Constructing streams

keySlice :: (Applicative m, MonadIO m) => Iterator -> KeyRange -> Direction -> Stream m Key Source

Create a Stream which yields only the keys of the given KeyRange (in the given Direction).

Since traversing the Stream mutates the state of the underlying Iterator, it is obviously unsafe to share the latter (between threads, or when zipping). Hence, it is highly recommended to create a new Iterator for each Stream.

entrySlice :: (Applicative m, MonadIO m) => Iterator -> KeyRange -> Direction -> Stream m Entry Source

Create a Stream which yields key/value pairs of the given KeyRange (in the given Direction).

Since traversing the Stream mutates the state of the underlying Iterator, it is obviously unsafe to share the latter (between threads, or when zipping). Hence, it is highly recommended to create a new Iterator for each Stream.

Re-exports